Обзор фильтров для интернет-магазинов

Для MiniShop планируется сделать фильтры встроенные в него. Вопрос как и каким образом их делать? Я разбирался в фильтрах mFilter2, пробовал делать mapFilter и, сейчас, искал в интернете реализации фильтров. Насколько нашел есть 4 способа реализации фильтра. Под катом их обзор.
Александр Туниеков
18 октября 2022, 17:46
modx.pro
4
2 619
+4

Использование xpdo при вызове скрипта через cron

Здравствуйте! Возникла необходимость пробежаться по объектам в скрипте, запускаемом через cron.
Код примерно следующий:
<?php
  define('MODX_API_MODE', true);
  require_once '/var/www/site/core/config/config.inc.php';
  require_once MODX_BASE_PATH . 'index.php';

  global $modx;

  if (!$modx) echo 'failed load MODX object'; 
  else {
      $stat = $modx->getIterator('PageStatistics',array(
          'views_now:>' => 0,
      ));
      foreach($stat as $pageStat){
          $modx->log(1, $pageStat->get('user_key'));
      }
  }
Получаю ошибку на строке с foreach:
PHP Fatal error: Uncaught Error: Call to a member function prepare() on null
xPDOIterator->rewind()
Судя по всему, xpdo не понимает, что это за объект PageStatistics, тк с modResource это прекрасно работает. Как исправить ситуацию?
Giant Dad
18 октября 2022, 15:31
modx.pro
459
0

результат выполнения сниппета в параметре сниппета работает такое?

[[!msProducts? &tpl=`tovartplCat` &limit=`64` &parents=`2` &tvFilters=`[[!where]]` &includeTVs=`types,config,style,fasad` ]]
а вот сам сниппет where
<?php
$filterz = '';
if($_GET['types']) $filterz = $filterz.'types==%*'.$_GET['types'].'*%'.',';
if($_GET['config']) $filterz = $filterz.'config==%*'.$_GET['config'].'*%'.',';
if($_GET['style']) $filterz = $filterz.'style==%*'.$_GET['style'].'*%'.',';
if($_GET['fasad']) $filterz = $filterz.'fasad==%*'.$_GET['fasad'].'*%'.',';

if($filterz !=='') $filterz = substr($filterz,0,-1);


return $filterz;
так вообще работает или как то по другому надо?
Евгений
18 октября 2022, 15:17
modx.pro
420
0

pdoPage + Easycomm: вывод комментариев на 1 странице с разбивкой кнопкой показать еще

Здравствуйте, друзья!
Столкнулась с задачей вывести комментарии Easycomm на одной странице. Необходимо собрать все комментарии которые находятся под ресурсом с id 5. Комментарии оставлены к дочерним ресурсам ресурса 5. То есть, комментарии оставлены не к ресурсу с id 5, а к дочерним ресурсам родителя с id 5. Мне необх+одимо эти комментарии вывести в новом ресурсе так чтобы на странице отображались по 10 комментариев и была кнопка Показать еще. Поэтому подумала можете pdoPage сможет это сделать.
Вот какой запрос написать с pdoPage, пока не знаю. Не нашла примеры.
Кстати, в комментариях, мне необходимо также вывести pagetitle и дополнительные поля ресурсов (не комментариев). Например, tv.logo, tv.lic.

Может вы сталкивались с подобной задачей? Пожалуйста, поделитесь опытом! Спасибо!
Zulya
18 октября 2022, 07:18
modx.pro
3
723
0

Установить значение TV типа radio через сниппет

Здравствуйте!

Есть TV типа «radio» со значениями:
Да==true||Нет==false

Как через сниппет установить значение «Да» у ресурса?

Пробовал прописывать:
$page = $modx->getObject('modResource', 1);
$page->setTVValue('test', true);
Никита Боднар
17 октября 2022, 21:42
modx.pro
731
0

Как настроить gitmodx если core вынесен за пределы public_html

Всех приветствую. Подскажите как можно подружить gitmodx если core вынесен за пределы public_html.
Может кто уже сталокивался с этим. Надеюсь на вашу помощь
Yurik
17 октября 2022, 11:51
modx.pro
454
0

Custom validators FormIt

Нашел в документации FotmIt такой снипет
$value = (float)$value;
$success = $value > 1000;
if (!$success) {
    // Note how we can add an error to the field here.
    $validator->addError($key,'Not big enough!');
}
return $success;
Не особо понял где указывать свое поле и как должен выглядеть сама форма и валидатор.
Если не сложно пришлите пожалуйста небольшой пример. Заранее благодарю
vit
vit
16 октября 2022, 11:18
modx.pro
1 529
0

TinyMCE и валидация, как вылечить?

Добрый день.
Столкнулся с тем, что при проверке валидности страницы, TinyMCE обрезает исправления, которые в данный момент не проходят валидацию. Вернее это не совсем ошибки, просто закрывающий слэш тегов
<br />
и многих других сейчас не обязателен. Понимаю что это не ошибка а лишь информирование что слэш лишний, но все же — можно приучить TinyMCE к этому новому правилу? Как пример вот в этой строке надо убрать слэш в конце, но TinyMCE его упорно вставляет обратно
<img src="/controller-InteliCompact.jpg" alt="контроллер InteliCompact" width="328" height="247" />
.
Виталий
16 октября 2022, 09:08
modx.pro
1
550
0

Актуальные цены и дубли товаров в корзине minishop 2.9.3-pl

Всем привет!

Обнаружилась такая забавная проблема, возможно, она кому-то не в новинку.
При изменении цены товара, она меняется везде, кроме корзины. И клиент спокойно может заказать товар по уже неактуальной цене. И при добавлении того же товара в корзину, но с измененной ценой, он не заменяется более актуальным и не добавляется просто в количество, а добавляется, как еще один товар, отдельной строкой joxi.ru/gmvLZyoHe7BV4A.
Это происходит и в стандартном вызове корзине [[!msCart?]]
Где это исправить, кто знает, сталкивался?
kudesia
15 октября 2022, 11:43
modx.pro
582
0

импорт товаров из YML в minishop2

есть ли готовые решения для импорта выгрузки товаров YML в minishop2?
alexandr.skyrda
14 октября 2022, 17:54
modx.pro
504
0