По поводу опыта использования таксономии и не только
Прислано: edhel
чт, 25/08/2005 - 14:58
Всё ковыряюсь с друпалем... По поводу опыта использования таксономии и не только:
Недавно делал простейший сайт http://tungus-bolid.krasu.ru/. Там есть просто отдельные страницы, а есть СТАТЬИ и ОТЧЕТЫ ОБ ЭКСПЕДИЦИЯХ. Вот я и сделал словарик из этих двух терминов и в меню ссылки "статьи" и "экспедиции" просто показываю списки нодов с помощью taxonomy/term/NID, где NID - идентификатор термина СТАТЬИ и ОТЧЕТЫ ОБ ЭКСПЕДИЦИЯХ. Ну и для галареи там image тоже использует словарик.
Делал чуток посложнее сайт http://region.krasu.ru/. Там просто свалка статей с длинными метаописаниями (на flexinode) и множественной классификацией с помощью taxonomy. Каждая статья классифицируется так: рубрика, географическая привязка (город/район), временная привязка (век), описываемый объект (организация, достопримечательность и т.п.) Потом с помощью своего модуля и API от taxonomy.module как угодно делаю выборку статей и вывожу статьи где надо.
Вот ща пишу третий сайт - гемороя поболе... типа workflow небольшого требуется... покупка услуг, бронирование, оповещения и т.п. Приходится flexinode доводить чуток, hook_nodeapi юзать и т.д. Таксономия похоже не пригодится.
- edhel's blog
- Для комментирования войдите или зарегистрируйтесь
Слушай, ты создаешь словарик с двумя итемами. Что нужно сделать, чтобы, допустим, выбрав "экспедиции" в менюхе, попадал на страницу со списком нод (сверху-вниз, тольок названия, отсортированы по дате добавления)?
- Для комментирования войдите или зарегистрируйтесь
В качестве пункта меню ставлю taxonomy/term/2 (или лучше алиас сделать). Чтобы не показывались описания, надо настраивать тему (в phptemplate это в файле node.tpl.php).
- Для комментирования войдите или зарегистрируйтесь
хостинг у тебя интересный. Ждал загрузки сайтов минуты полторы.
http://region.krasu.ru понравился, четкий хороший сайт, аккуратный дизайн, отлично заточенный друпал.
- Для комментирования войдите или зарегистрируйтесь
А как сделать выпадающее меню для выборки статей, как здесь:
http://region.krasu.ru/places
- Для комментирования войдите или зарегистрируйтесь
Это модуль собственной разработки, с хуком _menu. Callback функция такая:
function _region_select_page() {
// разбор параметров
$chto = $_REQUEST['chto'];
$gde = $_REQUEST['gde'];
$kogda = $_REQUEST['kogda'];
$tids = array();
if (is_numeric($chto))
$tids[] = $chto;
if (is_numeric($gde))
$tids[] = $gde;
if (is_numeric($kogda))
$tids[] = $kogda;
// вывод форма
$output = "<form action=select><table class=filter_form><tr><td>" .
theme_region_filter('Что?', 'chto', '(всё)', taxonomy_get_tree(3), $chto) . "</td><td>" .
theme_region_filter('Где?', 'gde', '(везде)', taxonomy_get_tree(4), $gde) . "</td><td>" .
theme_region_filter('Когда?', 'kogda', '(все эпохи)', taxonomy_get_tree(5), $kogda) . "</td><td>" .
"<input type=submit value=\"Найти\"></td></tr></table></form>"
;
// результаты поиска
$limit = 20;
$articles = taxonomy_select_nodes($tids, 'and', 'all', true, $limit);
$n = 0;
while (($article = db_fetch_object($articles)) && $n++ < $limit) {
$article = node_load(array('nid' => $article->nid));
$output .= theme_region_article_link($article);
}
$output .= theme('pager',array(),$limit,0,array('chto'=>$chto,'gde'=>$gde,'kogda'=>$kogda));
// ответ
print theme('page', "<div class=content_box id=articles>$output</div>", 'Выборка статей');
}
- Для комментирования войдите или зарегистрируйтесь
очень красиво - Спасибо! Я сам давно хотел спросить но не решался - вот что значит хорошо продуманное API друпал
- Для комментирования войдите или зарегистрируйтесь
> Это модуль собственной разработки, с хуком _menu. Callback функция такая:
а как-бы сам модуль заполучить?
- Для комментирования войдите или зарегистрируйтесь
Модуль нестандартный, для других сайтов не пойдет точно. Сюда выкладывать не буду, т.к. дырки могут быть - поломают еще) Если интересует реализация конкретной фичи - могу выложить нужный кусочек
- Для комментирования войдите или зарегистрируйтесь




Комментарии