Альберт

Альберт

С нами с 30 июня 2016; Место в рейтинге пользователей: #478

Конфликт ms2Gallery и AjaxForm

Всем здравствуйте!

Обнаружился странный глюк — при выводе ms2Gallery на страницу, не выводится ajaxForm.
Прямо в коде страницы смотришь — если вывелся скрипт ms2Gallery, то ajaxform не подключает скрипты.

В чем может быть дело, может кто сталкивался? В логах тишина.
Альберт
30 ноября 2023, 19:19
modx.pro
202
0

Программист MODX для доработки нестандартного интернет-магазина

30 49 999
Добрый день!
Есть нестандартный магазин на minishop2 + msearch2 с управлением товаров из закрытой части фронтенда ограниченным числом пользователей. Всё разделено на обычных покупателей, дизайнеров, менеджеров и баеров.
Есть ТЗ по дальнейшей доработке сайта: переделка основного сниппета с функционалом в отдельный компонент для удобства развития сайта, доработка кабинета баера (оптового покупателя), внедрение оплаты, различные доработки по разделам.



Интересуют отклики от тех, у кого есть «средний и выше» опыт в MODX, опыт работы с собственными компонентами, для дальнейшего обсуждения.
Альберт
12 октября 2021, 15:41
modx.pro
326
0

MySQL server has gone away на простых сайтах на бегете

Всем доброго дня!
Подскажите, коллеги, в чем может быть проблема в ситуации, когда запущен простой сайт с небольшой посещалкой, запросов базе на страницу 8-12, в целом все выглядит очень легко и понятно.

Однако, в логах прям регулярно сыпется «HY000 2006 MySQL server has gone away».
Хостинг — бегет, по данным панели нагрузки — 10% от тарифного плана.

«Решает» проблему вставка строчки в /core/xpdo/om/mysql/connect.inc.php:
$this->pdo->exec('set session wait_timeout=600;');
Но во-первых, это не норма, во-вторых, костыль, в третьих, он затирается при обновлении системы.
Самое главное, что эту проблему регулярно вижу на разных сайтах на modx на бегете.
Альберт
21 июня 2021, 12:22
modx.pro
2
772
0

Фильтрация по числовому TV в mFilter2 (where)

Всем здравствуйте!

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

Есть товары, у которых бренд задан через TV, в который подгружается список ресурсов. Соответственно, значение этого поля у самого товара — числовое.

В категории выбираю только включенные бренды:
{set $published_brands = '!pdoResources' | snippet : [
    'parents'       => 2,
    'depth'         => 0,
    'limit'         => 0,
    'returnIds'     => 1
]|strToArray}
и далее вызываю сам фильтр:
Альберт
11 января 2021, 20:03
modx.pro
482
0

Пропали товары minishop2 в админке

Столкнулся с тем, что после работы скрипта для импорта товаров перестали отображаться товары в админке, без каких-либо ошибок. По API, через консоль и на самом сайте с ними проблем нет. Может, кто сталкивался? Подскажите, куда копать.
Альберт
15 декабря 2020, 20:47
modx.pro
580
0

Оставлять пагинацию при ajaxMode=default в pdoPage

Коллеги!
Подскажите, пожалуйста, сталкивался ли кто-то с тем, чтобы оставить на странице пагинацию ссылками одновременно с загрузкой по ajax при достижении низа списка? Соответственно, как только подгрузились следующие результаты, в блоке ссылок становится активной следующая страница.
pdoPage «из коробки» делает либо/либо.
Альберт
16 мая 2020, 11:04
modx.pro
311
0

Тип :number для TV в mFilter2 выдает значения через запятую, а не от-до

Доброго дня!

Не могу понять, прошу помочь: в mFilter2 вызываю фильтр по числовому TV, а он вместо диапазона выдает мне все значения, при попытке менять значения слайдером — подставляет в GET все числа через запятую.



В вызове :number указан:
filters' => '
       tv|options.area:number
',
Чанк использую стандартный со слайдером.
Альберт
13 июня 2019, 16:40
modx.pro
556
0

Кастомный процессор orders/getlist в minishop2

Всем доброго дня!

Вопрос, на который я так и не нашел ответа. Можно ли сделать кастомный процессор orders/getlist для вывода списка заказов? Можно ли сделать свой плагин, который будет js обрабатывать по-другому?

С обработчиками корзины и создания заказа вопросов нет, а вот когда речь заходит о кастомизации в админке, все сложнее.
Альберт
10 декабря 2018, 13:34
modx.pro
1
824
0

Вывод списка всех контекстов в каждом из них (проблема)

Есть 4 контекста, условно:
1) site.ru
2) name1.site.ru
3) name2.site.ru
4) name3.site.ru

Все http_host и прочее прописаны у каждого. Вручную каждый открывается без проблем.
Вывожу их в список, чтобы переключаться между ними во фронте переадресацией.

И начинаются чудеса:
В контекстах 1 и 2 показываются в списке только они, а 3 и 4 вообще не выводятся.
В 3 контексте видны 1, 2, 3.
В 4 контексте в списке видны 1, 2, 3, 4.

Это как?

Сниппет, отвечающий за вывод:
<?php
$output = null;

switch ($scriptProperties['type']){
    default:
    case 'list':
        $contexts = $modx->getCollection('modContext', array('key:!=' => 'mgr'));
        
        foreach($contexts as $cx) {
            if($cx->prepare()){
                $data = array(
                    'key' => $cx->key,
                    'name' => ($cx->key != "web")?$cx->name:"Главная страница",
                    'url' => $cx->config['site_url'],
                );

                $output .= $modx->getChunk($scriptProperties['tpl'], array('data' => $data));
            }
        }
    break;
    case 'city':
        if ($modx->context->key == 'web') $output = 'Выберите город';
        else {
            $ctx = $modx->getObject('modContext', array('key' => $modx->context->key));
            $output = $ctx->get('name');
        }
    break;
}

return $output;
UPD1: Косяк с контекстами 3 и 4: под анонимом не открываются, 404 вместо главной. Права в админке выставлены на группу для этих контекстов. Скидываешь кеш, открываешь — все работает. Не понимаю…
Альберт
26 ноября 2018, 23:50
modx.pro
1
1 217
0

Верный id последней вставленной записи через lastInsertId при использовании bindValue

Всем доброго дня!

Столкнулся с задачей импорта из кастомного csv данных в свою таблицу, сделал через INSERT INTO… VALUES… ON DUPLICATE KEY UPDATE.
Работает, но долго, как по мне.

Для того, чтобы достать id последней вставленной или обновленной записи, пользуюсь $modx->lastInsertId($q), все показывает правильно: если запись была, то возвращает ее id, если она новая, то id вставленной записи.

Попробовал перейти на однократную подготовку запроса до перебора цикла, а дальше при переборе уже
$q->bindValue(1, $data[0]);
$q->bindValue(2, $data[1]);

$q->execute();

Все, на этом id последней вставленной записи ломается: возвращает id больше, чем последний AUTO_INCREMENT в таблице, при этом записи в таблице никакие не появляются.

Подскажите, кто знает — как ускорить вставку, при этом сохранив информацию о верном id?
Альберт
20 октября 2018, 13:30
modx.pro
638
0