MiniShop3 для MODX3. Что нового.

Всем привет. Продолжаю разработку компонента, а заодно рассказываю — что нового.

Если прошлые месяцы основное внимание было уделено админке и администрированию, то в августе фокус внимания сместился на фронт.

Начал с того, что переделал сниппет msProducts. Подробности ниже.
Николай Савин
05 сентября 2023, 12:03
modx.pro
934
+21

Как Увеличить скорость работы сайта

Всем доброго времени суток. Очень надеюсь на помощь людей которые занимались оптимизацией скорости работы сайта на modx.

Что имеем.
MODX Revolution 2.8.5
Minishop2 последняя версия

Фильтрация работает через mfilter2

Имеет категория товаров на ней с помощью плагина debugparser смотрим скорость отдачи страницы
333
Другая категория выглядит вот так
234

Все перевел на fenom и на файлы. Но скорость все равно оставляет желать лучше.

Товаров всего около 7к на двух языках.

Подскажите что можно сделать для увеличения скорости работы сайта. Спасибо.
Maks
05 сентября 2023, 06:02
modx.pro
529
0

Подскажите как брать ошибку!? PHP warning: Invalid argument supplied for foreach()

Добрый вечер!

Пытаюсь спарсить XML фаил с помощью catalogfill вроде в логах показывает массив но не добавляет их в TV:

[0] => Array
(
[] => Array
(
[0] => true
[1] => opt.globusceramica.ru/catalog/grespania/alabaster/13/
[2] => 3790
[3] => RUR
[4] => 96
[5] => 45x120
[6] => Глянцевая
[7] => Мрамор
[8] => Бежевый
[9] => 45
[10] => м2
[11] => 5830
)

[tv1] => opt.globusceramica.ru/upload/iblock/cd3/1ntxgpep3rui5c6xajqg8f14clrrltqw.jpg
[pagetitle] => ALABASTER ALABASTER BEIGE 45х120
)

Кусок из XML фаила именно параметры с названием не хочет
<param name="Размер"45x120</param>
Кусок из XML
<offer id="14" available="true">
     <currencyId>RUR</currencyId>
     <categoryId>96</categoryId>
     <picture>http://opt.globusceramica.ru/upload/iblock/ef2/c26wewu3mp4gqubj539u1n5i7s304o4u.jpg</picture>
     <name>ALABASTER ALABASTER TEBAS 45х120</name>
     <param name="Размер">45x120</param>
     <param name="Поверхность">Глянцевая</param>
     <param name="Рисунок">Мрамор</param>
     <param name="Color">Бежевый</param>
     <param name="РРЦ">9999</param>
 </offer>

Ошибку выдает в этом месте foreach($node as $k => $v) {:

* Переводит XML объект в массив, сохраняет значения и их xpath
     * 
     */
    public function parceXML($xmlObject, $out=array(), $level=0){
        
        //foreach($xmlObject->attributes() as $a => $b) {
        //    echo $a,'="',$b,"\"\n";
        //}
        
        foreach ((array) $xmlObject as $key => $node){
            
            //Атрибуты элемента
            if($key=='@attributes'){
                foreach($node as $k => $v) {
                    $this->keys[1][] = '@attributes.'.$k;
                    $this->values[] = trim($v);
                }
                continue;
            }
            
            if(is_object($node) || is_array($node)){
                
                //var_dump(count($this->keys[0]),$level,$key,implode('/',$this->keys[0]));
                //var_dump(implode('/',$this->keys[0])); echo "\n\n";
                
                //убираем с конца массива ключей значения, которые не соответствуют текущему уровню вложенности
                if(/*$level > 0 && */count($this->keys[0]) > $level){
                    $this->keys[0] = $this->array_mpop($this->keys[0],(count($this->keys[0]) - $level));
                }else{
                    $level = count($this->keys[0]);
                }
                if(!is_numeric($key)) $this->keys[0][] = trim($key);
                
                $out[$key] = $this->parceXML($node,$out,$level+1);
                
            }else{
                $this->keys[1][] = implode('/',array_merge($this->keys[0],array($key)));
                $this->values[] = trim($node);
                $out[$key] = trim($node);
            }
        }
        
        return $out;
    }
Подскажите где исправить!?
Дмитрий
04 сентября 2023, 18:47
modx.pro
704
0

Как написать условие if на множество ресурсов и родителей на Fenom

Всех приветствую, есть поле артикул, которое не нужно выводить у ряда категорий, на данный момент условие реализовано следующим образом:
{set $key = ["31","32" ,"32" ,"33" ,"34"]}
{if $_modx->resource.id in list $key}
<div class="reward"><span>Артикул:</span> <span class="item">[[+article]]</span></div>
{/if}
То есть главный родитель 31, а остальные — его подкаталоги. Но если подкаталоги добавляются, что бы не лезть в шаблон, можно ли как то сделать что бы у всех подкаталогов родителя 31 скрывался артикул?
Константин
04 сентября 2023, 11:49
modx.pro
1
1 064
0

Проблемы с ajax пагинацией в pdoPage

Включаю ajax пагинацию при скроле и вижу эффект такой, что как бы элементы на странице обновляются, но новые элементы не появляются, показываются только те же.
Я включил:
pdoPage.callbacks.after = function (config, response) {
  console.log('Конфиг после загрузки!', config);
  console.log('Ответ от сервера!', response);
}
Вижу, что ответ от сервера корректный, т.е. получаю новые элементы, но на странице их не вижу. Пробовал менять со скрола на кнопку — эффект тот же.

Помогите, куда смотреть.
Алексей
03 сентября 2023, 20:25
modx.pro
367
0

Контент основного языка в Localizator

Приветствую!

Настраиваю плагины Localizator, делаю основной язык Русский и дополнительных 2, затем у ресурсов заполняю на основном языке стандартные поля, а во вкладке Локализации перевод для других двух.

В шаблоне приходится вначале делать проверку на основной язык и выводит поля либо стандартными методами для основного либо способами автора для дополнительных языков.

Подскажите кто разобрался в плагине правильно ли я делаю или есть способ без проверки на основной язык?
Konstantin
03 сентября 2023, 10:20
modx.pro
629
0

Очистка папок с кешем файлов сайта и кеша сайта по cron

Доброе!
Делал кто такое? Или кто может сделать и по чём?
1) поиск папок на сайте с заданными названиями (cache, cache-image и т.д.). Названия папок можно задавать в самом скрипте.
2) очистка найденных папок.
3) сброс кеша сайта.
Проблема при хранении картинок на сторонних серверах типа Selectel и генерации превьюшек через pThumb. За короткое время собирается большой объём файлов на сервере.
Нужно по cron периодически очищать эти папки с кешами картинок и кеш сайта.
Названия папок можно задавать прямо в sh скрипте.
Любые варианты решения проблемы приветствуются.
Решение после тестирования будет опубликовано бесплатно для всех.
Сергей Самусев
01 сентября 2023, 22:30
modx.pro
384
0

mFilter2 не выводит товары привязанные через закладку "Категории"

Добрый день! Может кто то сталкивался с тем, что товары привязанные к категории с других категорий не выводятся на странице каталога (сниппет mFilter2). Верисия mSearch2 1.14.11. Также пробовал выводить через msProducts, тот же эффект.
Заранее спасибо за подстказку!
Вовка
01 сентября 2023, 14:50
modx.pro
381
0

Как сделать чтобы виджет Whatsapp исчезал после окончания рабочего времени?

Добрый день.

Подскажите пожалуйста. У меня установлен виджет Whatsapp на сайте через php. Хочу, чтобы иконка исчезала после 17:00 и 16:00 в пятницу, чтобы ответственному лицу не писали после окончания рабочего дня. Как это можно сделать и возможно ли?
Спасибо. Я новичок. Вопросов не нашла похожих.
inkeri21
01 сентября 2023, 12:31
modx.pro
340
0