13 февраля 2020, 11:07 Для себя сделал так: core/components/collections/processors/mgr/resource/getlist.class.php: public function prepareQueryBeforeCount(xPDOQuery $c) { $parent = $this->getProperty('parent', null); $c->where(array( 'parent' => $parent, )); $query = $this->getProperty('query', null); if (!empty($query)) { $c->leftJoin('modUserProfile', 'CreatedByProfile', array('CreatedByProfile.internalKey = modResource.createdby')); $c->leftJoin('modUser', 'CreatedBy'); if (strpos($query, '=') !== false) { $queryWhere = array( 'pagetitle:LIKE' => '%######%', ); parse_str($query, $outputTvs); foreach($outputTvs as $tvName => $tvValue) { if (is_array($tvValue)) { foreach($tvValue as $tvNameIsArray => $tvValueIsArray) { array_push($queryWhere, array( 'OR:TemplateVarResources_' . $tvName . '.value:LIKE' => '%' . $tvValueIsArray . '%', )); } } else { array_push($queryWhere, array( 'OR:TemplateVarResources_' . $tvName . '.value:LIKE' => '%' . $tvValue . '%', )); } } } else { if ($this->searchQueryTitleOnly) { $queryWhere = array( 'pagetitle:LIKE' => '%' . $query . '%', ); } else { $queryWhere = array( 'pagetitle:LIKE' => '%' . $query . '%', 'OR:description:LIKE' => '%' . $query . '%', 'OR:alias:LIKE' => '%' . $query . '%', 'OR:introtext:LIKE' => '%' . $query . '%', 'OR:CreatedByProfile.fullname:LIKE' => '%' . $query . '%', 'OR:CreatedBy.username:LIKE' => '%' . $query . '%', ); } if ($this->searchQueryExcludeTvs == false) { // tv columns search rules foreach ($this->tvColumns as $column) { array_push($queryWhere, array( 'OR:TemplateVarResources_' . $column['column'] . '.value:LIKE' => '%' . $query . '%', )); } } if ($this->searchQueryExcludeTagger == false) { if ($this->useTagger) { $c->leftJoin('TaggerTagResource', 'TagResource', array('TagResource.resource = modResource.id')); $c->leftJoin('TaggerTag', 'Tag', array('Tag.id = TagResource.tag')); array_push($queryWhere, array( 'OR:Tag.tag:LIKE' => '%' . $query . '%', )); } } } $c->where($queryWhere); } $filter = $this->getProperty('filter', ''); switch ($filter) { case 'published': $c->where(array( 'published' => 1, 'deleted' => 0, )); break; case 'unpublished': $c->where(array( 'published' => 0, 'deleted' => 0, )); break; case 'deleted': $c->where(array( 'deleted' => 1, )); break; default: $c->where(array( 'deleted' => 0, )); break; } $c->where(array( 'class_key:!=' => 'CollectionContainer', // "NOT EXISTS (SELECT 1 FROM {$this->modx->getTableName('modResource')} r WHERE r.parent = modResource.id)" )); foreach ($this->tvColumns as $column) { $c->leftJoin('modTemplateVarResource', '`TemplateVarResources_' . $column['column'] . '`', '`TemplateVarResources_' . $column['column'] . '`.`contentid` = modResource.id AND `TemplateVarResources_' . $column['column'] . '`.`tmplvarid` = ' . $column['id']); } return $c; }Соответственно в после поиск теперь пишем (пример): tv_prm_category_food[]=Шашлыки&tv_prm_category_food[]=Десерты… Происходит фильтрация по нескольким значениям, можно фильтровать как разные tv так и единые. Также можете в assets/components/collections/css/mgr.css по селектору ".ext-strict #collections-child-search" … сделать себе ширину поля поиска пошире, чтобы можно было удобно и много писать. А также если пишите запрос без подстроки "=", то фильтрация происходит среди «всего» — как и раньше. ДесертыВуаля… Может кому пригодится… Вопросы / Collections: фильтрация ресурсов в админке по tv 2 0
07 февраля 2020, 15:48 Подниму тему, реально ли в этом компоненте сделать фильтрацию по tv? Куда копать хоть подскажите… Знающие люди… Вопросы / Collections: фильтрация ресурсов в админке по tv 2 0
11 января 2020, 13:03 Да, ты прав. Решил не заниматься херней. Всем добра. Для разработчиков / Обратная линия: Обновление компонентов MODX Revolution 3.0.0-alpha2 66 +1
03 января 2020, 10:32 Точнее сайт уже написан на Laravel + Voyager, но если MODX вдруг оживает, то почему бы и нет, очень отличная CMS. Вопрос выше актуален. Для разработчиков / Обратная линия: Обновление компонентов MODX Revolution 3.0.0-alpha2 66 0
03 января 2020, 10:20 У меня вопрос. Мне нужно прямо сейчас начинать писать сайт на MODX. Какую версию лучше выбрать? 2.7 или 3.0 альфа? Сайт не маленький, буду долго поддерживать. И соответственно когда выйдет релиз 3.0 буду апдейтить сайт. Вопрос важный. Для разработчиков / Обратная линия: Обновление компонентов MODX Revolution 3.0.0-alpha2 66 0
Возможно ли реализовать возможность предоплаты за доставку на сайте? Так ради этого мне и нужно это все, чтобы клиент платил сразу при оформлении заказа, чтобы избавить себя от мусорных заявок (когда человек оставляет заявку, а предоплату делать не ...
Редизайн сообщества На больших экранах основной текст статьи я бы сделал 18 px. Да и текст комментариев можно таким сделать. Для меня лично 16 — мелковато на больших экранах (в комментариях вообще 15 ...
MiniShop3 1.11.0 при клике на radio идет пересчет итоговой суммы в orderUI, в зависимости от способов(оплаты доставки) я так поняла. попробуй код запуска события поставить ниже чем orderUI, после
ImageOptimizer - WebP/AVIF и responsive <picture> для MODX 3 Дополнение доступно modstore.pro/packages/photos-and-files/imageoptimizer
Localizator3 для MODX 3: перевод полей и TV без отдельного context на язык, Vue 3 + PrimeV... Добавил localizator3_default_language
msInShopNotify Начиная с версии 3.0.0-beta добавлена поддержка MiniShop3 Минимальные требования: PHP 8.4 MODX 3.2 MiniShop3
MaxNotify Обновление 1.2.0-pl (03.07.2026) — добавлены уведомления о заявках FormIt через hook-сниппет `maxNotifyFormIt`; — добавлены уведомления о заявках SendIt через hook-...
[msBonus2] 1.3.0 Бонус-коды, уведомления о сгорании и совместимость с msMultiCurre... Да, планируется. Даже чуть больше, чем просто бонусная система)
core/components/collections/processors/mgr/resource/getlist.class.php:
Соответственно в после поиск теперь пишем (пример):
… Происходит фильтрация по нескольким значениям, можно фильтровать как разные tv так и единые.
Также можете в
assets/components/collections/css/mgr.css по селектору ".ext-strict #collections-child-search"
… сделать себе ширину поля поиска пошире, чтобы можно было удобно и много писать.
А также если пишите запрос без подстроки "=", то фильтрация происходит среди «всего» — как и раньше.
Вуаля… Может кому пригодится…