Проблемы с тематизацией сетки
У меня возникли проблемы при попытке управлять макетом и полями вместе в стиле сетки представления.
В Интернете я видел несколько учебных пособий о том, как создавать тематические представления, и они предлагают использовать функции в template.php, или с помощью файлов шаблонов просмотра. Я не могу найти учебник, который мне поможет.
В частности, когда я использую файл шаблона, я не могу контролировать расположение полей (управление расположением каждого поля; управление полями в целом; добавление условных выражений; добавление классов; попытка использовать "представления-представление-", "представления-поле представления-", "представления-поля представления-" или "представления-сетка представления-"), и когда я использую функцию в template.php, Я не могу получить переменные/значения полей.
Я должен сказать, что я знаю, как включить пользовательский дизайн с помощью интерфейса модуля "Представления", чтобы управлять дизайном по полям (или управлять всеми полями каждого элемента, если я включу дизайн и поля в последнее поле). Но я хочу сделать это каким-то внешним способом для настраиваемого отображения централизованным способом (также, чтобы не позволять изменять дизайн из веб-интерфейса и иметь управление в файлах, а не в базе данных).
Когда я говорю централизованный способ , я имею в виду использование файла или файлов для управления расположением каждого поля, управления полями вместе, добавления условий, добавления классов, добавления функций (например, темы в Drupal).
Я использую Drupal 6 и просмотры 2.
1 answers
В views-view-grid--viewname.tpl.php , с помощью print_r($variables)
вы найдете все значения в массиве "просмотр" (это очень большой вывод, поэтому я рекомендую использовать только 1 элемент в этом тесте).
Здесь вы обнаружите, что 'result
' содержит stdClass Object
с полями зрения (не все, кажется, что изображений там нет), для печати этого вы можете использовать:
print_r($variables['view']->result);
С идентификатором значений вы можете использовать эти значения, например, показать заголовок узла:
echo $variables['view']->result[$i]->node_title;
Или вы можете использовать идентификатор узел, чтобы получить, например, изображения с узлов (кажется, что изображения не находятся в result
).
$nIdItem = $variables['view']->result[$i]->nid;
$node = node_load($nIdItem);
echo "<img src='/".$node->field_image[0]['filepath']."'>";
Таким образом, с помощью этого способа можно управлять каждым полем, набором полей и/или добавлять условия, функции.
Я не знаю последствий использования этого способа для производительности или безопасности, это может быть новый вопрос.