Параметры Collections в pdoResources
Всем привет, возник вопрос как можно использовать параметры коллекции, задаваемые в админке при вызове сниппета pdoResorces, который собственно выводит элементы коллекции?
Интересуют следующие параметры:
1)Поле сортировки
2)Направление сортировки
3)Размер страницы (Не знаю почему так назвали — это количество элементов на странице)
Хотелось бы что бы это выглядело как нибудь так:
Интересуют следующие параметры:
1)Поле сортировки
2)Направление сортировки
3)Размер страницы (Не знаю почему так назвали — это количество элементов на странице)
Хотелось бы что бы это выглядело как нибудь так:
{'pdoResources'|snippet:[
'parents'=>$_modx->resource.id,
'limit'=>$collection_limit, // Сюда параметр - Размер страницы
'sortdir'=>$collection_dir, // Сюда параметр - Направление сортировки
'sortby'=>$collection_field, //Сюда параметр - Поле сортировки
'tpl'=>'@FILE chunks/mktu/d_mktu_item.tpl'
]}
Комментарии: 8
Ты хочешь для каждой коллекции разные параметры limit, sortdir,sortby?
Я просто пытаюсь сориентироваться что нужно)
Я просто пытаюсь сориентироваться что нужно)
Разумеется) Для этого в компоненте и сделаны — Виды коллекций, где каждую можно настроить по-своему.
Например для блога, одни настройки сортировки и количества на странице, а для другого раздела другие настройки.
Например для блога, одни настройки сортировки и количества на странице, а для другого раздела другие настройки.
Так а если TV параметры создать для коллекций, например tv_limit, tv_sortdir, tv_sortby
И выводить соответственно
И выводить соответственно
{'pdoResources'|snippet:[
'parents'=>$_modx->resource.id,
'limit'=>$_modx->resource.tv_limit, // Сюда параметр - Размер страницы
'sortdir'=>$_modx->resource.tv_sortdir, // Сюда параметр - Направление сортировки
'sortby'=>$_modx->resource.tv_sortby, //Сюда параметр - Поле сортировки
'tpl'=>'@FILE chunks/mktu/d_mktu_item.tpl'
]}
Не знаком с Collection, но почему бы не вариант?)
Да как вариант это конечно подойдёт, но какой смысл в двух местах в админке указывать одно и тоже?
Задача тем и сложна, что бы в одном месте в админке настроил параметры для каждой коллекции и потом их в любых местах подставляешь. А так придётся ещё и дублировать эти параметры в тв-поля…
Задача тем и сложна, что бы в одном месте в админке настроил параметры для каждой коллекции и потом их в любых местах подставляешь. А так придётся ещё и дублировать эти параметры в тв-поля…
Так в тв же есть значение по умолчанию)
Collection хранит данные настройки в таблице modx_collection_templates.
Соответственно, можно их оттуда вытащить. Например, Rowboat:
В чанке используйте поля:
Соответственно, можно их оттуда вытащить. Например, Rowboat:
[[Rowboat?
&table=`modx_collection_templates`
&where=`{"id":"1"}`
&tpl=`tpl`
]]
В чанке используйте поля:
[[+sort_field]]
[[+sort_dir]]
[[+page_size]]
Вдогонку ))
Сниппет getColl:
Вызовы:
Сниппет getColl:
<?php
$modx->addPackage('collections', $modx->getOption('core_path').'components/collections/model/');
$coll = $modx->getObject('CollectionTemplate', $id);
if(!$coll || !$field) return;
return $coll->$field;
Вызовы:
[[getColl? &id=`1` &field=`sort_field`]]
[[getColl? &id=`1` &field=`sort_dir`]]
[[getColl? &id=`1` &field=`page_size`]]
Павел, спасибо большое, за идею — это то, что нужно!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.