Главная » Записи с тегом "хуки"

Рубрики с меткой ‘хуки’

Drupal 7. Блоки в ноде перед комментариями.

По умолчанию регионы в Drupal доступны для вызова в шаблоне страницы (page.tpl.php), но комментарии-то в ноде. Блок будет выведен после них. Обойти данное ограничение можно, используя препроцессы (хуки).

Заготавливаем регион в info-файле темы:

regions[имя_региона] = Подвал содержимого

Теперь сообщаем об этом ноде в файле «template.php»: Читать далее »

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

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

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

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

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

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

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

Schema API

Схема БД в Друпале — структурированный массив, представляющий одну или более таблиц, и их связанные ключи и индексы. Схема определяется хуком hook_schema(), который обычно находится в файлеmodulename.install.

Реализовав hook_schema() и описав в нем таблицы, которые должен создавать модуль, можно легко создавать и удалять эти таблицы во всех поддерживаемых СУБД. Отпадает необходимость работать с разными диалектами SQL для создания или изменения таблиц в поддерживаемых СУБД.

Хук hook_schema() должен вернуть ассоциативный массив, ключи которого соответствуют таблицам, которые определяет модуль.
Читать далее »

Система модулей (хуки Drupal)

Позволяет модулям взаимодействовать с ядром Drupal.

Модули, используемые в Друпале, работают по принципу «хука» (англ. hook — крючок, ловушка). Хук — это PHP функция, которая имеет название module_name_hook_name(), где «module_name» — название модуля (имя файла module_name.module), а «hook_name» — название самого хука. Каждый хук имеет определенный набор параметров и типов результатов.

Для расширения функциональности тех или иных частей Друпала, нужно реализовать соответствующий хук. Когда Друпал хочет взаимодействовать с модулями, он определяет какие хуки предоставляются модулями и вызывает эти хуки для всех включённых на сайте модулей.
Читать далее »