Дополнительные поля в меню

Главные вкладки

Аватар пользователя Dablu Dablu 30 мая 2008 в 14:33

Приветствую!
Вопрос в следующем:
Есть у меня модули, в некоторых из них вызывается хук menu
Например

function payment_menu($may_cache) {

  if ($may_cache) {

    $items[] = array(
        'path' => 'payment',
        'title' => t('Оплатить счет'),
        'callback' => 'payment',
        'callback arguments' => array(),
        'access' => true,
        'myfield' => 'некоторая моя информация',
        'type' => MENU_CALLBACK,
    );
  }

  return $items;
}

Каким образом можно сделать свой дополнительный аттрибут у пунка меню (типа myfield в примере)?
И если это вообще возможно, то как в последующем прочитать/получить это значение из какой-либо функции?
Если это не возможно, то как прочитать/получить значение поля path из какой-либо функции?

Спасибо!

Комментарии

Аватар пользователя wanders.32 wanders.32 30 мая 2008 в 14:39

function payment($param = NULL, $path = NULL)
указал формальные параметры $param и $path - они доступны тебе в твоей функции.
нахрен тебе дополнительный аттрибут? не пойму, как он может использоваться, 'type' => MENU_CALLBACK - подразумевает, что этот модуль будет отдавать возвращаемое функцией payment при наборе в браузере ссылки www.site.com/?q=payment

Аватар пользователя Dablu Dablu 30 мая 2008 в 14:56

Спасибо! Аха, это вариант хороший, очевидный и простой, только мне он не подходит. Т.к. использовать собственный параметр предполагается не в функции обработчике (callback), а вообще в другом модуле, в хуке.
Грубо говоря задача такая: весь сайт на utf-8 (это прекрасно я очень люблю эту кодировку), но специфика такая, что некоторые страницы должны быть в других кодировках. Уже есть функции перехватывающие вывод друпала и перекодирующие все что друпал "выплевывает" в браузер. Но вот какие именно страницы перекодировать и в какую кодировку надо как-то задать - самое очевидное определить это собственно в свойсте страницы (пункте меню).

Аватар пользователя wanders.32 wanders.32 30 мая 2008 в 16:51

эм, смотри: $param = nid, а $path = это то, что идет после него.
то есть mysite.net/42/codepage.
т.е смотри $path, что в нем, и перекодируй?