Теги в MODx
Тэги в MODx делаются не сложно, сложнее решить как их сделать удачнее :) Ковыряние интернета дало несколько решений, общая их идея такова: в документе есть поле в котором лежат тэги, выводит тэги в должной кондиции сниппет tagLinks, документы с тегами выбирает сниппет Ditto. Различия решений сводятся к различным мелочам, я не буду писать каким и почему
Первый шаг абсолютно очевидный: создаем
Дальше необходимо это
case «tags»:
$tgs_arr = explode(’,’, $output);
for($tgs_i = 0; $tgs_i
$tgs_arr[$tgs_i] = ’’ . trim($tgs_arr[$tgs_i]) . ’’;
$output = implode(’, ’, $tgs_arr);
break;
После этого я просто написал в шаблоне [+tags:tags+], и строка с тегами сама разбилась и вывелась должным образом. В связи с особенностями верстки пришлось обернуть это еще в проверку на пустоту с выводм , если строка пустая. Мне кажется, что такой вариант куда более шустрый, простой и понятный, чем ставить лишний сниппет, и курить его параметры чтобы получать ровно то же самое. Впрочем, если вам нравится поставить сниппет, то результат отличаться не будет.
Примечание: на данном этапе тэги надо выводить
Итак, тэги принимает сниппет Ditto и выводит нужные документы. Не будем погружаться в смысл сниппетов и их реализацию в MODx, делается всё аналогично любой выборке документов с той лишь разницей, что добавляется три параметра:
&tagData=`tags` &tagDelimiter=`,` &tagMode=`onlyTags`
Описание всего этого можно найти в документации, а смысл понятен и так: это параметр, содержащий тэги, разделитель тэгов и режим «ловли», в данном случае «любой из перечисленных». Есть еще параметр &tags, который мы не пишем потому, что он цепляется из URL. Я создал документ с отдельным шаблоном, в котором документы выбираются с учетом тегов, этот документ располагается по адресу /tag/.
Теперь про URL. По идее мы пишем
# Tags
RewriteCond %{REQUEST_URI} /tag*
RewriteRule ^tag/([^.]+) index.php?q=/tag/&tags=$1 [L,QSA]
Мол, если полезли за тегами, то преобразовываем приятное в нужное. Может где накосячил, но вроде работает :)
Примечание: это решение для включенных ЧПУ с разрешением на вложенность
И еще небольшой штришок. На странице с тэгами надо
Вот и всё.
