Collection - решение для вывода дочерних документов в табличном виде с расширенными возможностями

Модуль и плагин для вывода дочерних документов на основе DocLister,modResource и webix.
Возможности:
  • Фильтрация
  • Пагинация
  • Массовые действия
  • Создания документов
  • Удобная кастомизация


Ссылка на репозиторий репозиторий
Ссылка на видео

P.S. Также спасибо пользователю 2frags за помощь в стилизации модуля
Если кому понравилось можете скинуть донат на пивко ЯД 410013821639664

Так как нет времени отвечать на вопросы тут кому нужна помощь по модулю писать в чат t.me/joinchat/EV3JWhQfKDWSoKCQdtC5fw
  • avatar
  • 12
  • +6
  • 7340

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

avatar
liberpro как-то делал evoCollection, но раз появилось это решение, то значит он видимо не доделал. Или здесь другая «фишка»?
avatar
Да, видимо не доделал — пулл-реквесты с марта 2018 не закрыты.

В Collection удобная фильтрация и сортировка по текстовым и булевым полям.

Для тех, кто использует ManagerManager есть готовый вывод в табе.
Чтобы вывести его в табе TemplatesEdit3 написал плагинчик.
Сейчас модуль тестируется в боевом режиме на новостном сайте 4-мя редакторами.
Полет нормальный.
В общем настоятельно рекомендую )
Комментарий отредактирован 2019-09-16 08:06:43 пользователем 2frags
avatar
В конечной версии не нужно писать директиву в mm_rules, плагин сам создаст вкладку
avatar
Ага, понял, спасибо. Увидел также, что кастомизация делается через контроллеры. На ветке 1.4.xx работает?
avatar
Да в первую очередь делалось под evo 1.4.9. Контроллеры дают почти полную свободу, картинку товара можна брать из обычного тв поля, multitv, simplegallery. Можна свои поля добавлять, так как параметры поля, это по факту параметры webix и т.д.
avatar
Добавь плз в Extras
avatar
А скиньте плз решения по добавлению в TemplateEdit автору что б добавить ибо нужный функционал
avatar
Modx 1.4.9. Прописываю конфигурацию в плагине. Ничего не происходит (
avatar
Ну сложно сказать без конкретики, напишите в телеграм @dzhuryn
avatar
Спасибо за мою невнимательность )
avatar
А если нужен тип поля select, как быть? Сделал тип поля чекбокс, но почему-то у некоторых ресурсов не стоит отмеченным, хотя он должен быть.
avatar
В текущей версии готового нету, если знаеш webix сделать не сложно. Постараюсь выпустить 0.2 там добавить пример для превю из multitv и select и еще пару мелочей
avatar
А можно сделать что бы новый ресурс создавался не в конце списка на последней странице а в начале?
  • makzz
  • 0
avatar
Можно добавить drag-and-drop, чтобы можно было ресурсы менять местами. Как прописать конфиги, если я хочу спрятать дочерние ресурсы у папок с разными шаблонами или id?
avatar
Добавил еще один контроллер в конфиг
{
	"news":{"parent":"","template":"21","id":""},
	"property":{"parent":"","template":"7","id":""}
}

После этого в Коллекции все поля сбросились под базовый класс (Id, title, edit, published)
avatar
А как быть с многоязычными сайтами? Было бы отлично адаптировать под bLang и ему подобным.
avatar
А что от collections нужно стосовно bLang?
avatar
Сделать кнопку — переход на языковые версии. Напротив каждого ресурса — языки. Если создается новый ресурс, появляются кнопки создать для языков. Это одна из возможностей. Можно еще подумать и над другими идеями.
avatar
И еще только заметил, что если у меня есть категории и для них я сделал, чтобы коллекция открывалась сразу при клике на другую категорию она не открывается. Нужно закрыть категорию с коллекцией и только потом открыть вторую. Хочется, чтобы открывались все категории во вкладках с коллекцией по-умолчанию.
avatar
Учту в следующей версии спасибо
avatar
Не понял, как поменять размер и опции обрезки превью картинки. Очень мелкое. width меняет только столбец
Ну и настройка в файле, оххх, как неудобно, но в-принципе, понятно

В конце контроллера редактируется какой-то не тот тамбнейл, видимо
Комментарий отредактирован 2019-09-30 11:16:22 пользователем alexbeep
avatar
Поменял размер в BaseController
avatar
Учту в следующей версии и вынесу в доп поле
avatar
Ну что, товарищи! Предлагаю финансово поддержать разработчика сего модуля, так как модуль очень полезный оказался. К тому же появится резон развивать данный модуль в лучшую сторону.
avatar
Подскажите пожалуйста.
Как можно вывести общее количество всех документов?


Как отобразить в столбце, данные из editedon в формате m.d.Y
Комментарий отредактирован 2019-10-09 19:17:25 пользователем om1
  • om1
  • 0
avatar
Как можно вывести общее количество всех документов?
Добавить в шаблон пагера переменную #count#, вроде.
Т.е. вот в такой конструкции должно получиться так
'template'=>'{common.first()} {common.pages()}  {common.last()} #count#'
avatar
#limit# — количество страниц
#count# — количество записей
Комментарий отредактирован 2019-10-10 07:50:44 пользователем webber
avatar
Спасибо, сработало. ;)
avatar
ляеш функцию

protected function getSelectFields()
{
$selectFields = [
'id','pagetitle','published','deleted','editedon'
];

foreach ($this->fields as $fieldName => $options) {
if($this->isDefaultField($fieldName) && !in_array($fieldName,$selectFields)){
$selectFields[] = $fieldName;
}
}

//добавляем c.
foreach ($selectFields as $key => $field) {
$selectFields[$key] = 'c.'.$field;
}
return implode(',',$selectFields);
}

в prepareData пишеш
$data['show_editedon'] = date('d-m-Y',$data['editedon']);

оздаеш поле с именем
show_editedon только смотри чтоб небыло такого tv поля
avatar
Спасибо!
avatar
А как можно вывести нумерацию для строк в таблице?
  • om1
  • 0
avatar
1. В своем контроллере создаем поле
prodected $iteration;
2.в конструкторе если этой первая страница ставш
$this->iteration=1; если вторая и так дале
умножаеш страницу на количество документов +1
3. В prepareData пишем
$data['iteration'] = $this->iteration;
$this->iteration++;

4. Создаем поле из название iteration
avatar
Спасибо!
avatar
webix вроде платный фреймворк или у него есть бесплатный/свободный вариант?
avatar
вопрос снят. Webix Standard — это бесплатная версия библиотеки для разработки проектов по лицензии GNU GPLv3.
avatar
а еще можна поступить и втихаря спиздить pro версию, уж очень мне нравится
date range selector
avatar
Если модуль ставить из Extras то у плагина по умолчанию (collections) в JSON массиве свойств ошибка. Соответственно вкладка Когфигурация плагина не подхватывается. В 6-ой строке JSON массиве свойств меняем
"value": 3,
на
"value": "3",
Комментарий отредактирован 2019-12-03 05:02:29 пользователем ikarushka
avatar
На EVO 2 сборка пакета Collection при установки из Extras не заработала. При установки вручную с github.com/dzhuryn/collection — все работает.
avatar
Подскажите плз, как Collection подружить с TemplateEdit?
avatar
Вопрос снят. С TemplateEdit работает, надо было отключить глобальные вкладки
avatar
А можно ли для поля например price задать проверку на число. У меня TV — price тип number если заполнять стандартно то проверяет, а если через Collection не проверяет.
avatar
НЕ могу понять в чём дело — не работает пагинация и собственно $display именно в плагине (даже в Base). В модуле всё отлично работает. Кто-то сталкивался?
avatar
От части разобрался: пагинация выводится в html, но стили стоят:
<div class="webix_view webix_pager" view_id="$pager1" style="width: 0px; height: 30px;">...

т.е. с нулевой шириной. И так опять же только в плагине. Временно решил просто JS выставлять свою ширину в конце выполнения скрипта…
avatar
Возможно как то подружить с 3 версией? modResource deprecated
Комментарий отредактирован 2021-08-03 20:04:46 пользователем nohc
  • nohc
  • 0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.