Пишу свой модуль, требуется хитро вывести сабжевую страницу. Поискал соответствующий хук - не нашел.
Вижу, что вызывается taxonomy_term_page как menu callback (что это такое, кстати? не разбирался еще с меню). Видимо, надо эту функцию и переопределить. А как назвать-то ее?
upd. модуль devel - наше все. там есть пимпа "rebuild menus". она-то меня и спасла от злобного кеширования меню. еще б разобраться, как это делать программно из своего модуля...
Комментарии
А можно по подробнее задачу, а то хитро вывести - не есть описание ))).
А я не спрашиваю помощи в выводе. Я спрашиваю, как функцию переопределить
Поразбирался с хуками, написал функции для hook_menu & hook_theme - что-то они не вызываются
Назвал их имя_моего_модуля_menu и имя_моего_модуля_theme соответственно.
Вставляю туда для проверки drupal_set_message("блаблабла") - никакой реакции (( Хотя в _init аналогичный drupal_set_message отлично отрабатывает.
Что я делаю не так?
для theme если мне память не изменяет надо theme_имя модуля. и если не сложно то что у вас не работает код в студию, по проводам не вижу ))).
* Implementation of hook_theme()
*/
function taxonomy_distant_theme() {
drupal_set_message("theme");
return array(
'td_term_page' => array(
'arguments' => array('tids' => array(), 'result' => NULL),
),
);
}
/**
* Реализация hook_menu()
*/
function taxonomy_distant_menu() {
drupal_set_message("menu");
$items['taxonomy/term/%'] = array(
'title' => 'Taxonomy term',
'page callback' => 'td_term_page',
'page arguments' => array(2),
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
'file' => 'taxonomy_distant.module',
);
return $items;
}
не вызываются, drupal_set_message не отрабатывает.
функции - copy&paste из модуля taxonomy с заменой чего надо под свой модуль.
if ($my_cache) {
$items[] = array(
'path' => 'admin/settings/bli',
'type' => MENU_NORMAL_ITEM,
'title' => t('BLI module'),
'access' => user_access('administer site configuration'),
'callback' => 'drupal_get_form',
'callback arguments' => array('bli_admin_settings_form'),
);
}
return $items;
}
function theme_bli_tabs_prices (&$node){
$view = views_get_view('proditems');
$content = theme('views_display_filters',$view);
$content .= '<div id="view-prices"></div>';
return $content;
}
Вот так я примерно определяю меню и theme функции для своих модулей и у меня все работет.
модуль devel - наше все. там есть пимпа "rebuild menus". она-то меня и спасла от злобного кеширования меню. еще б разобраться, как это делать программно из своего модуля...
Попробуй найти какая ф-ция модуля девел вызывается при нажатии на пимпу)) и у себя в модуле вызывай эту ф-цию при определенных условиях или на определенном событии.