• Авторизация


каталог на CMS MODx ( Ditto + PHx ) 26-05-2011 08:44 к комментариям - к полной версии - понравилось!


Делаем каталог на CMS MODx ( Ditto + PHx )

Для работоспособности, приведённого ниже примера каталога для сайта на CMS MODx, необходимо установить плагин PHx
[248x340]Этот пример позволяет формировать структуру каталога автоматически, без какого либо участия со стороны администратора сайта. Редакторам остаётся лишь наполнить каталог добавляя папки ( дочерние ресурсы контейнеры) или простые документы ( дочерние ресурсы) .

Так как это решение базируется на ditto, то совсем не трудно развить этот пример до чего нибудь более интересного, например добавить теги или фильтрацию.

 

  

 

 

 
1) Создаём папку в дереве документов modx ( контейнер документов ), где у нас будет находиться каталог

2) Создаём шаблон для отображения каталога и для этого шаблона создаём две переменные ( tv )
cat - тип текст , значение по умолчанию - @CHUNK catalog
catimage - тип image  ( поле для ввода пути к изображению ) , визуальный компонент- image.

3) создаём чанк catalog

  1.  
  2. [*isfolder:is=`1`:then=`
  3. <div class="catalog">[!Ditto? id=`cat[*id*]` &parent=`[*id*]` &display=`all` &tpl=`catalog_tpl` &filter=`isfolder,1,1` &noResults=`{{ditto_empty}}` &sortBy=`menuindex` &sortDir=`ASC`!]</div>
  4.  
  5. <div class="catdocs">
  6. [!Ditto? id=`doc[*id*]` &parent=`[*id*]` &paginate=`1` &display=`all` &tpl=`catalog_content_tpl` &filter=`isfolder,1,2` &noResults=`{{ditto_empty}}` &sortBy=`menuindex` &sortDir=`ASC`!]
  7. </div>
  8. `*]
  9.  

Содержимое чанка выполняется если текущий документ папка (текущий ресурс - контейнер). &noResults=`{{ditto_empty}}` - чанк из которого берётся содержимое в случае если не найдены дочерние документы. Можно обойтись пробелом. Первый запрос выводит только папки , второй только документы в текущей папке. То есть вначале - каталог , ниже содержимое категории. 4) Выводим картинку и название категории, ниже список подкатегорий. Cоздаём чанк catalog_tpl

  1.  
  2. <div class="block_category">
  3. <span class="catimage">[+catimage+]</span><span class="category">
  4. <a href="[(site_url)][~[+id+]~]">[+pagetitle+]</a><br />
  5. <span class="subcategory">
  6. [[Ditto? id=`sub[+id+]` &parents=`[+id+]` &display=`all` &save=`1` &tpl=`subcatalog_tpl` &filter=`isfolder,1,1` &noResults=`{{ditto_empty}}` &sortBy=`menuindex` &sortDir=`ASC` ]]
  7. </span></span>
  8. </div>
  9.  

Выводим картинку и название категории, ниже список подкатегорий. 5) Формируем вывод подкатегорий . Создаём чанк subcatalog_tpl

  1.  
  2. <span><a href="[(site_url)][~[+id+]~]">[+pagetitle+]</a></span>
  3.  

6) Создаём чанк catalog_content_tpl

  1.  
  2. <a href="[(site_url)][~[+id+]~]">[+pagetitle+]</a><br />
  3. [+introtext+]<br /><br />
  4.  

7) Добавляем CSS

  1.  
  2. .catalog{
  3. display: block;
  4. float: left;
  5. width: 100%;
  6. }
  7. .block_category{
  8. padding: 10px 10px 10px 5px;
  9. margin: 5px;
  10. display: block;
  11. background-color: #E6F4F8;
  12. height: 90px;
  13. width: 300px;
  14. vertical-align: top;
  15. float: left;
  16.  
  17. }
  18. .catimage{
  19. float: left;
  20. }
  21. .category a{
  22. font: bold 15px Verdana, Geneva, Arial, Helvetica, sans-serif;
  23. text-decoration: none;
  24. }
  25. .subcategory a{
  26. font: normal 11px Verdana, Geneva, Arial, Helvetica, sans-serif;
  27.  
  28. }
  29.  
  30. .catdocs{
  31. display: block;
  32. float: left;
  33. width: 100%;
  34. }
  35.  

В шаблон каталога вставляем вывод TV - [*cat*]

Пример того что получилось Основное достоинство данного решения - автоматическое формирование всей структуры каталога, просто добавляем дочерние документы и папки в общее дерево документов modx. Шаблон и переменные наследуются автоматически. Для картинок можно прикрутить directresize.

 

 

Чтобы вывести эту конструкцию на страницу вставляем вывод TV например так.

  1.  
  2. <body>
  3. [*cat*]
  4. </body>
  5.  

Но лучше так:

  1.  
  2. <body>
  3. {{header}}
  4. {{menu}}
  5. [*longtitle*]
  6. [*content*]
  7. [*cat*]
  8. {{bottom}}
  9. </body>
 
источник http://h88.ru/modx/dokumentaciya/katalog-na-cms-modx.html?jnebdeaa9c=3#jotnavebdeaa9cd1a62c8cfd9ed91948e92f1e
вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник каталог на CMS MODx ( Ditto + PHx ) | spacesite - Дневник Хатуль мадан | Лента друзей spacesite / Полная версия Добавить в друзья Страницы: раньше»