Всего 125 675 комментариев

Виталий Киреев
13 июля 2021, 14:59
0
Смотрите, что за плагины вызываются на OnDocFormSave. Судя по всему там у вас перегенеривается что-то на каждое сохранение ресурса.
Алексей
13 июля 2021, 14:08
0
Столкнулся с непонятным ооочень долгим обновлением одной категории во время импорта (обновление происходит через процессор «mgr/extend/updatemscategory»), может кто-то может объяснить почему так? Очень долго искал место где всё стопориться на долго.

Потом уже воспроизводил через консоль, вручную подставил теже самые данные:
$processorProps = array(
    'id' => 274,
    'class_key' => 'msCategory',
    'pagetitle' => 'ЖЕНСКОЕ',
    'context_key' => 'web',
    'parent' => 40,
);

$this->modx->runProcessor('mgr/extend/updatemscategory', $processorProps, array('processors_path' => '/var/www/site/data/www/site/core/components/msync/processors/'));
Ответ о времени и запросах из консоли:
SQL time: 5.0144 s
SQL queries: 16430 — 16 тыщь запросов к базе? ради обновления одной категории???
PHP time: 49.7612 s
Total time: 54.7757 s — 54 секунды на одну категорию??
Memory: 116 MB
Сделал временно пока так
Файл /core/components/msync/model/msync/msynccataloghandler.class.php:790:
/**
 * Update miniShop2 category
 *
 * @param $parentId
 * @param $categoryId
 * @param $categoryName
 * @return bool|mixed
 */
protected function updateMsCategory($parentId, $categoryId, $categoryName)
{
    $this->clearModxErrors();

    // $processorProps = array(
    //     'id' => $categoryId
    //     , 'class_key' => 'msCategory'
    //     , 'pagetitle' => $categoryName
    //     , 'context_key' => $this->config['catalog_context']
    // );
    // if ($parentId) $processorProps['parent'] = $parentId;

    $category = $this->modx->getObject('modResource', $categoryId);
    if($category) {
        $category->set('class_key', 'msCategory');
        $category->set('pagetitle', $categoryName);
        $category->set('context_key', $this->config['catalog_context']);
        if ($parentId) $category->set('parent', $parentId);
        $category->save();

        return true;
    } else {
        return false;
    }

    // TODO очень долго выполняется, много запросов
    //$response = $this->modx->runProcessor('mgr/extend/updatemscategory', $processorProps, array('processors_path' => $this->config['processorsPath']));

    // if (!$response->isError()) {
    //     $_SESSION['importResources']['category']['updated'][] = $categoryId;
    //     return $response;
    // } else return false;
}
Владимир
13 июля 2021, 12:15
0
Есть возможность импорта/эскпорта цен и параметров из модификаторов msOptionsPrice2?
Евгений Webinmd
12 июля 2021, 13:42
0
необходимо добавить в словарь перевод для этого ключа mse2_filter_ms_weight
Семен
12 июля 2021, 13:32
0
Спасибо, все заработало. Невнимательно документацию смотрел.

Есть еще одна небольшая проблемка, видимо мозги уже закипели окончательно.
При переходе на англ. версию сайта, все названия фильтров переводятся, кроме «объема», выводит такое
mse2_filter_ms_weight, в упор не понимаю, почему так.

Буду безмерно благодарен за помощь. Спасибо!
Роман
12 июля 2021, 09:32
0
Не очень понятно, что вы описали. Выложите скрины, чего вы хотите, и что есть на данный момент. В админке точно нет такого, скорее всего через css нужно реализовывать.
Stepan
12 июля 2021, 02:06
0
а много чанков — это сколько
просто если 20штук, то это даже руками пробежаться и навесить метки…
вам в принципе все равно править счетчики и вешать метки
если больше 20 то можно написать скриптик по обновлению кода чанка
добавляем в кнопку отправки типа data-rel=«chto_ugodno»
а по хорошему чанки с параметрами лучше вызывать
для поиска и замены заюзай нормальный текстовый редактор с поиском по тексту
займет не более 3 минут на каждый чанк
Ivanov Alexandr
11 июля 2021, 17:12
0
Спасибо.
Вывод блоков теперь вот
{'!pdoResources' | snippet: [
                'frontend_css' => '',
                'class' => 'pageBlock',
                'loadModels' => 'pageBlocks',
                'sortby' => 'rank',
                'sortdir' => 'asc',
                'limit' => 100,
                'tpl' => 'tpl.PageBlocks',
                'where' => [
                   'resource_id' => $_modx->resource.id,
                    'active' => 1
                ],
            ]}
Проблема с контекстами осталась.
После того как добавляешь к контексту cultureKey то в контексте отличном от контекста ru блоки не отображаются.
Shedko Denis
11 июля 2021, 15:11
0
Спасибо за предложение.

Но придется заставить править «в ручную», ибо таких чанков может быть несколько разных на странице.
Stepan
11 июля 2021, 15:07
0
попробуйте отталкиваться от родителей
например id страницы(родителя) или класса html родителя
если это разные города, то соответственно воспользуйтесь генерацие плейсхолдера на каждый город и от него шагайте
Сергей
11 июля 2021, 13:30
0
Здравствуйте! При импорте (обновлении) из xlsx получаю в консоли [2021-07-11 10:19:21] (ERROR @ /home/stylebel/web/apkqw.stylebel.ru/public_html/core/components/msimportexport/model/msimportexport/reader/msieexcelreader.class.php: 100) [MsieExcelReader] Exception Row 3 is out of range (3 — 1)
Данные не обновляются. Но ошибок нет, пишет после импорта обновлено, ошибок 0.

В настройках «Ключ товара, по которому определяется его уникальность» стоит id.
На скрине показал как заполнял поля . Exel фал отредактировал после экспорта (экспорт работает).
Не пойму в чем проблема. Помогите!
Игорь
11 июля 2021, 12:14
0
А как сделать наоборот у простых ресурсов. Есть родитель и ТВ у него. Это же ТВ присвоено дочерним. Как прописать значение родителя в это же тв дочерних?
Был бы очень признателен.
Баха Волков
10 июля 2021, 12:27
0
Есть такая потребность, подумал, а почему нет?
Хорошо, я допускаю, что такая потребность может возникнуть… но, сейчас внимательно: если я создаю чанк и/или его редактирую, то я знаю как этот чанк называется

Вдруг я чего не знаю.
Отвечаю на ваш вопрос, насколько я знаю, нет. Как Николай сказал, вашу задачу могут решить параметры, пример:

[[$chunkName]]   // Обычный вызов чанка

[[$chunkName?    // Вызов чанка с параметрами
    &foo=`bar`   // В самом чанке вам будет доступен плейсхолдер [[+foo]] со значением bar
]]
Николай Савин
09 июля 2021, 19:26
0
А где например может понадобится такая возможность?
Встроенной возможности вроде бы нет, разве что передать в вызываемый чанк параметр chunkName
Andrey
09 июля 2021, 19:18
0
Вопрос снят. Можно через explode.