Справочник

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

Аватар пользователя MIR MIR 5 ноября 2006 в 18:20

Hi All!

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

Я о втором аспекте Smile

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

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

Комментарии

Аватар пользователя MIR MIR 7 ноября 2006 в 11:10

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

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

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

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

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

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

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

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

Аватар пользователя Dan Dan 7 ноября 2006 в 11:18

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

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

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

Аватар пользователя MIR MIR 7 ноября 2006 в 11:41

Примерчик можно? Smile

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

Аватар пользователя Dan Dan 7 ноября 2006 в 12:02

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

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

Аватар пользователя Dan Dan 7 ноября 2006 в 15:14

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

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

    ');
    foreach( taxonomy_get_tree($vid->vid) as $tid )
    print('
  • '.$tid->name.' ('.taxonomy_term_count_nodes($tid->tid).')
  • ');
    print('

');
}?>

Аватар пользователя MIR MIR 8 ноября 2006 в 13:39

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

Аватар пользователя MIR MIR 8 ноября 2006 в 15:33

Smile

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

Аватар пользователя Dan Dan 8 ноября 2006 в 15:54

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

Аватар пользователя Dan Dan 8 ноября 2006 в 17:08

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

Аватар пользователя inc inc 8 ноября 2006 в 20: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 Dan 8 ноября 2006 в 23:57

Кстати, ничего придумывать самому не надо!
Всё что нужно тебе, есть в ф-ции taxonomy_overview_terms. Попробуй это:
<?php
foreach( taxonomy_get_vocabularies() as $vid )
print taxonomy_overview_terms($vid->vid);
?>
---
inc, спасибо Smile