По поводу опыта использования таксономии и не только

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

Аватар пользователя edhel edhel 25 августа 2005 в 18:58

Всё ковыряюсь с друпалем... По поводу опыта использования таксономии и не только:

Недавно делал простейший сайт http://tungus-bolid.krasu.ru/. Там есть просто отдельные страницы, а есть СТАТЬИ и ОТЧЕТЫ ОБ ЭКСПЕДИЦИЯХ. Вот я и сделал словарик из этих двух терминов и в меню ссылки "статьи" и "экспедиции" просто показываю списки нодов с помощью taxonomy/term/NID, где NID - идентификатор термина СТАТЬИ и ОТЧЕТЫ ОБ ЭКСПЕДИЦИЯХ. Ну и для галареи там image тоже использует словарик.

Делал чуток посложнее сайт http://region.krasu.ru/. Там просто свалка статей с длинными метаописаниями (на flexinode) и множественной классификацией с помощью taxonomy. Каждая статья классифицируется так: рубрика, географическая привязка (город/район), временная привязка (век), описываемый объект (организация, достопримечательность и т.п.) Потом с помощью своего модуля и API от taxonomy.module как угодно делаю выборку статей и вывожу статьи где надо.

Вот ща пишу третий сайт - гемороя поболе... типа workflow небольшого требуется... покупка услуг, бронирование, оповещения и т.п. Приходится flexinode доводить чуток, hook_nodeapi юзать и т.д. Таксономия похоже не пригодится.

Комментарии

Аватар пользователя Гость Гость (не проверено) 27 августа 2005 в 5:51

Слушай, ты создаешь словарик с двумя итемами. Что нужно сделать, чтобы, допустим, выбрав "экспедиции" в менюхе, попадал на страницу со списком нод (сверху-вниз, тольок названия, отсортированы по дате добавления)?

Аватар пользователя edhel edhel 27 августа 2005 в 7:12

В качестве пункта меню ставлю taxonomy/term/2 (или лучше алиас сделать). Чтобы не показывались описания, надо настраивать тему (в phptemplate это в файле node.tpl.php).

Аватар пользователя Troy Troy 2 сентября 2005 в 9:05

хостинг у тебя интересный. Ждал загрузки сайтов минуты полторы.
http://region.krasu.ru понравился, четкий хороший сайт, аккуратный дизайн, отлично заточенный друпал.

Аватар пользователя edhel edhel 13 сентября 2005 в 6:40

Это модуль собственной разработки, с хуком _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>", 'Выборка статей');
}
Аватар пользователя kiev1 kiev1 14 сентября 2005 в 0:25

очень красиво - Спасибо! Я сам давно хотел спросить но не решался - вот что значит хорошо продуманное API друпал

Аватар пользователя kiev1 kiev1 5 октября 2005 в 5:56

> Это модуль собственной разработки, с хуком _menu. Callback функция такая:

а как-бы сам модуль заполучить?

Аватар пользователя edhel edhel 5 октября 2005 в 6:38

Модуль нестандартный, для других сайтов не пойдет точно. Сюда выкладывать не буду, т.к. дырки могут быть - поломают еще) Если интересует реализация конкретной фичи - могу выложить нужный кусочек