Делаем репозитарий для Evo на Ditto
Здравствуйте! Сегодня я хотел бы поговорить о наболевшей проблеме — организации репозитариев (они же: файловые хранилища, файловые галереи, файловые архивы).
Я уже рассказывал о сниппете FileDownload, который вполне приемлем для выполнения некоторых задач, но и то, для людей разбирающихся. Как показала практика, даже плагин, который я делал под FileDownload, не спасает людей не посвященных и у них возникают серьезные трудности.
Что ж, поразмыслив, я подумал, что легче всего организовать файловый архив так, как реализуется практически все на MODx — через дерево ресурсов.
Для этого было решено использовать Ditto.
Итак, версия MODx Evo 1.0.4, Ditto стандартный, из дистрибутива.
Дать возможность простому персоналу легко и не принужденно добавлять файлы, писать к ним описания, делать папки.
В том, что бы использовать Ditto примерно так же, как, например, с выводом новостей, только вместо страниц — файлы.
Вообщем-то, я думаю, нужно пропустить размышления и тупиковые попытки и перейти сразу к окончательному варианту.
Структура файлового архива:
—Начальная страница архива
|—Папка 1
| |——Файл 1
| |——Файл 2
|—Файл 1
|—Файл 2
|—Файл 3
Т.е. примерно так:
Итак, для того, что бы отличать документы-файлы от документов-папок было решено сделать два дополнительных шаблона: один — для файлов, другой — для папок.
Шаблон файла — пустой (не удивляйтесь, Вы потом поймете для чего он нужен)
Шаблон для папки — содержит вызов Ditto.
В начальную страницу, Файловый архив, добавим вызов Ditto:
Пояснения:
1. Почему два вызова?
Два вызова тут потому, что с помощью одного вызова не получится сортировать раздельно папки и файлы (а ведь мы хотим, что бы папки были всегда первыми в списке).
2. Почему &id=`archiv`?
Это сделано на всякий случай, ведь на странице могут быть и другие вызовы Diito, например, Новости.
3. Зачем &noResults=` `?
А это для того, что бы вместо сообщения «Записей не найдено.» ничего не выводилось. Почему в одном вызове? Просто мы не хотим, что бы на странице не было этой надписи, если нет папок в поддиректории, а вот если не будет файлов — это надпись вполне уместна.
4. &filter=`template,15,8` и &filter=`template,16,8`
Вот тут выводим только то, что нужно: в первом файле выводим только те документы, которые с шаблоном (Шаблон папок), во втором только с шаблоном (Шаблон файлов).
Все остальное, я думаю, понятно.
Теперь те самые шаблоны: как я уже говорил, шаблон файлов может быть полностью пустым, а вот шаблон папок должен содержать вызов Ditto:
Как Вы могли заметить, отличие только в том, что мы добавили ссылку Назад. И еще: к шаблону для Папок необходимо сделать TV параметр, я его назвал tvfile, а тип ввода сделал File.
Далее, что у нас содержит чанк &tpl=`repository`:
Т.е. в чанке у нас только вызов простого рукописного сниппета repome.
Что делает сниппет:
1. Ассоциирует различные расширения файлов с их иконками
2. Происходит подсчет размера файла, выделение имени файла
3. Распознавание шаблонов и формирование вывода
Сниппет RepoMe
Поясню основные параметры:
Сам код сниппета я приводить не буду, я постарался его максимально прокомментировать и положил его в архив в конце статьи.
И, наконец, по стилям: те, кто используют FileDowload, наверное, заметили, что я использовал здесь его стили из примера — было лень переделывать (в архиве я приложил их).
Что должно получится:

И если войти в папку Вихревые генераторы:
О, и чуть не забыл: можно же ведь использовать ManagerManager. Убрав лишние поля (напомню, это делается через добавление иструкции mm_hideFields(‘список_полей_через_запятую’, ‘id_роли_пользователя’, ‘id_шаблона’) в чанк mm_rules, если Вы держите правила там либо же в одноименный файл в директории managermanager).
Тогда, для менеджера, вид административной части будет такой:
+ Колоссальная простота использования, можно один раз объяснить принцип добавления новостей — а потом его же использовать при объяснении работы с файловым архивом
+ Реализуется на Ditto, а значит, теоретически, можно прикручивать всякие ditto примочки, например рейтинг
+ Реализуется в виде документов — а значит можно, имея фантазию, наделать кучу наворотов
+ Независимость названий файлов и папок от их имен
+ Независимость от физического расположения файлов
+ Поддержка иконок
+ В принципе, универсальность
+ Простой код: возможность допиливать как угодно
— Неудобная настройка вывода (отсутствие шаблонов и плейсхолдеров для них)
— Для максимальной адаптации для Вашего ресурса, возможно, придется много допиливать
— Все-таки до профессионального инструмента далековато
На что нужно обратить внимание:
Не забываем про
Не забываем разрешать менеджерам пользоваться FCKeditor’ом и загружать различные типы файлов
На этом все. Возможно, если данная версия будет в ходу, будем ее улучшать, добавив шаблоны и прочие полезности.
Ditto modx evo параметры
У всех, кто впервые сталкивается с MODx Evolution, очень часто возникают подобные вопросы: как вывести дату создания документа, как вывести автора документа, как вывести заголовок родителя и т.д. и т.п. Согласитесь, не для всех это может оказаться элементарным на первых шагах изучения MODx. А сколько было потрачено нервов и времени в бесплодных попытках найти нужный ответ! И не всегда даже найденный ответ бывает очевиден и понятен. Хватит! Настало время дать сразу все ответы на все вопросы. Ну в меру собственных сил и знаний, конечно. В этой статье я буду собирать все подобные вопросы и стараться дать максимально подробный ответ, конечно же все это будет сопровождаться готовыми рабочими примерами, которые каждый сможет применить на практике.
Автор не считает себя великим гуру, поэтому, в подготовке этой статьи рассчитывает на помощь читателей. Присылайте свои вопросы и найденные решения, комментируйте и предлагайте альтернативные подходы, критикуйте и становитесь соавторами этой подборки.
1. Как вызвать сниппет в шаблоне другого сниппета?
Сниппеты можно вызывать двумя способами:
Если вызов основного сниппета некэшируемый, то в шаблоне сниппет обязательно должен быть кэшируемым. Более того, чтобы избежать проблем с выводом сниппетов (например с постраничным разбиением), основной сниппет желательно всегда делать некэшируемым.
К примеру, имеем некэшируемый вызов Ditto:
у которого в шаблоне ditto_tpl надо вызвать сниппет Wayfinder:
2. Как вывести дату создания документа?
Расширим задачу, сформулировав вопрос так: Как вообще выводить даты? Т.е. это может быть любая дата, как в шаблоне для Ditto так и на странице самого документа.
а) Задача: вывести дату создания документа в ленте новостей
Создаем чанк news_tpl:
| %a | сокращенное название дня недели в текущей локали | Втр |
| %A | полное название дня недели в текущей локали | Вторник |
| %b | сокращенное название месяца недели в текущей локали | Ноя |
| %B | полное название месяца недели в текущей локали | Ноябрь |
| %c | предпочтительный формат даты и времени в текущей локали | Втр 15 Ноя 2011 12:12:31 |
| %C | столетие (год, деленный на 100 и огругленный до целого, от 00 до 99) | 20 |
| %d | день месяца в виде десятичного числа (от 01 до 31) | 15 |
| %D | аналогично %m/%d/%y | 11/15/11 |
| %e | день месяца в виде десятичного числа, если это одна цифра, то перед ней добавляется пробел (от ‘ 1′ до ’31’) | 15 |
| %g | подобно %G, но без столетия. | 11 |
| %G | Год, 4-значное число, соответствующее номеру недели по ISO (см. %V). Аналогично %Y, за исключением того, что если номер недели по ISO соответствует предыдущему или следующему году, используется соответствующий год. | 2011 |
| %h | аналогично %b | Ноя |
| %H | номер часа от 00 до 23 | 12 |
| %I | номер часа от 01 до 12 | 12 |
| %j | номер дня в году (от 001 до 366) | 319 |
| %m | номер месяца (от 01 до 12) | 11 |
| %M | минуты | 12 |
| %n | символ «\n» | |
| %p | `am’ или `pm’, или соответствующие строки в текущей локали | |
| %r | время в формате a.m. или p.m. | 12:12:31 |
| %R | время в 24-часовом формате | 12:12 |
| %S | секунды | 31 |
| %t | символ табуляции («\t») | |
| %T | текущее время, аналогично %H:%M:%S | 12:12:31 |
| %u | номер дня недели от 1 до 7, где 1 соответствует понедельнику | 2 |
| %U | порядковый номер недели в текущем году. Первым днем первой недели в году считается первое воскресенье года. | 46 |
| %V | Порядковый номер недели в году по стандарту ISO 8601:1988 от 01 до 53, где 1 соответствует первой неделе в году, в которой как минимум 4 дня принадлежат этому году. Первым днем недели считается понедельник. (Используйте %G or %g для определения соответствующего года) | 46 |
| %W | порядковый номер недели в текущем году. Первым днем первой недели в году считается первый понедельник года. | 46 |
| %w | номер дня недели, 0 соответствует воскресенью | 2 |
| %x | предпочтительный формат даты без времени в текущей локали | 15.11.2011 |
| %X | предпочтительный формат времени без даты в текущей локали | 12:12:31 |
| %y | год без столетия (от 00 до 99) | 11 |
| %Y | год, включая столетие | 2011 |
| %Z | временная зона в виде смещения, аббривеатуры или полного наименования | MSK |
| %% | символ `%’ | % |
Примеры вызова Ditto с разными значениями даты:
б) Задача: вывести дату на странице самой новости
Казалось бы, чего проще? Меняем в чанке news_tpl все + на * и нужный чанк готов. Но в MODx нет специального тега [*date*], поэтому, вместо него придется использовать [*createdon*], [*editedon*] или [*pub_date*].
Для начала пробуем [*createdon*] или [*editedon*] и получаем вместо даты что-то типа этого:
Почему же так получилось? Потому что, любое время в БД записывается в виде Unix Timestamp — количество секунд от 1 января 1970 года до текущего момента. Зачем же такое придумали? Ну, например, для того, чтобы была возможность оперировать датой в независимости от ее формата. На самом деле, это будет легко перевести в нужный нам формат, но об этом чуть позже.
Берем следующий параметр [*pub_date*] и получаем:
Ну а тут то что не так, спросите вы? Оказывается, по-умолчанию параметр pub_date не устанавливается, поэтому его значение равно 0 и попытка его вывести выдаст 0 или 01.01.1970. Чтобы избежать этого, придется параметр pub_date делать обязательным к заполнению или установить ему значение по умолчанию. В этом нам поможет ManagerManager. Но даже если параметр будет заполнен, на выходе мы вновь увидим количество секунд, прошедших с 01.01.1970.
Решение 1. На помощь придет PHx, только прежде чем его устанавливать, ознакомьтесь с возможными проблемами. При установленном PHx вывод даты можно сделать таким образом:
Кстати, PHx можно использовать и в шаблоне Ditto, вставив вместо плэйсхолдера [+date+] один из этих плэйсхолдеров:
В этом слачае, при вызове Ditto параметры &dateSource и &dateFormat не нужны.
Решение 2. Для вывода даты в нужном формате можно воспользоваться сниппетом. Создаем новый сниппет, назовем его, к примеру, DateFormat, и помещаем в него следующий код:
В том месте, где нам необходимо вывести дату, помещаем такой вызов этого сниппета:
В параметре &val мы задаем значение для даты, а в параметре &format нужный формат. Сниппет может применяться как на странице новости, так и в шаблоне для Dito, не забудьте, если Ditto вызывается некэшируемым, то в его шаблоне сниппет должен вызываться как кэшируемый.
Если вызвать сниппет вообще без параметров:
то он выведет текущую дату в формате заданном по умолчанию: «%d.%m.%Y», этот формат можно поменять в коде сниппета.
3. Как отсортировать документы по TV-параметру с типом ввода Date?
Вот пример, где это может пригодиться: Необходимо отсортировать горящие туры по дате вылета. Дата вылета задается в TV-параметре data_toura с типом ввода Date. При этом, эта дата должна быть выведена в ленте горящих туров и на странице самого тура в формате %d-%m-%Y.
Для того, чтобы можно было отсортировать туры в ленте горящих туров, которая выводится с помощью снипета Ditto, мы будем использовать параметр &orderBy=`data_toura ASC`. Для того, чтобы сортировка у нас получилась правильная, необходимо задать параметру data_toura значение в формате количества секунд, прошедших с 1 января 1970 года. Для этого нам необходимо установить у этого параметра значение Визуальный компонент как Unixtime:
Для отображения этой даты в шаблоне Ditto и на странице тура будем использовать PHx или сниппет DateFormat из предыдущей статьи:
4. Как вывести дату на русском языке?
Т.е. мы хотели бы увидеть дату в формате: 12 декабря 2012 года.
Создаём сниппет convertDate и вставляем в него такой код:
В качестве значения параметра &MyDate могут выступать createdon, editedon, pub_date, unpub_date и TV-параметр с типом ввода Date и визуальным компонентом Unixtime.
5. Как вывести автора документа?
Для этой цели можно воспользоваться возможностями PHx, если он у вас установлен.
Логин того, кто создал документ, будет выводиться таким образом:
К примеру, если документ создал администратор, то выведется его логин admin.
Но для того, чтобы вывести не логин, а полное имя пользователя, которое указано в соответствующем поле в настройках пользователей, делаем так:
Для вывода E-mail пользователя:
6. Как вывести заголовок родительского документа?
А) Вновь расширим задачу: Как вообще выводить параметры родительского документа?
На помощь опять придет PHx.
Вывести ID родительского документа мы можем с помощью специального тега MODx:
Чтобы вывести заголовок родительского документа, применяем PHx:
Чтобы вывести ID родителя родителя, т.е. дедушки:
Чтобы вывести заголовок прадедушки:
Таким образом можно получать не только id или заголовок, а и любой другой параметр, например расширенный заголовок родителя:
Б) Если по каким-то причинам вы не можете использовать PHx, на помощь придет сниппет getField.
Скачайте и установите сниппет, как это описано в документации. Чтобы получить заголовок родительского документа, сниппет надо вызвать с такими параметрами:
При parent=0 будет использоваться родительский документ. В качестве значения параметра field можно указывать любое поле документа или TV-параметр.
Чтобы получить заголовок или другое поле «дедушки», используются следующие параметры:
Этот сниппет позволяет выводить любой параметр любого документа. С помощью параметра docid можно задать ID интересующего документа, а с помощью параметра field необходимое поле или TV-параметр:
7. Как обрезать длину строки?
К примеру, выводим ленту новостей и необходимо, чтобы длина заголовка не превышала 200 символов, при этом, надо чтобы слова не обрезались и в конце строки появлялись три точки.
Для этих целей используем сниппет truncate. Код сниппета:
Вызов сниппета будет таким:
Сниппет обрежет текст до определенного количества символов не обрезая слова и добавит в конце три точки.
8. В RSS ленте вместо даты публикации выводится дата создания документа, как исправить?
Придется отредактировать файл assets/snippets/ditto/formats/rss.format.inc.php
На 80 строчке есть такая запись:
Т.е. по умолчанию используется createdon. Надо заменить на pub_date, т.е.:
Ditto
Создание ленты новостей или блога, вывод каталога товаров, сортировка и т.д.
— блог
— список статей, новостей, ссылок
— архив новостей
— каталог товаров, сайтов, файлов и т.д.
— RSS, XML, JSON, ATOM данные
— много других форматов вывода, благодаря полной поддержке шаблонов
Параметры
Формат: Имя конфигурационного файла
Значение по умолчанию: default
Примечание: Файл конфигурации может включать значения различных параметров Ditto, избавляя от неудобств, связанных с ограничениями, накладываемыми MODx на значения параметров сниппетов (нельзя использовать &, `, enter> т.п.). Файлы конфигурации сохраняются в папке &ditto_base/configs/. Их имена имею формат &config.config.php
Пример:
&config=«
Формат: Время в формате UNIX timestamp из поля MODx или TV-параметра
Значение по умолчанию: createdon
Примечание: Любое значение времени в формате UNIX timestamp из поля MODx или TV-параметра, как например createdon, pub_date, or editedon.
Пример:
&dateSource=`pub_date`
Формат: 0 | 1
Значение по умолчанию: 0
Примечание: Режим отладки позволяет разобраться в сложных и непонятных ситуациях. Особенно актуальная возможндость для крупных сайтов, где множество вызовов Ditto могут конфликтовать между собой. При включенном режиме отладки помимо результатов работы выводится множество полезной для разработчика информации (все параметры, список документов результата, их ID и т.п.).
Пример:
&debug=`1`
Формат: число
Значение по умолчанию: 1
Примечание: Число уровней в глубину для поиска документов. Документы будут найдены внутри документов-контейнеров, указанных в &startID и &parents и вложенных документов-контейнеров до уровня указанного в &depth. Т.е. если этот параметр равен 1, то будут брать только непосредственно дочерние документы, указанных в &startID и &parents. Если &depth = 2, в поиск пройдет еще и в дочерних.
Пример:
&depth=`5`
Формат: путь
Значение по умолчанию: [ (base_path)]assets/snippets/ditto/
Примечание: Папка со слэшем на конце, указывающая размещение фалов Ditto на сервере. Как правило этот параметр изменять не приходится.
Пример:
&ditto_base=«
Формат: ID документов, через запятую
Значение по умолчанию: нет
Примечание: Этот параметр должен сожержать список ID’ов тех документов, которые будут отображены в результатах. Т. е. можно жестко задать список документов, которые будут отображаться.
Пример:
&documents=`1, 35, 122`
Формат: Расширения через запятую
Значение по умолчанию: нет
Примечание: Указывает Ditto, какие расширения следует загрузить. Пример расширения с комментариями (на английском) можно найти по пути:
&ditto_base/extenders/example.extender.inc.php. Все расширения находятся в папке &ditto_base/extenders/ и имена файлов имеют формат: name.extender.inc.php.
Пример:
&extenders=`summary`
Формат: html | json | xml | atom | rss
Значение по умолчанию: html
Примечание: Ditto умеет работать с различными форматами данных. Например, он может выводить RSS ленту новостей или данные в XML формате.
Пример:
&format=`rss`
Формат: Любой сивол, который не будет использоваться в правиле фильтра
Значение по умолчанию: |
Примечание: Задает значение разделителя для параметра &filter.
Пример:
&globalFilterDelimiter=«
Формат: Любое название параметра MODx или TV-параметра, перечисленные через запятую.
Значение по умолчанию: NULL
Примечание:
Пример:
&hiddenFields=«
Формат: 0 | 1
Значение по умолчанию: 0
Примечание:
Пример:
&hideFolders=`1`
Формат: 0 | 1
Значение по умолчанию: 1
Примечание:
Пример:
&hidePrivate=`0`
Формат: 0 | 1
Значение по умолчанию: 0
Примечание: Используется как или источник tagData.
Пример:
&keywords=`1`
Формат: Название языкового файла
Значение по умолчанию: english
Примечание: В языковых файлах Ditto хранятся шаблоны, используемые по-умолчанию, описания ошибок и уведомления.
Ditto сначала загружает свой стандартный языковой файл, а уже после этого тот файл, что указан в данном параметре. Таким образом, если в файле указанном пользователем нет какой-либо строки, она будет использована из стандартного файла. Примечание. Языковые файлы находятся в папке &ditto_base/lang/. Имена имею формат: &language.inc.php
Пример:
&language=`russian-UTF8`
Формат: Любой текст или название чанка
Значение по умолчанию: LANG
Примечание:
Пример:
&noResults=`Документы не найдены`
Формат: Разделенный запятыми список
Значение по умолчанию: createdon DESC
Примечание: Взамен &sortBy и &sortDir.
Пример:
&orderBy=`pagetitle ASC`
Формат: Список ID через запятую
Значение по умолчанию: Текущий документ
Примечание: Указывает Ditto список идентификаторов (id) документов-контейнеров, откуда будут браться документы для вывода Ditto. Документы беруться до глубины &depth.
Пример:
&parents=`1, 5, 8`
Формат: 0 | 1
Значение по умолчанию: 1
Примечание: В Ditto имеетвы встроенный парсер PHx. Эта опция включает / выключает его.
Пример:
&phx=`0`
Формат: 0 | 1
Значение по умолчанию: 0
Примечание: Остерегайтесь кэшированных вызовов!
Пример:
&randomize=`1`
Формат: Любое название чанка, которое используется при выводе
Значение по умолчанию: NULL
Примечание: Обычно используется для удаления комментариев
Пример:
&removeChunk=«
Формат: 0 | 1
Значение по умолчанию: 0
Примечание: Используется если глубина (&depth) больше 1
Пример:
&seeThruUnpub=`1`
Формат: число
Значение по умолчанию: 0
Примечание:
Пример:
&start=`5`
Формат: число | all
Значение по умолчанию: all
Примечание:
Пример:
&total=`10`
Формат: Любое валидное выражение MySQL WHERE
Значение по умолчанию: NULL
Примечание: Используется только для параметров документов. Не поддерживает TV-параметры.
Пример:
&where=«
Шаблоны
Формат: имя чанка | @FILE | @CODE
Значение по умолчанию: LANG
Примечание:
Любое валидное название чанка
Код через @CODE
Файл через @FILE
Пример:
&tpl=`news`
Формат: имя чанка | @FILE | @CODE
Значение по умолчанию: &tpl
Примечание:
Любое валидное название чанка
Код через @CODE
Файл через @FILE
Пример:
&tplAlt=`news_alt`
Формат: имя чанка | @FILE | @CODE
Значение по умолчанию: &tpl
Примечание:
Любое валидное название чанка
Код через @CODE
Файл через @FILE
Пример:
&tplCurrentDocument=`news_current`
Формат: имя чанка | @FILE | @CODE
Значение по умолчанию: &tpl
Примечание:
Любое валидное название чанка
Код через @CODE
Файл через @FILE
Пример:
&tplFirst=`news_first`
Формат: имя чанка | @FILE | @CODE
Значение по умолчанию: &tpl
Примечание:
Любое валидное название чанка
Код через @CODE
Файл через @FILE
Пример:
&tplLast=`news_last`
Формат: имя чанка | @FILE | @CODE
Значение по умолчанию: нет
Примечание: Доступные плейсхолдеры:
[ +ditto+] или идентичный ему [ +wrapper+]
Пример:
&outerTpl=` ul>[ +ditto+] /ul>`
Параметры пагинации
Формат: 0 | 1
Значение по умолчанию: 0
Примечание: На каждой странице выведется &show документов. Для вывода пэйджера используются глобальные плэйсхолдеры:
[ +next+] – Кнопка «Следующее»
[ +previous+] – Кнопка «Предыдущее»
[ +pages+] – Список страниц
[ +totalPages+] – Общее количество страниц
[ +start+] – Номер первой показываемой страницы
[ +stop+] – Номер последней показываемой страницы
[ +currentPage+] – Номер показываемой текущей страницы
[ +total+] – Общее количество страниц
Пример:
&paginate=`1`
Формат: символ (или строка)
Значение по умолчанию: |
Примечание: Символ для разделения Previous и Next, когда paginateAlwaysShowLinks выключен и обе ссылки есть. Предотвращает показ ссылок в виде Previous Next>, когда [ +pages+] не используется
Пример:
&paginateSplitterCharacter=«
Формат: имя чанка | @FILE | @CODE
Значение по умолчанию: span >[ +page+] /span>
Примечание:
Любое валидное название чанка
Код через @CODE
Файл через @FILE
Пример:
&tplPaginateCurrentPage=«
Формат: имя чанка | @FILE | @CODE
Значение по умолчанию: a href='[ +url+]’ >[ +lang:next+] /a>
Примечание:
Любое валидное название чанка
Код через @CODE
Файл через @FILE
Пример:
&tplPaginateNext=`newsPaginateNext`
Формат: имя чанка | @FILE | @CODE
Значение по умолчанию: a href='[ +url+]’ >[ +lang:previous+] /a>
Примечание:
Любое валидное название чанка
Код через @CODE
Файл через @FILE
Пример:
&tplPaginatePrevious=`newsPaginatePrevious`
Формат: имя чанка | @FILE | @CODE
Значение по умолчанию: span >[ +lang:next+] /span>
Примечание:
Любое валидное название чанка
Код через @CODE
Файл через @FIL
Пример:
&tplPaginateNextOff=«
Формат: имя чанка | @FILE | @CODE
Значение по умолчанию: a href='[ +url+]’>[ +page+] /a>
Примечание:
Любое валидное название чанка
Код через @CODE
Файл через @FILE
Пример:
&tplPaginatePage=«
Формат: имя чанка | @FILE | @CODE
Значение по умолчанию: span >[ +lang:previous+] /span>
Примечание:
Любое валидное название чанка
Код через @CODE
Файл через @FILE
Пример:
&tplPaginatePreviousOff=«
Параметры summary
Формат: 0 | 1
Значение по умолчанию: 1
Примечание:
Пример: &truncSplit=`0`
Формат: строка
Значение по умолчанию:
Примечание: Любой уникальный текст или код, который содержится в содержании каждого документа
Пример:
&truncAt=«
Формат: число
Значение по умолчанию: 300
Примечание: Любое число больше чем &truncOffset
Пример:
&truncLen=`800`
Формат: число
Значение по умолчанию: 30
Примечание: Любое число не превышающее &truncLen
Пример:
&truncOffset=`50`
Формат: строка
Значение по умолчанию: Read more.
Примечание: Любой текст или отрывок html-кода
Пример:
&truncText=`Читать далее. `
Формат: имя чанка | @FILE | @CODE
Значение по умолчанию: &truncText
Примечание:
Любое валидное название чанка
Код через @CODE
Файл через @FILE
Пример:
&tplTrunc=«
Параметры dateFilter
Формат: 0 | 1 | 2 | 3
Значение по умолчанию: 0
Примечание: 0,1,2,3 (выключено, текущий год, текущий месяц, сегодня)
Пример:
&dateFilterDefault=`1`
Формат: Численное значение месяца
Значение по умолчанию: нет
Примечание: Численное значение месяца
Пример:
&month=`10`
Формат: Год (2 или 4-значный)
Значение по умолчанию: нет
Примечание:
Пример:
&year=`2012`
Формат: День месяца
Значение по умолчанию: нет
Примечание:
Пример:
&day=`25`
Параметры tagging
Формат:
Значение по умолчанию:
Примечание:
Пример:
&tagDocumentID=«
Формат: Любые допустимые теги, разделенные с помощью tagDelimiter
Значение по умолчанию: нет
Примечание: Любые допустимые теги, разделенные с помощью tagDelimiter
Пример:
&tags=«
Формат: onlyAllTags | onlyTags | removeAllTags | removeTags
Значение по умолчанию: onlyTags
Примечание:
onlyAllTags показать документа, содержащие все теги из параметра tags
onlyTags показать документы, которые имеют любой из тегов tags
removeAllTags удалить документы, которые содержат все теги tags
removeTags удалить документы, которые имеют любой из тегов tags
Пример:
&tagMode=`onlyAllTags`
Формат: строка
Значение по умолчанию: пробел
Примечание: Любой символ, не содержащийся в тегах
Пример:
&tagDelimiter=`, `
Формат: строка
Значение по умолчанию: значение параметра tagDelimiter
Примечание:
Пример:
&tagDisplayDelimiter=`, `
Формат: 0 | 1
Значение по умолчанию: 1
Примечание:
Пример:
&tagSort=`0`
Формат: Поле документа или переменная шаблона
Значение по умолчанию: нет
Примечание: автоматически добавляет в пометки Extender
Пример:
&tagData=`tags`
Формат: имя чанка | @FILE | @CODE
Значение по умолчанию: нет
Примечание:
Пример:
&tplTagLinks=«
Формат: любое допустимое имя функции
Значение по умолчанию: нет
Примечание:
Пример:
&tagCallback=«
Параметры request
Формат: 0 | 1
Значение по умолчанию: 1
Примечание:
Пример:
&stripTags=`0`
Формат: Параметры Ditto через запятую
Значение по умолчанию: seeThroughtUnpub, showInMenuOnly, showPublishedOnly, debug, start, config, extenders, dittoID
Примечание:
Пример:
&bad=«
Формат: Параметры Ditto через запятую
Значение по умолчанию: Все параметры, которые не вошли в список bad
Примечание:
Пример:
&good=«
Параметры glossaryFilter
Формат: поле документа | TV-параметр
Значение по умолчанию: pagetitle
Примечание: ВАЖНО! Вам лучше избегать использования поля content, либо делать это осмотрительно
Пример:
&filterVar=«
Формат:
Значение по умолчанию:
Примечание:
Пример:
&filterBy=«
Формат: 0 | 1
Значение по умолчанию: 0
Примечание:
Пример:
&forceUTF8=`1`
Параметры search
Формат: список полей через запятую
Значение по умолчанию: content
Примечание:
Пример:
&searchFields=`content,tv1,tv2`
Формат: строка | @FILE | @CHUNK
Значение по умолчанию: пусто
Примечание: JSON строка с разделителями для списка опций.
Пример:
&searchString=`@CHUNK regexSearchChunk`
Формат: строка | @FILE | @CHUNK
Значение по умолчанию: ‘<"outer":",","inner":"=">‘
Примечание:
Пример:
&searchOptionsSeparators=«
Параметры tvFilter
Формат: TV-параметр
Значение по умолчанию: пусто
Примечание:
Пример:
&tvFilterBy=«
Плейсхолдеры
Создавая шаблон Дитто, вы указываете плэйсхолдеры там, где вы хотите увидеть свои данные. У Дитто есть свои собственные пдэйсхолдеры, плюс он поддерживает переменные (поля) используемые в каждом документе. (Примечание: если вы хотите использовать переменные (поля) документа непосредственно на странице с обычным шаблоном, вы должны использовать формат [ *alias * ])
Плейсхолдеры документа
] – Создает полный URL, основанный на ID, но не создает саму ссылку.




