Главная » Drupal » Документация Drupal » Справочник API (Page 2)

Справочник API

Файловый интерфейс

Константы

Имя Описание
FILE_STATUS_TEMPORARY
includes/file.inc
Информация обо всех загруженных в Drupal файлах храниться в таблице {files}. Одним из атрибутов каждого файла является статус — он определяет, является ли файл постоянным или временным. Если файл временный, то встроенная система сбора мусора Drupal удалит его через определённый промежуток времени.

Читать далее »

Генерация форм

Функции, позволяющие выводить и обрабатывать HTML формы.

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

Функция drupal_get_form() обеспечивает автоматическое отображение, извлечение информации и обработку результатов форм. Например:

// Показать форму регистрации.
$output = drupal_get_form('user_register');

Формы могут строится и отправляться программно, без пользовательского ввода, при помощи функцииdrupal_execute().

Более подробно о работе форм, а также форматах и структуре массивов, которые используются для определения форм, можно прочесть в коротком введении и справочнике по Forms API. Читать далее »

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

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

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

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

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

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

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

Система меню

Определяет навигационные меню и преобразует запросы страниц в вызовы функций, привязанные к путям на сайте.

Система меню Друпала управляет как навигационной системой c точки зрения пользователя, так и callbackсистемой, которую Друпал использует, чтобы реагировать на URL полученный из браузера. Поэтому, правильное понимание системы меню является основой для создания сложных модулей.

Система меню Друпала поддерживает простую иерархию определяемую путями. Реализации hook_menu()определяют пункты меню и назначают им пути (которые должны быть уникальными). Система меню собирает эти пункты и определяет иерархию меню из путей. Например, если пути определены как a, a/b, e, a/b/c/d, f/g, и a/b/h, то система меню сформирует следующую структуру:

  • a
    • a/b
      • a/b/c/d
      • a/b/h
  • e
  • f/g

Обратите внимание: число составных частей в пути не обязательно определяет глубину пункта меню в дереве.

В ответ на запрос страницы, система меню проверяет был ли путь, который запросил браузер, зарегистрирован как пункт меню с коллбеком (функцией, отвечающей данному пути). Если нет, то система продолжает искать в дереве меню наиболее полное совпадение (с коллбеком), которое можно найти. Если путь a/b/i был запрошен в дереве, показанном выше, будет использован коллбек для a/b.
Читать далее »

Schema API

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

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

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

Уровень абстракции базы данных Drupal 5 Drupal 6

Позволяет выполнять один программный код на разных СУБД.

Гибкий уровень абстракции Друпал позволяет легко работать с различными типами баз данных, напримерMySQL или PGSQL. Он максимально сохраняет синтаксис и мощь SQL, изменяя отдельные параметры запросов для разных типов баз и оставляя основные элементы безопасности неизменными.

Большинство обращений к базам данных выполняется с помощью функций db_query() или db_query_range(). Разработчикам стоит также обратить внимание на функцию pager_query(), которая используется в случае запросов, результаты которых нужно будет вывести постранично, и функцию tablesort_sql(), которая формирует запросы для сортируемых таблиц.
Читать далее »

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

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

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

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