Как в блоке настроить вывод оглавления страниц определённой категори

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

Аватар пользователя evseev evseev 17 января 2005 в 17:17

Есть категория "Новости" с терминами "Сайт", "Фирма", "Внешний мир" и т.д.

Требуется, во-первых, чтобы заголовки нескольких последних и важных страниц определённого типа (или типов, например, "Фирма и сайт") выводился в блоке.

Во-вторых, требуется, чтобы для вывода полного оглавления присутствовала отдельная страница.

Можно ли то и другое сделать в Друпале быстро? Если да, то как?

Комментарии

Аватар пользователя evseev evseev 17 января 2005 в 20:54

Финт ушами - создавать отдельный блок для каждой важной новости, вручную помещая в него дайджест и ссылку на полный вариант. Недостатков три:
- во-первых, заголовки блоков отъедают место,
- во-вторых, много ручной работы при создании дайджеста и линка,
- в-третьих, создавать и редактировать блоки может только админ.

Поэтому проблема остаётся.

Аватар пользователя arsart arsart 18 января 2005 в 1:07

Лучше выводить через php.
Например для своего сайта выводил блок с рандомным выбором нужного типа ноды - weblink, по одной тематике (term_node id)

<?php
$result = db_query_range("SELECT n.nid, n.title, w.weblink, w.click FROM {node} n, {term_node} t, {weblink} w WHERE t.nid = n.nid AND n.nid = w.nid AND tid = 9 AND n.type='weblink' AND n.status = 1 ORDER BY RAND() ", 0, 1);
while ($node = db_fetch_object($result)) {
$output = "" . $node->click . "

";
$output .= l($node->title, "node/$node->nid", array("title" => t("$node->title")));
$output .= "

";
}
return $output;
?>

Можно вывести в виде стандартного списка(лимитировав до 10 штук) не указывая тип ноды (просто ноды), но указав например сортировку по дате и номер словарика откуда дергать ноды (в примере tid=9, как дернуть из нескольких выбранных словариков сразу кроме как из всех вообще tid=%d не знаю.):

<?php
$orderby = 'n.created';

$result = db_query_range("SELECT n.nid, n.title, n.moderate FROM {node} n, {term_node} t WHERE t.nid = n.nid AND tid = 9 AND n.status = 1 AND n.moderate = 0 ORDER by $orderby DESC", 0, 10);
$items = array();
while ($node = db_fetch_object($result)) {
$items[] = $node;
}
return theme("theme_item_list", $items);

?>

В общем что-то где-то так:)
в php я не силен:(

Аватар пользователя kiev1 kiev1 18 января 2005 в 15:27

Это хорошо, подскажите давний вопрос - как в XTemplate, то есть в теме на XTemplate оформить блочек и его вставить в нужное место и вообще - как в XTemplate делать условия в зависимости от обстоятелств? например одно для зарегистрированных - другое для других и еще - указать в шаблонах группу страниц где блок виден, через путь - понятно *часть_url* - но как тут-же указать или в другом блоке, указать через такой-же шаблон наоборот - те страницы где он не должен показыватьься.