Документация DocLister

Пришла пора исправить положение с документацией к DocLister'у — блог автора закрылся, посылать читать документацию стало некуда. Что-то, конечно, осталось в кэше гугла и закромах Wayback Machine, но удобство пользования там никакое.

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

Если есть какие-то замечания по документации, то пишите в комментариях, а еще лучше отправляйте правки сразу в docs (:

P.S. Делать документацию даже к своим дополнениям — дело унылое, что говорить про не свои, так что не откажусь от пива — R189925059228 ((:

Спасибо за поддержку: Agel_Nash , Fess .

23 комментария

avatar
Обновил документацию:
docs.evolution-cms.com/Extras/Snippets/DocLister

p.s. Все кто желает может помочь с документацией. Много времени и знаний для этого не надо и можно совместно сделать самую полную документацию по EVO в 1-м месте:)
avatar
Как минимум можно привести уже добавленную информацию в человеческий вид — заголовки, абзацы расставить и т.п. Для этого даже не нужно вникать в гит, прямо в в браузере все делается.
avatar
Добрый день.
Неожиданно столкнулся с таким казалось бы простым вопросом и не нашел нужных параметров.

Суть в следующем.
1. DocLister — вывод из своей таблицы.
2. Нужно выводить не все, а какое-то максимальное число, например 200.
3. Эти 200 должны выводиться не скопом, а с пагинацинй — по 50 на страницу.
т.е. в идеале должно быть что-то типа

[!DocLister? ... &display=`50` &paginate=`pages` &limit=`200` ... !]
[+pages+]

и вот такого параметра как limit не нашел. Есть queryLimit и total, но они в этом деле не помогли.

Подскажите, как быть в таком случае?

Спасибо.
  • paic
  • 0
avatar
Честно говоря с таким кейсом не сталкивался еще. Создайте Issue на GitHub. Как появится время — гляну. До этого времени вы можете создать свой контроллер на базе onetable и подменить запрос тут github.com/AgelxNash/DocLister/blob/master/assets/snippets/DocLister/core/controller/onetable.php#L328
avatar
Спасибо за оперативный ответ!

Это вывод личных сообщений в личном кабинете — ограничение, дабы понуждать веб-пользователей удалять ненужные личные сообщения чтобы не перегружалась база (не откроешь и не прочитаешь новое личное сообщение, если оно уже 201-е). А вообще — на каждом форуме такое есть. А вот у MODx с личным кабинетом как-то не густо, а что и есть — безнадежно обветшало (:
avatar
Я бы этот кейс решал не так радикально. Выводил бы в списке сообщение, но не показывал ссылку для перехода, тему и отправителя. С prepare это решается легко.
avatar
можно и так, но к меня с prepare еще хуже, чем у доклистера с limit (:
avatar
Тут может пригодиться трюк с подменой шаблона:

<?php
$_DocLister->renderTPL = $_DocLister->getCFGDef('tpl'.$data['dl.iteration'],$_DocLister->getCFGDef('tpl'));
return $data;
?>

Здесь мне нужно было, чтобы первые два элемента выводились со специальными шаблонами (в параметрах они задаются как tpl1 и tpl2).
avatar
Какая простая идея!
Без всякой высшей математики, можно даже через if сделать))
Спасибо.

P.S. Но issue я все же написал.
avatar
это, и многое другое, мне еще разбираться и разбираться))
Спасибо
avatar
Это не подходит:
$iterationName = ($i % 2 == 0) ? 'Odd' : 'Even';
avatar
Тогда строчкой выше
$this->renderTPL = $this->getCFGDef('tplId' . $i, $this->renderTPL);
avatar
Да, подходит, но я что-то думал, что это шаблон по id документа, удивился еще, где такое можно применить. Лучше было бы назвать как-нибудь вроде tplN (:
avatar
поэкспериментировал пока без prepare, через if. Вот так работает — полная замена кода в чанке

[!if? &is=`[+count+]:gt:200` &then=`код без ссылок` &else=`штатный код`!]

Вот так (убрать ссылки только с переполняющих сообщений) — не работает
[!if? &is=`[+dl.iteration+]:gt:200` &then=`код без ссылок` &else=`штатный код с ссылками`!]

потому что эти 200 сообщений выводятся с пагинацией, а [+dl.iteration+] начинает новый отсчет на каждой странице, т.е. 201-е сообщение будет иметь [+dl.iteration+] = 1 на первой странице (при DESC) или на последней (при ASC).
avatar
Есть еще [+dl.full_iteration+].
avatar
Спасибо. Но разницы не заметил — работает так же. Разница, скорее всего есть, и у DL много чего еще хорошего есть. Жаль только почитать негде.
avatar
Подскажите пожалуйста, как можно заполучить ссылки на первую и последнюю страницы в пагинации?
avatar
Не предусмотрено такое, добавлю сегодня.
avatar
Обновляйте DocLister. Для шаблонизации доступны параметры TplFirstP, TplFirstI, TplLastP, TplLastI.
avatar
Спасибо, большое!
avatar
[+full_iteration+] — не выводит порядковый номер
avatar
[+dl.full_iteration+]
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.