Темізація views, shvetsgroup

З виходом реліз-кандидатів модулів Views 2 і CCK 2 для шостої версії Друпал, варто вже серйозно задуматися про перехід на Drupal 6.
Щоб дати поштовх цьому процесу, я вирішив остаточно розкрити тему темізаціі цих модулів, перш за все, для п'ятої гілки, а потім і для шостий.
Отже, почнемо з темізаціі вьюсов.
Напевно, першим каменем спотикання розробника, пізнав початкові принади Друпала, є Темізація модуля Views. Цей процес містить мінімум документації, так що, часом, деякі початківці розробники взагалі не здогадуються, що з вьюсамі можна щось робити.
# Найпростіший шлях
В поставку модуля Views входить модуль Views Theme Wizard. Включивши цей модуль, ви отримаєте інструмент швидкого створення простих шаблонів темізаціі вьюсов:

Даний спосіб передбачає темізаціі тільки вьюсов List-типу. Якщо у вас табличні, тізеровие або якісь інші вьюси - даний підхід нічим вам не допоможе.
Але не варто впадати у відчай, тому що в модулі Views закладена сила-силенна методів темізаціі. Розглянемо всі варіанти.
# Темізація будь-яких типів вьюсов
У модулі можна знайти чудову функцію theme_views_view. а трохи Поганявши в коді, можна ще й знайти її варіації:
Таким чином, ми отримуємо дуже гнучкий спосіб темізаціі, пріктіческі будь вьюси. Розглянемо приклади.
# Темізація «облікової» вьюси
Цей код дуже схожий на той, що генерує модуль Views Theme Wizard, за винятком того, що даний код не намагається підключати зовнішні шаблони, як це робить майстер. Якщо вам все ж потрібно підключити зовнішній шаблон, нагадаю, що це робиться функцією _phptemplate_callback ().
# Темізація «табличній» вьюси
# Темізація «тізерній» вьюси
# Темізація вьюси c повними нодамі
Цей код дає уявлення про те, як темізіровать списки нод, але що якщо потрібно темізіровать самі Ноди коли вони з'являються у вьюсах? Все досить таки просто. У шаблонах node [-node_type] .tpl.php потрібно вставити такий код:
Думаю, тут пояснення зайві.
# Темізація summary-уявлення
Досить рідко використовується, summary-уявлення вьюси, можна використовувати, коли у вашій вьюсе використовуються аргументи. Візьмемо до прикладу, стандартну вьюсу taxonomy_term. Якщо в налаштуваннях аргументу вибрати в полі "Умовчання" правило "Summary", то при показі цієї вьюси без аргументу, все буде виглядати приблизно так:

Код темізаціі summary-вистави:
# Темізація полів
Темізація окремих полів в'юшок - ще щільніше завішана покровом таємниці, тому що явного виклику цих функцій в коді модуля Views немає ніде. Однак, вони існують:
Примітка: FIELD_NAME це не звична назва поля (типу field_image або field_mytext). Правильне значніє FIELD_NAME знаходиться в змінній $ field [ 'queryname']. тому, щоб зрозуміти як назвати конкретну функцію, назвіть її спочатку просто phptemplate_views_handle_field, а потім, в її початку вставте команду print_r ($ field [ 'queryname']). Вона і виведе коректне назву (назви бувають досить таки страшні, як node_data_field_image_field_image_fid. Але не слід цього бояться, просто вставляйте це в назву функції замість FIELD_NAME).
# Темізація розширених фільтрів
Всі фільтри під вьюсах можна зробити доступними для користувача введення. У цьому випадку, за темізаціі форми фільтра відповідає наступний код:
# Приємні дрібниці
Не можу не згадати про можливість темізіровать посилання "More", яка з'являється в блокових вьюсах коли елементів в списку більше, ніж може вмістити блок:
Є ще одна функція темізаціі, про яку я не згадував. Але вона використовується тільки в разі програмної вставки в'юшки в сторінку (наприклад так print (theme ( 'view', 'current_user_buddys'));), а саме: