Хитрости hook_menu()

В 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(). Но всё это может понадобится в нашем модуле еще не раз.

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

Добавить комментарий

Ограниченный HTML

  • Допустимые HTML-теги: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.
CAPTCHA
А не робот ли вы случайно?
2 + 6 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.