Drupal динамическое внутреннее перенаправление
То, что я хочу, довольно просто. Я прописал путь
function spotlight_menu() {
$items = array();
$items['congres'] = array(
'title' => 'Congres',
'title arguments' => array(2),
'page callback' => 'taxonomy_term_page',
'access callback' => TRUE,
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
Когда этот пункт меню активирован, я хочу перенаправить (без изменения URL) страницу таксономии, термин которой выбирается в функции, которая запускается при вызове этой функции.
Как я могу сделать это (особенно без изменения URL)?
1 ответ
Решение
Ты не можешь позвонить taxonomy_term_page
прямо как твой page callback
так как вам нужно было бы предоставить функцию загрузки для загрузки термина, которая будет слишком сложной для вашей установки.
Вместо этого определите свой собственный обратный вызов страницы в качестве посредника и просто верните результат из taxonomy_term_page
непосредственно:
function spotlight_menu() {
$items = array();
$items['congres'] = array(
'title' => 'Congres',
'page callback' => 'spotlight_taxonomy_term_page',
'access callback' => TRUE,
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
function spotlight_taxonomy_term_page() {
// Get your term ID in whatever way you need
$term_id = my_function_to_get_term_id();
// Load the term
$term = taxonomy_term_load($term_id);
// Make sure taxonomy_term_page() is available
module_load_include('inc', 'taxonomy', 'taxonomy.pages');
// Return the page output normally provided at taxonomy/term/ID
return taxonomy_term_page($term);
}