Реализация навигации по терминам таксономии в доске объявлений

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

Аватар пользователя viki viki 3 октября 2010 в 23:03

Господа, помогите советом откуда копать! Суть проблемы:

Существует определенный тип содержимого, каталогизированный с помощью трех словарей (без вложенных терминов). Каким путем лучше реализовать навигацию по терминам в такой форме (примерная схема):
======================================================
Словарь 1:

активный термин термин термин термин

Словарь 2:

активный термин термин термин термин

Словарь 3:

активный термин термин термин термин

Список нод соответствующих выбраным терминам.
======================================================
Так, что бы выводился список нод (и шапка с терминами) в зависимости от выбора пользователя.

Модуль ed-classified не подходит (он использует термины из одного словаря, получается очень громоздкая структура, если еще наложить иерархический выбор и Pathauto не корректно назначает пути.

Написал снипет для стартовой страницы (ниже)
но непонятно, как реализовать передачу параметров в зависимости от выбора пользователя.


<?php 
$vocabularies 
taxonomy_get_vocabularies('obyavlenie');

foreach (

$vocabularies as $vocabulary) {
  if (
$vocabularies) {

echo 

'<h3>'.$vocabulary->name.'</h3>';  
// Номер словаря
// $vid = 7;
$pole = array();
$items = array();
$terms taxonomy_get_tree($vocabulary->vid);

foreach ( 

$terms as $term ) {
  
$count db_result(db_query("SELECT COUNT(nid) FROM {term_node} WHERE tid = %d"$term->tid));

// глубина пока опущена
$pole[]=Array (l($term->name"taxonomy/term/$term->tid") . (($count) ? " (".$count.")"""), $term->depth$count$term->tid)  ;
}
$depth =-1;
foreach (
$pole as $list) {
  
//$depth- глубина предыдущего уровня
  //$list[1] - глубина текущего элемента
  
if ($list[1] == $depth) {
    echo 
"</li>";
    
next;
  }
  while (
$list[1] != $depth) {
    if (
$list[1] > $depth) {
      
$depth++;
      echo 
"\n<ul>";
      
next;
    }
    if (
$list[1] < $depth) {
      
$depth--;
      echo 
"\n</li>\n</ul>";
    }
  }

  echo

"\n<li style='display: inline;'>$list[0]";
  
$depth=$list[1];
}
echo 
"</li></ul><hr>";
}
}
?>

Комментарии

Аватар пользователя dmitry042 dmitry042 5 октября 2010 в 17:10

Я вас огорчу тут вообще серьезных идей мало у кого есть Smile
если нет стандартного решения, своим никто не поделится.
Мне вот тоже много интересного с доской сделать хочется, но похоже функционал стандартных модулей у друпала не перекрывает и половины.
Кстати посмотрите в сторону Taxonomy list

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 5 октября 2010 в 20:40

"dmitry042" wrote:
если нет стандартного решения, своим никто не поделится.

Своё - это обычно именно своё, т.е под свои узкие нужды. Во всторых не каждый день тут доски делают, тем более со схожим функционалом.

Аватар пользователя dmitry042 dmitry042 6 октября 2010 в 0:59

Функционал у досок на 90-93% одинаков, база тоже одна, скрипт работающий с базой стандартен, вы доски с инет магазинами не путайте.

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 6 октября 2010 в 1:12

"dmitry042" wrote:
Функционал у досок на 90-93% одинаков,

Дык функционал большинства сайтов тоже одинаков Smile Давайте так: вы сделаете таки вашу доску и выложите наработки в виде готовой сборки, ладно?

Аватар пользователя dmitry042 dmitry042 6 октября 2010 в 11:50

Да я уже склоняюсь к тому что будет она не на друпале. как то тяжело идет, особенно с таксономией, все стандартные выводы как то мягко говоря не годятся, потому как не красивы, или не функциональны, на мой взгляд вывод словарей должен быть реализован как например на irr.ru , а вывод терминов по переходу в словарь, такой простой вещи как то не реализовано пока.