Система темизации

Хочешь помочь с переводом? Это очень просто и быстро. Лишь зарегистрируйся, и можешь тут же начать переводить.

Функции и шаблоны, которые выводят содержимое посетителю, и которые могут быть внедрены с помощью тем.

Уровень представления Друпала реализован в виде модульной системы — уровня темы (theme layer). Каждая тема контролирует почти весь вывод Друпала и имеет полный контроль над CSS.

Внутри Друпала, уровень темы реализуется с помощью функции theme(), которая передает имя компоненты темы (хук темы) и аргументы. Пример: theme('table', $header, $rows).

Также функция theme() может содержать массив хуков темы, которые могут быть использованы для реализации “fallback” (использования встроенной функции темы, если не будет найден более специфичный хук), для лучшего контроля вывода. Пример: функция theme(array('table__foo', 'table'), $header, $rows) попытается найти хук 'table__foo', а если не найдет, то будет использована встроенная функция темизации 'table'.

Эта возможность может быть использована для присвоения специфических функций темы именованным объектам, давая дизайнерам-авторам больше контроля над выводом специфических типов содержимого.

Начиная с 6-ой версии Друпала, каждый хук темизации, определенный в модуле, нужно зарегистрировать в этом модуле, чтобы Друпал знал, где искать этот хук, и чтобы упростить темам поиск и модификацию этих хуков.

Хуки темизации регистрируются в hook_theme(). Этот хук должен возвращать массив описаний хуков темизации, которые реализованы в данном модуле. Каждое из описаний в свою очередь является ассоциативным массивом. Должны быть описаны параметры, которые требуются каждой функции или шаблону уровня темы, а также значения по умолчанию для всех этих параметров. Если хук темизации реализуется как функция, то по умолчанию она называется theme_HOOK().

Каждый модуль должен предоставить свою реализацию для всех хуков темизации, которые он регистрирует. Реализация может быть как в виде функции, так и в виде шаблона; реализации-функции необходимо указать в hook_theme(). По соглашению считается, что реализации хуков темизации в виде функций должны называться theme_HOOK(). Реализации хуков темизации в виде шаблонов должны находиться в одной директории с модулем, определяющим эти хуки.

Стандартный обработчик шаблонов Друпала просто выполняет шаблон как скрипт PHP и возвращает результат. Движок тем Друпала можно расширить, добавив поддержку альтернативных обработчиков шаблонов, таких как XTemplate, Smarty или PHPTal. Чаще всего темы Друпала используют движок под названием PHPTemplate (входит в стандартную поставку Друпала, файл phptemplate.engine), использующий стандартный обработчик шаблонов Друпала.

Для того, чтобы в теме реализовать собственную версию какого либо хука темизации, нужно переопределить хук как функцию или шаблон. Такие реализации перекрывают реализацию по умолчанию хука. В «чистой» теме (теме, не использующей какой-либо движок тем) необходимо в файле темы реализовать хук hook_theme() и сообщить в нем Друпалу о всех хуках темизации, которые тема реализует; в темах, пользующихся движками тем, хуки темизации, названные соответствующим образом, регистрируются автоматически. Соглашения по названию хуков могут зависеть от движка тем, но большинство придерживаются стандарта, заданного PHPTemplate: функции должны носить название ENGINE_HOOK() (в случае PHPTemplate — phptemplate_HOOK()) или THEMENAME_HOOK(). Например, движок PHPTemplate будет искать реализацию хука 'table' в стандартной теме Друпала (Garland) в функциях phptemplate_table() и garland_table(). Синтаксис ENGINE_HOOK() предпочтительнее, поскольку функции с такими именами будут видны и из подтем (тем с общим кодом но разными таблицами стилей).

Система темизации реализуется в файле theme.inc.

Смотри также

Функция theme(), хук hook_theme()

Функции

ИмяОписание
phptemplate_menu_local_tasks
themes/garland/template.php
Returns the rendered local tasks. The default implementation renders them as tabs. Overridden to split the secondary tasks.
theme_admin_block
modules/system/system.admin.inc
Темизирует блок (внутри контента) на страницах администрирования.
theme_admin_block_content
modules/system/system.admin.inc
Функция форматирует контент административного блока.
theme_admin_page
modules/system/system.admin.inc
Форматирует административную страницу для отображения.
theme_aggregator_page_opml
modules/aggregator/aggregator.pages.inc
Темизирует вывод новостной ленты в формате OPML.
theme_aggregator_page_rss
modules/aggregator/aggregator.pages.inc
Темизирует вывод RSS.
theme_blocks
includes/theme.inc
Возвращает набор блоков, доступных для текущего пользователя.
theme_book_admin_table
modules/book/book.admin.inc
Theme function for the book administration page form. See alsobook_admin_table()
theme_book_title_link
modules/book/book.module
Generate the HTML output for a link to a book title when used as a block title. Генерирует вывод HTML-кода для заголовка книги, при использовании в качестве заголовка блока.
theme_box
includes/theme.inc
Возвращает темизированный бокс(область, контейнер).
theme_breadcrumb
includes/theme.inc
Возвращает темизированные хлебные крошки (полоса иерархической навигации. Например: Главная > Каталог > Принтеры > Лазерные)
theme_button
includes/form.inc
Форматирует кнопку для формы.
theme_checkbox
includes/form.inc
Темизирует чекбокс.
theme_checkboxes
includes/form.inc
Изменяет стиль сразу нескольких чекбоксов.
theme_closure
includes/theme.inc
Выполняет hook_footer() который выполняется в конце страницы и расположен перед тегом, закрывающим тело документа (</body>).
theme_color_scheme_form
modules/color/color.module
Темизирует форму выбора расцветки темы оформления.
theme_comment_admin_overview
modules/comment/comment.admin.inc
Темизирует форму комментирования администратора.
theme_comment_controls
modules/comment/comment.module
Темизирует область(бокс) контроля комментариев, где пользователь может изменить отображение по умолчанию и упорядочить их показ.
theme_comment_flat_collapsed
modules/comment/comment.module
Темизирует комментарий в сжатом виде.
theme_comment_flat_expanded
modules/comment/comment.module
Темизирует комментарий в раскрытом виде.
theme_comment_post_forbidden
modules/comment/comment.module
Темизирует уведомление "вы не можете оставить комментарий".
theme_comment_submitted
modules/comment/comment.module
Темизирует информацию об авторстве комментария.
theme_comment_thread_collapsed
modules/comment/comment.module
Темизирует комментарии в свёрнутом виде.
theme_comment_thread_expanded
modules/comment/comment.module
Темизирует комментарии в развёрнутом виде.
theme_comment_view
modules/comment/comment.module
Темизировать блок с единичным комментарием
theme_date
includes/form.inc
Форматирует дату выбранного элемента.
theme_dblog_filters
modules/dblog/dblog.module
Theme dblog administration filter selector.
theme_feed_icon
includes/theme.inc
Возвращает код, который выдает иконку новостной ленты.
theme_fieldset
includes/form.inc
Форматирует группу элементов формы
theme_file
includes/form.inc
Форматирует поле загрузки файла.
theme_filter_admin_order
modules/filter/filter.admin.inc
Темизирует форму конфигурации порядка фильтров.
theme_filter_admin_overview
modules/filter/filter.admin.inc
Theme the admin overview form.
theme_filter_tips Форматирование подсказок по редактированию
modules/filter/filter.pages.inc
Форматирование подсказок по редактированию
theme_filter_tips_more_info
modules/filter/filter.module
Format a link to the more extensive filter tips.
theme_form
includes/form.inc
Темизирует форму.
theme_form_element
includes/form.inc
Возвращает темизированный элемент формы.
theme_help
includes/theme.inc
Возвращает темизированное сообщение справки.
theme_hidden
includes/form.inc
Форматирует скрытое поле формы.
theme_image
includes/theme.inc
Возвращает темизированную картинку.
theme_image_button
includes/form.inc
Темизирует кнопку-картинку формы.
theme_indentation
includes/theme.inc
Создает стандартный
отступа абзаца. Используется для свободно перетаскиваемых таблиц.
theme_item
includes/form.inc
Возвращает темизированный элемент формы.
theme_item_list
includes/theme.inc
Возвращает темизированный список.
theme_links
includes/theme.inc
Возвращает темизированный набор ссылок.
theme_locale_languages_overview_form
includes/locale.inc
Темизирует форму обзора языков сайта.
theme_mark
includes/theme.inc
Возвращает темизированный маркер, полезный для маркировки нового или обновленного содержимого.
theme_menu_item
includes/menu.inc
Генерирует HTML код для пункта меню и подменю.
theme_menu_item_link
includes/menu.inc
Генерирует вывод HTML данных для единичной ссылки меню.
theme_menu_local_task
includes/menu.inc
Создаёт HTML для ссылки на одну локальную задачу (рисует вкладку).
theme_menu_local_tasks
includes/menu.inc
Returns the rendered local tasks. The default implementation renders them as tabs.
theme_menu_overview_form
modules/menu/menu.admin.inc
Theme the menu overview form into a table.
theme_menu_tree
includes/menu.inc
Генерирует HTML-код, выводимый для дерева меню.
theme_more_help_link
includes/theme.inc
Returns code that emits the 'more help'-link.
theme_more_link
includes/theme.inc
Returns code that emits the 'more' link used on blocks.
theme_node_add_list
modules/node/node.pages.inc
Выводит список доступных типов контента для создания нод.
theme_node_admin_nodes
modules/node/node.admin.inc
Theme node administration overview.
theme_node_filters
modules/node/node.admin.inc
Theme node administration filter selector.
theme_node_filter_form
modules/node/node.admin.inc
Theme node administration filter form.
theme_node_form
modules/node/node.pages.inc
Выводит форму добавления ноды.
theme_node_list
modules/node/node.module
Форматирует список ссылок на ноды.
theme_node_log_message
modules/node/node.module
Темизирует сообщения системного журнала.
theme_node_preview
modules/node/node.pages.inc
Отображает предпросмотр ноды во время ее создания и редактирования.
theme_node_search_admin
modules/node/node.module
Theme the content ranking part of the search settings admin page.
theme_node_submitted
modules/node/node.module
Формат представления "Опубликовано _пользователем_ в _дата/время_" для каждой ноды
theme_pager
includes/pager.inc
Темизирует "листалку" страниц.
theme_pager_first
includes/pager.inc
Форматирует ссылку "первая страница".
theme_pager_last
includes/pager.inc
Форматирует ссылку "последняя страница".
theme_pager_link
includes/pager.inc
Форматирует ссылку на определенную запрошенную страницу.
theme_pager_next
includes/pager.inc
Форматирует ссылку "следующая страница".
theme_pager_previous
includes/pager.inc
Форматирует ссылку "предыдущая страница".
theme_password
includes/form.inc
Форматирует поле ввода пароля.
theme_password_confirm
includes/form.inc
Форматирует пункт подтверждения пароля.
theme_placeholder
includes/theme.inc
Formats text for emphasized display in a placeholder inside a sentence. Used automatically by t().
theme_poll_choices
modules/poll/poll.module
Theme the admin poll form for choices.
theme_profile_admin_overview
modules/profile/profile.admin.inc
Theme the profile field overview into a drag and drop enabled table. See alsoprofile_admin_overview()
theme_progress_bar
includes/theme.inc
Возвращает темизированный индикатор выполнения.
theme_radio
includes/form.inc
Форматирует одиночный переключатель (радио-кнопку) для их группы.
theme_radios
includes/form.inc
Форматирует сразу несколько радио-кнопок.
theme_select
includes/form.inc
Format a dropdown menu or scrolling selection box.
theme_status_messages
includes/theme.inc
Возвращает темизированные сообщения статуса и/или ошибок. Сообщения сгруппированы по типу.
theme_status_report
modules/system/system.admin.inc
Темизирует отчет о статусе системы.
theme_submenu
includes/theme.inc
Возвращает темизированное подменю, обычно отображается под вкладками.
theme_submit
includes/form.inc
Форматирует кнопку отправки формы.
theme_syslog_format
modules/syslog/syslog.module
Изменяет стиль записи в системном журнале.
theme_system_admin_by_module
modules/system/system.admin.inc
Темизирует вывод страницы администрирования по модулям.
theme_system_modules
modules/system/system.admin.inc
Темизирует форму модулей.
theme_system_modules_uninstall
modules/system/system.admin.inc
Темизирует таблицу отключенных на данный момент модулей.
theme_system_powered_by
modules/system/system.module
Форматирует текст надписи "Powered by Drupal" (Создано на Друпале).
theme_system_themes_form
modules/system/system.admin.inc
Theme function for the system themes form.
theme_system_theme_select_form
modules/system/system.admin.inc
Темизирует форму выбора темы.
theme_table
includes/theme.inc
Возвращает темизированную таблицу.
theme_tablesort_indicator
includes/theme.inc
Возвращает темизированную иконку сортировки колонки таблицы.
theme_table_select_header_cell
includes/theme.inc
Возвращает ячейку заголовка для таблиц, имеющих функцию "Выделить все".
theme_task_list
includes/theme.maintenance.inc
Возвращает темизированный список эксплуатационных задач для выполнения.
theme_taxonomy_overview_terms
modules/taxonomy/taxonomy.admin.inc
Темизирует обзор терминов как сортируемый список.
theme_taxonomy_overview_vocabularies
modules/taxonomy/taxonomy.admin.inc
Темизирует обзор словарей как сортируемый список.
theme_taxonomy_term_page
modules/taxonomy/taxonomy.pages.inc
Рендерит HTML-представление страницы термина таксономии.
theme_taxonomy_term_select
modules/taxonomy/taxonomy.module
Format the selection field for choosing terms (by deafult the default selection field is used).
theme_textarea
includes/form.inc
Форматирует многострочное текстовое поле ввода для формы.
theme_textfield
includes/form.inc
Форматирует однострочное текстовое поле ввода.
theme_token
includes/form.inc
Темизирует токен формы.
theme_trigger_display
modules/trigger/trigger.admin.inc
Display actions assigned to this hook-op combination in a table.
theme_update_report
modules/update/update.report.inc
Темизирует сообщение о состоянии модуля или темы.
theme_update_version
modules/update/update.report.inc
Темизирует отображение версии проекта.
theme_upload_attachments
modules/upload/upload.module
Отображение прикрепленных файлов в виде таблицы.
theme_upload_form_current
modules/upload/upload.module
Темизирует список прикрепленных файлов (вложений).
theme_upload_form_new
modules/upload/upload.module
Темизирует форму для прикрепления вложений.
theme_username
includes/theme.inc
Форматирует имя пользователя.
theme_user_admin_account
modules/user/user.admin.inc
Theme user administration overview.
theme_user_admin_new_role
modules/user/user.admin.inc
Theme the new-role form.
theme_user_admin_perm
modules/user/user.admin.inc
Темизирует страницу управления разрешениями.
theme_user_filters
modules/user/user.admin.inc
Theme user administration filter selector.
theme_user_filter_form
modules/user/user.admin.inc
Theme user administration filter form.
theme_user_list
modules/user/user.module
Темизирует список пользователей.
theme_user_profile
developer/theme.php
Темизирует страницу профиля пользователя.
theme_user_signature
modules/user/user.module
Темизирует подпись пользователя.
theme_xml_icon
includes/theme.inc
Возвращает код, который отображает иконку XML.
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Вход в систему