Вопросы

Minishop2, mFilter2 вывод товаров по возрастанию цены, пустые и 0 в конце

Здравствуйте!
Столкнулся с такой задачей. Есть товары и их вывод через mFilter2, т/к там фильтрация еще нужна.
И есть товары у которых цена 0, так вот хочется, чтобы товары выводились по возрастанию цены, но при этом товары с пустой ценой или 0 выводились в самом конце?
Если бы без фильтра я бы мог просто 2 раза вызвать вывод товаров, в одном товары с сортировкой по возрастанию цены, но без товаров с ценой 0 или пустой. А уже вторым вызовом выводить пустые товары. Но тут все связано с фильтром и что-то понятия не имею как это можно сделать?

Кто-то сталкивался? подскажите пожалуйста
Роман
31 октября 2018, 11:55
modx.pro
2 855
0

Гугл ругается на долгую загрузу сайта

Добрый день! Сайт на MODX Revolution 2.6.5-pl, miniShop2 — 2.4.14-pl. Столкнулись с такой ситуацией, гугл пишет, что сайт долго грузится и соответственно снижает рейтинг сайта. В качестве решения предлагает уменьшить JS-файлы, CSS-файлы, HTML-файлы на сайте.
В качестве решения этой проблемы нашел вот это для JS-файлов: developers.google.com/closure/compiler
и вот это для CSS-файлов: csscompressor.com/

пишут, что абсолютно безопасно, уменьшает объем файлов без потери функционала.
Кто нибудь с таким сталкивался, а то уж больно страшно пробовать на рабочем сайте.
Алексей
31 октября 2018, 11:33
modx.pro
1 257
0

pdoresources sort random в

Добрый день коллеги.

Вопрос в следующем мне нужна рандомная сортировка, но так чтобы при переходи по пагинации сортирока повторно не перемешивалась, а пагинация обрабатывалась всё таки в пределах сделанной рандомной сортировки?

в случае если mfilter не дал результатов на основную выборку… возможно при пагинации происходит повторное обращение к mfilter и после него отдельный вызов…

&cache использовал, но всё равно результаты перемешиваются.

возможно затык в самом вызове — я вызываю следующий код

{$_modx->runSnippet('pdoPage', [
          'element' => 'msProducts',
          'parents'=>$id,
          'limit' => '12',
          'includeThumbs' => 'medium',
          'includeTVs'=>'marka,model,year',
          'sortby'=>'RAND()',
          'where' =>
          ['marka:LIKE' =>'%Универсальный%',
		'AND:model:LIKE' =>'%Универсальный%',
				'AND:year:LIKE' =>'%Универсальный%'],
          'showLog' => 0,
          'ajaxMode' => 'default',
        ])}
Илья
30 октября 2018, 15:56
modx.pro
4 360
0

mFilter2: как вывести фильтр с пустым значением TV?

Всем привет!

Друзья, подскажите, пожалуйста решение задачи: создал свой фильтр для вывода товаров (обычные страницы с TV), который переключает дорогие либо дешевые товары (дороже 340000 или дешевле). За основу брал метод boolean. Как сделать, чтобы и в случае дешевых и в случае дорогих товаров выводились так же товары без цены?
<?php
class myCustomFilter extends mse2FiltersHandler {

  public function buildClassFilter(array $values) {
    if (count($values) < 2 && empty($this->config['showEmptyFilters'])) {
      return array();
    }

    $results = array();
    $this->modx->lexicon->load('aveo:default');

    foreach ($values as $value => $ids) {
      $chip = empty($value) || (is_numeric($value) && (int)$value <= 340000);
      $title = $chip
      ? $this->modx->lexicon('affordable')
      : $this->modx->lexicon('elite');

      if (!isset($results[$value])) {
        $results[$value] = array(
          'title' => $title,
          'value' => (int)!$chip,
          'type' => 'class',
          'resources' => array()
        );
      }

      foreach ($ids as $id) {
        $results[$value]['resources'][] = $id;
      }
    }

    ksort($results);

    return $results;
  }

  public function filterClass(array $requested, array $values, array $ids) {
    $matched = array();
    $value = $requested[0];
    $tmp = array_flip($ids);

    foreach ($requested as $value) {
      foreach ($values as $k => $resources) {
        $chip = empty($k) || (is_numeric($k) && (int)$k <= 340000);

        if ((empty($value) && !$chip) || (!empty($value) && $chip)) {
          continue;
        }

        foreach ($resources as $id) {
          if (isset($tmp[$id])) {
            $matched[] = $id;
          }
        }
      }
    }

    return $matched;
  }
}
Заранее благодарен за ваши ответы.
Евгений
30 октября 2018, 12:44
modx.pro
1 092
0

SimpleSearch и стрелки в постраничной навигации.

Прошу помощи с возникшей проблемой.
Настраиваю поиск с помощью SimpleSearch и в пагинации надо кроме ссылок на страницы надо добавить стрелки вперед и назад. В pdoPage это делается указанием нужных чанков в параметрах &tplPagePrev и &tplPageNext. Можно ли что-то подобное сделать и в SimpleSearch?
Можно стрелки эти добавить и в чанке — обертке результатов поиска (&containerTpl), но я не разберусь как правильно указать тогда ссылки на требуемые страницы.
Заранее благодарен за помощь.
Игорь
30 октября 2018, 12:19
modx.pro
1 958
0

Ошибка при обновлении на 2.6.0 и выше

Большая просьба, помогите найти решение возникшей проблеме. Давно не могу обновиться с 2.5.7 до 2.6.0 и выше.
Пробовала через компонент Ильи обновляться, вручную, сразу через несколько версий и по очереди. На 2.5.8 обновляюсь, а дальше всё! Сам сайт работает как надо, а при заходе в админку вылетает ошибка:
Fatal error: Uncaught --> Smarty Compiler: Syntax error in template «eval:<a hre...» on line 102 "'success': {fn:function() { location.href = './'; },scope:this}," — Unexpected ":", expected one of: "}" < — thrown in ..\modx\core\model\smarty\sysplugins\smarty_internal_templatecompilerbase.php on line 102
на данный момент пробую локально на openserver, на хостинге тоже шло с ошибками, поэтому решила довести обновление хотя бы локально.
Tanya
30 октября 2018, 11:34
modx.pro
1 340
0

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

Добрый день, подскажите, пожалуйста, как использовать результат работы сниппета в чанке. Поясню. Сниппет [[!snippet]] выводит в результате true или false, как я могу использовать эти значения в чанке? Знаю про сниппет If, но там что-то неясно про использование других сниппетов в качестве условия
[[!If? &subject=`[[!snippet]]` &operator=`is` &operand=`true` &then=`You have more than 3 items!`]] — как-то так?
Алексей
30 октября 2018, 11:00
modx.pro
1 155
0

Ошибка в файле кеша.

Доброго времени всем!
При работе на open server стала часто возникать ошибка:
«Parse error: syntax error, unexpected '<', expecting end of file in D:\OSPanel\domains\ortonozhka.modx\core\cache\includes\elements\modplugin\1.include.cache.php on line 34»

В этом файле дублируется весь код — и, соответственно, на строчке 34 повторно открывается тег <?php.

Гугл подсказал, что это кеш плагина pdoTools.
Версия CMS 2.6.5 — установленная с нуля (не обновленная с ранних версий), все компоненты обновлены.

Такая ошибка возникала и на open server и на xampp. Ставил их (локальные сервера) и на диск С (с системой (ssd)) и на диск D (другой винт физически). Тестировал и на windows 8.1 и 10 (лицензии, все обновления). Комп i5/16Gb озу.
Стоит антивирус DrWeb Security. Отключал его — нет эффекта.
Выбирал в настройках open server разные версии PHP — нет эффекта.

Если отключить этот плагин (pdoTools) — то вроде как ошибки нет (его не кеширует то тогда). (это для локального сервера).
Если сайт выгрузить на хостинг (тестировался Beget) — то ошибки нет (плагин не отключал).

Что делать? Как заставить работать на локальном сервере без ошибки? (простите за сумбурное описание)
Александр
30 октября 2018, 08:59
modx.pro
3 618
0

Как загрузить превьюшки в msGallery через API или на прямую в БД?

Всем привет. Доделываю парсер, который синхронизирует мой каталог в miniShop2 с базой сайта партнера по API, возникла трудность с загрузкой изображений на сервер и в базу msGallery. Как я понял, там создаётся 2 записи с оригинальным изображением и превью, а также не до конца понимаю как генерируются названия у папок. Есть ли готовые решения для загрузки изображения через скрипт? Я где-то видел, а где не помню уже.
SEQUEL.ONE
30 октября 2018, 03:27
modx.pro
1 575
0

Счетчик вложенности

Появилась задача: реализовать хлебные крошки с микроразметкой, взял за основу pdoCrumbs, всё хорошо, но в микроразметке используется content=«n+1», т.е. разметка вида Главная-Продукты-Продукт content будет 1, 2, 3 соответственно.
Как можно правильно реализовать данный функционал счетчика при вызове сниппета pdoCrumbs? Не хочется городить кучу условий, хочу узнать совета как это реализовать правильно. Спасибо.
Fiesto
29 октября 2018, 19:38
modx.pro
1 193
0