Textpattern - на русском языке

форум общения русскоязычных пользователей CMS Текстпаттерн

Вы не зашли.

#1 27-01-2007 20:32:05

Pho-No
есть
Зарегистрирован: 07-06-2006
Сообщений: 61
Вебсайт

Четырехуровневая навигация на примере сайта туристического оператора

Для того, чтобы сразу было понятно о чем идет речь и как все должно выглядеть в итоге - http://las.kiev.ua/demo

Схема структуры такая -
Главная страница > раздел (Travel, Business, ... ) > Город (Киев, ... ) > Подраздел (Excursions, Hotels, ... ) > Статья.

В процессе было перепробовано несколько вариантов постройки структуры. Остановился на этой схеме, т. к. только она наиболее полно реализует техзадание заказчика. Во всех остальных вариантах были какие-то грабли в навигации по уровням структуры.

Все подробности мыслительного процесса уже не помню, поэтому опишу в общих чертах. В принципе все должно быть понятно.
Атрибуты плагинов и тегов тоже не буду расшифровывать - всю информацию можно найти в документации к ним.

Итак.
-----------------------------------------------------------------------
Главная страница.
Здесь все просто -
Созаем секцию "main", шаблон "main" для этой секции, и устанавливаем эту секцию для отображения по дефолту.

Меню навигации по разделам. Каждый раздел - отдельная секция со своим шаблоном.

Текст на главной -

Код:

<txp:article_custom id="id статьи" />

----------------------------------------------------------------------
Раздел.
Контент -

Код:

<txp:if_category name="">
<txp:article />    
<txp:else />
<txp:article_custom id="id  статьи" /> // текст на front-page раздела //
</txp:if_category>

Навигация по городам -

Код:

<txp:if_category name="">
<txp:php>
echo stw_category_tree(array(
    'start' => section(array()),
    'section' => category(array())
));
</txp:php>
<txp:else />
<txp:stw_category_tree start="cities" section="*"/>
</txp:if_category>

Если мы на главной странице раздела, выводится список городов.
Если мы перешли в определенный город - список подразделов.

Со следующего уровня, категории и секции как-бы меняются местами. Для этого плагину stw_category_tree передается название текущей категории для формирования линка на секцию.

Так мы попадаем в
--------------------------------------------------------------------
Подраздел
Для вывода подраздела используется секция с названием города и шаблоном "default". Таким образом, все секции городов используют один шаблон. Это удобно при добавлении нового города на сайт.

В шаблоне -
Навигация по контенту:

Код:

<txp:if_category name="travel,business">
    < txp:stw_category_tree start="*" section="*" />
<txp:else/>

<txp:if_individual_article>
<txp:php>
echo article_custom(array(
    'form'   => 'linklist',
    'section' => section(array()),
    'category' => category1(array())
));
</txp:php>

<txp:php>
echo stw_category_tree(array(

'minlevel' => '2',
'section' => '*',
'prune' => 'y',
'cat' => category1(array())
));
</txp:php>

<txp:else/>

<txp:php>
echo article_custom(array(
    'form'   => 'linklist',
    'section' => section(array()),
    'category' => category(array())
));
</txp:php>

</txp:if_individual_article>

<txp:php>
echo stw_category_tree(array(
'localized' => 'y',
'minlevel' => '2',
'section' => '*',
'prune' => 'y',
'cat' => category(array())
));
</txp:php>
< /txp:if_category>

Контент:

Код:

<txp:if_individual_article>
<txp:article />
<txp:else/>

<txp:php>
echo article_custom(array(
    'limit'   => '1',
    'section' => section(array()),
    'category' => category(array())
));
< /txp:php>
< /txp:if_individual_article>

-------------------------------------------------------------------------
По коду, кажется, все.

Теперь о том, как все выглядит для пользователя.

Создаются категории и подкатегории.
Cities > Город1, Город2, ...
Business > Conference Halls, Exhibitions, ...
Travel > Excursions, Hotels, ...

Создается секция для каждого города.

Для текста (статей) на front-page разделов устанавливается
и категория и секция однименная разделу.

Для текста на front-page города - категория одноименная городу, секция - соответствующая разделу (Business, Travel).

Для статей, описывающих отели, концертные залы и т. д. -
соответствующая категория.
Cекция, соответствующая городу, в котором весь этот stuff расположен.
-------------------------------------------------------------------------
Резюме:

Средствами Textpattern такую, достаточно сложную структуру, реализовать можно.
Из отрицательных моментов:
1) Некоторые неудобства для пользователя. Нужно запомнить как жонглировать секциями и категориями при добавлении статьи.
Но эта проблема решается созданием короткой и понятной инструкции для пользователя.

2) C подсветкой текущего раздела/категории в менюшках явная лажа. При такой структуре не нашел решения проблемы.

Тем, кто осилил сей талмуд - спасибо за внимание).
Буду рад услышать отзывы и мнения.

Неактивен

 

#2 28-01-2007 02:07:51

ТВЭЛ
слово
Откуда: Северск-Томск
Зарегистрирован: 29-04-2006
Сообщений: 366
Вебсайт

Re: Четырехуровневая навигация на примере сайта туристического оператора

Плохо, что Urlы получаются нелинейные sad И вообще очень мудрено, конечно - как-то не лежит душа к такому решению. Но пока не столкнусь с ситуацией, когда надо будет осуществить подобное, вряд ли займусь.


Время не ждет.

Неактивен

 

#3 29-01-2007 00:27:24

glebotr
ять
Зарегистрирован: 25-06-2005
Сообщений: 1974
Вебсайт

Re: Четырехуровневая навигация на примере сайта туристического оператора

Под данную задачу -- очень круто.

Думал-думал, не придумал, как с такой инфой соблюсти правило двух кликов.

Хотя... Если сделать навигацию по дереву категорий с тем же плагином, можно просто получить структуру любого уровня вложенности. А секции задействовать для разделов верхнего уровня...

А! Вот что не понял -- зачем отдельносоздавать секцию main? Чем плох обычный встроенный default?

Отредактированно glebotr (29-01-2007 00:31:53)


Пх’нглуи мглв’нафх Ленин Красная площадь вгах’нагл фхтагн
(В своем доме на Красной площади мертвый Ленин спит, ожидая своего часа (ктулх.))

Неактивен

 

Board footer

RSS   Rambler's Top100
Powered by PunBB
Textpattern.ru