Ссылка на последний опрос?
Я настроил свой tpl-файл опроса, чтобы включить поля опроса (форма, результаты и т.д.) Вместе со списком внизу для предыдущих опросов, упорядоченных по дате. Что я пытаюсь сделать, так это в главном меню перейти по ссылке на последний опрос. Другими словами, мой текущий последний опрос - node/123456/. Очевидно, я могу сослаться на это. Но когда мы создаем новую, эту ссылку необходимо обновить. Я бы хотел, чтобы это было так, чтобы пункт меню не нужно было редактировать каждый раз, когда проводится новый опрос созданный.
Есть идеи?
ОБНОВЛЕНИЕ
Просто чтобы вы не думали, что я жду, ожидая, что вы напишете это для меня - вот где я нахожусь:
$items['poll/latest'] = array(
'title' => 'Latest Poll',
'page callback' => 'latest_poll_find_poll',
'access callback' => TRUE,
'type' => MENU_NORMAL_ITEM,
);
Возврат $товаров;
/** * Найти последний опрос и перенаправить пользователя */ функция latest_poll_find_poll() { $nid =db_query('ВЫБЕРИТЕ MAX(nid) В КАЧЕСТВЕ nid ИЗ {узла}, ГДЕ тип ="опрос"')->Поле выборки(); $latest = числовое значение ($nid)? 'узел/'. $nid:"; drupal_goto ($последнее); }
1 answers
Создайте небольшой пользовательский модуль, реализующий hook_menu()
и пользовательский обратный вызов, который определяет последний опрос и перенаправляет пользователя. Возможно, что-то вроде этого (для D6, D7 будут похожи):
Друпал 7
MYMODULE.info
name = "MYMODULE"
description = "Adds a menu item for the most recent poll"
core = 7.x
МОЙ модуль.модуль
<?php
/**
* Implementation of hook_menu()
*/
function MYMODULE_menu() {
$items = array();
$items['poll/latest'] = array(
'title' => 'Latest Poll',
'page callback' => 'MYMODULE_find_poll',
'access callback' => TRUE,
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
/**
* Find latest poll and redirect user
*/
function MYMODULE_find_poll() {
$nid = db_query('SELECT MAX(nid) AS nid FROM {node} WHERE type = :type', array(':type' => 'poll'))->fetchField();
$latest = is_numeric($nid) ? 'node/' . $nid : '<front>';
drupal_goto($latest);
}
Друпал 6
MYMODULE.info
name = "MYMODULE"
description = "Adds a menu item for the most recent poll"
core = 6.x
МОЙ модуль.модуль
<?php
/**
* Implementation of hook_menu()
*/
function MYMODULE_menu() {
$items = array();
$items['poll/latest'] = array(
'title' => 'Latest Poll',
'page callback' => 'MYMODULE_find_poll',
'access callback' => TRUE,
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
/**
* Find latest poll and redirect user
*/
function MYMODULE_find_poll() {
$nid = db_result(db_query('SELECT MAX(nid) AS nid FROM {node} WHERE type = "poll"'));
$latest = is_numeric($nid) ? 'node/' . $nid : '<front>';
drupal_goto($latest);
}
Замена "MYMODULE" именем вашего пользовательского модуля и размещение эти файлы находятся в каталоге модулей вашего сайта в папке с именем MYMODULE (заменить, конечно).