Ссылка на последний опрос?


Я настроил свой 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 ($последнее); }

Author: Mike, 2011-06-28

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 (заменить, конечно).

 2
Author: Laxman13, 2011-06-28 15:38:06