Справочник

Прислано: MIR

вс, 05/11/2006 - 15:20

Hi All!

Здесь уже поднимались вопросы типа картотек сотрудников, справочников и пр.
Кто-то заметил, что подобный вопрос можно разбить на 2 части:
1. структура и тип контента - штатно.
2. Вывод всего этого в приличной форме.

Я о втором аспекте :)

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

Я думаю это вопрос актуальный и его надо решать! :)

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано Dan в пн, 06/11/2006 - 20:07.

Опишите задачу подробней, с примерами.


Опубликовано MIR в вт, 07/11/2006 - 08:10.

Есть словарь вида:

Бизнес-справочник
* IT-технологии
o Интернет-провайдеры
o Компьютерные клубы
o Компьютеры, комплектующие
o Программное обеспечение
o Ремонт, обслуживание
* Авторынок
o Автозапчасти
o Авторемонт
o АЗС, ГСМ
o Мойки
o Салоны, магазины
o Тюнинг

Необходимо его вывести примерно в в таком ракурсе:

Бизнес-справочник

IT-технологии
Интернет-провайдеры (6), Компьютерные клубы (4),
Компьютеры, комплектующие (12), Программное обеспечение (9),
Ремонт, обслуживание (5)

Авторынок
Автозапчасти (2), Авторемонт (7)
АЗС, ГСМ (12), Мойки (6), Салоны, магазины (18),
Тюнинг (5)

В скобках - количество нод в подрубрике.

Что-то в этом роде. Т.е., необходимо получить красиво (удобно) выведенный справочник.


Опубликовано Dan в вт, 07/11/2006 - 08:18.

И всё?
10 строчек кода.

Надеюсь я не слишком самоуверен :)

Помогут функции:
taxonomy_get_children($tid, $vid = 0, $key = 'tid')
taxonomy_get_vocabularies($type = NULL)


Опубликовано MIR в вт, 07/11/2006 - 08:41.

Примерчик можно? :)

И вообще, на этот сайт я зачастил пару недель назад.
Смотрю, тут вовсю используются подобные приемы.
Это нормальный ход вещей?


Опубликовано Dan в вт, 07/11/2006 - 09:02.

Ну может с помощью views можно сварганить.

Примерчик (работающий) ближе к вечеру напишу. Если только не объявится герой и не напишет вперёд меня (:))


Опубликовано Dan в вт, 07/11/2006 - 12:14.

Готово!
делаем страницу с форматом PHP и вставляем туда вышеприведённый код.
Уместился в 10 строк!

<?php if( !module_exist("taxonomy")){
  print(
'Включите модуль taxonomy!');
  return;
}
foreach( 
taxonomy_get_vocabularies() as $vid ){
  print(
'<strong>'.$vid->name.'</strong><ul>');
  foreach( 
taxonomy_get_tree($vid->vid) as $tid )
    print(
'<li>'.$tid->name.' ('.taxonomy_term_count_nodes($tid->tid).')</li>');
  print(
'</ul><br/>');
}
?>


Опубликовано MIR в ср, 08/11/2006 - 10:39.

Таки да :) Спасибо!
Все довольно просто. Будем пробовать.
Но! Этот пример выводит термины словаря сплошным спиком.
А как в иерархическом? :)
Если конечно не сложно :)


Опубликовано Dan в ср, 08/11/2006 - 12:13.

Я сделал так как написано в http://www.drupal.ru/node/2839#comment-13127
Пиши ТЗ заново :)


Опубликовано MIR в ср, 08/11/2006 - 12:33.

:)

Словарь: "Бизнес-справочник" (vid - 16)
Термин первого уровня: "IT-технологии"
Термины второго уровня (подтермины IT-технологий):
- Интернет-провайдеры
- Компьютерные клубы
- Компьютеры, комплектующие
- Программное обеспечение
- Ремонт, обслуживание
Так выглядит один раздел с подразделами.
Ессно что таких разделов с подразделами несколько и их количество может меняться.
Вроде все. Фух. :)


Опубликовано Dan в ср, 08/11/2006 - 12:54.

"Но! Этот пример выводит термины словаря сплошным спиком."
Этот пример выводит термины всех словарей, то есть два уровня: словарь - термы.
Как ты хочешь тоже вроде не сложно. Но ближайшие несколько дней времени не будет написать. Если сам не разберёшься - накропаю (я вообще-то PHP не очень знаю - сишники мы :-)


Опубликовано MIR в ср, 08/11/2006 - 13:19.

Думаю, разберусь. В любой случае - спасибо за наводку :)
Сцылочку потом дам :)


Опубликовано Dan в ср, 08/11/2006 - 14:08.

Кодгда будешь кодить, не забудь, что иерархия может быть множественной, то есть у терма может быть несколько родителей и соответственно отображаться он будет несколько раз в списках.


Опубликовано inc в ср, 08/11/2006 - 17:13.

Если хотите чтобы список категорий был в виде Javascript дерева,то используйте это, а затем используйте на странице следующий код:

<?php 
foreach( taxonomy_get_tree(16, 0, -1, 1) as $term ) {
  $v=taxonomy_dhtml_block('view','c'.$term->tid); 
  echo '<table border="1"><tr><td>'.$v['subject'].'</td></tr><tr><td>'.$v['content'].'</td></tr></table>'; 
}
?>

Потом на странице настроек модуля можно задать свернутыми или развернутыми будут категории по-умолчанию.


Опубликовано Dan в ср, 08/11/2006 - 20:57.

Кстати, ничего придумывать самому не надо!
Всё что нужно тебе, есть в ф-ции taxonomy_overview_terms. Попробуй это:

<?php
foreach( taxonomy_get_vocabularies() as $vid )
  print 
taxonomy_overview_terms($vid->vid);
?>

---
inc, спасибо :)


Новое на сайте