ertttert
Books-CMS.clan.su

Обратные вызовы страниц в других файлах

Если не указано иное, Drupal предполагает, что обратный вызов страницы находится в файле .module. В Drupal 7 многие модули разбиты на несколько файлов, которые загружаются в зависимости от определенных условий — это позволяет при каждом запросе страницы загружать минимальный объем кода. Ключ file (например, 'file' => 'menufun_greetings.inc') элемента меню используется для указания имени файла, который содержит функцию обратного вызова. В качестве примера мы включим в функцию menufun.module hook_menu() имя файла, в котором находится новая функция обратного вызова. Следующий код добавляет пару 'file' => 'menufun_greetings' в массив элемента меню. Кроме того, здесь обратный вызов страницы изменен на menufun_greeting — просто для демонстрации того, что обратный вызов не использует функцию, уже существующую в файле menufun.module.
/**
* Реализация hook_menu().
*/
function menufun_menu() {
 $items['menufun'] = array(
 'title' => 'Menu Fun',
 'page callback' => 'menufun_greeting',
 'file' => 'menufun_greeting.inc',
 'page arguments' => array('Jane', 'Doe'),
 'access callback' => TRUE,
 'type' => MENU_CALLBACK,
 );
return $items;
}
Теперь создадим в каталоге menufun новый файл по имени menufun_greeting.inc со следующим кодом внутри:
<?php
function menufun_greeting($first_name = '', $last_name = '', $from_first_name='',
$from_last_name='') {
 return t('Hello @first_name @last_name from @from_first_name @from_last_name',
 array('@first_name' => $first_name, '@last_name' => $last_name,
 '@from_first_name' => $from_first_name,
 '@from_last_name' => $from_last_name));
}
Сохраните оба файла, очистите кэш и проверьте, что получилось теперь. Вы должны получить точно такие же результаты, но на этот раз функция обратного вызова находится во внешнем файле .module.
Всего комментариев: 0
Имя *:
Email *:
Код *:


Бесплатный конструктор сайтов - uCoz