Хитрости hook_menu()

Jan 12, 2012 22:13


http://shaman.asiadata.ru/node/612.

В Drupal всегда радует возможность лаконично и просто разработать иногда очень серьезные вещи.

Пусть в вашем модуле требуется отобразить на отдельной странице некий объект хранящийся в базе данных, например, Gorilla. Идентификатор объекта передается в строке запроса. Модуль, соответственно тоже называется gorilla.
А теперь, 10 строк очень универсального кода в студию:

function gorilla_menu() {
  $items = array();
  $items['gorilla/%gorilla'] = array(
    'title' => 'Gorilla item',
    'page callback' => 'theme',
    'access arguments' => array('view gorilla'),
    'page arguments' => array('gorilla_view', 1),
  );
  return $items;
}

Произойдет тут следующее...

При запросе пути gorilla/ID второй аргумент ID будет передан в функцию gorilla_load(). Функция должна вернуть требуемый объект (массив) или FALSE (страница не найдена), а уже он будет передан в темизацию через theme_gorilla_view() и выведен на страницу сайта. Конечно, нужно еще написать эти функции, зарегистрировать в реализации hook_theme() функцию темизации объекта и не забыть про hook_perm(). Но всё это может понадобится в нашем модуле еще не раз.

Ничего лишнего...

Заметки начинающего друпаллурга, drupal api, drupal 6, drupal

Previous post Next post
Up