Всего 123 788 комментариев

Николай Савин
18 мая 2023, 10:49
1
+2
Артур ты тоже обрати внимание. Есть шикарный метод
$modx->updateCollection();
Он позволяет быстро без перебора обновить записи в базе по заданным критериям.
Да — нужно знать про него, что он сразу в базу лезет, и не задействует никакие модели, плагины.
Конкретно в этом случае — это норм.
Николай Савин
18 мая 2023, 10:47
+1
очень печально что в модкс нельзя обновить коллекцию пачко
Вполне себе есть метод
$modx->updateCollection()
Сергей
18 мая 2023, 10:20
0
Спасибо огромное за помощь, именно это и помогло! Прогнал фотки через сервис уменьшения размера изображений, заодно он и метаданные чистит.
Сергей
18 мая 2023, 10:19
0
Спасибо огромное за помощь, именно это и помогло! Прогнал фотки через сервис уменьшения размера изображений, заодно он и метаданные чистит.
Павел Бигель
18 мая 2023, 01:51
0
foreach($products as $p){
            $p->set('published', 0);
            $p->save();
        }
Мне кажется получить ошибку MySQL gone away получить можно очень быстро с обновлением элементов коллекции отделельно.
Лучше бы их обновить в БД напрямую

P.S очень печально что в модкс нельзя обновить коллекцию пачкой. Но я понимаю почему — иначе не отработают плагины на эти события
Тодор
18 мая 2023, 00:18
0
getParentIds возвращает список ИДшек всех родителей ресурса. Только на него ни как не влияет категории отмеченные во вкладке Категории
kudesia
18 мая 2023, 00:03
0
Вот так может лучше

joxi.ru/823NelZCwlwnym

Вот нужно вывести pagetitle этот дополнительной, а не основной категории
Артур Шевченко
17 мая 2023, 23:43
0
Я не понял задачу. Что за страница со второстепенными категориями?
Артур Шевченко
17 мая 2023, 23:40
0
<?php
if (empty($rid)) {$rid = $modx->resource->id;}
if (empty($pid)) {$pid = $modx->resource->parent;}
if (empty($delimeter)) {$delimeter = ' , ';}
$pdo = $modx->getService('pdoTools');
$scheme = $modx->getOption('link_tag_scheme', null, 'full', true);

$q = $modx->newQuery('msCategory');
$q->leftJoin('msCategoryMember', 'msCategoryMember', array(
    '`msCategory`.`id` = `msCategoryMember`.`category_id`'
));
$q->sortby('pagetitle','ASC');
$q->groupby('id');
$q->select($modx->getSelectColumns('msCategory'));
$q->where('`msCategoryMember`.`product_id` = '.$rid.' OR `id` = '.$pid);

$result = array();
$html = '';
if ($q->prepare() && $q->stmt->execute()) {
    while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
        if($tpl){
            $html .= $pdo->parseChunk($tpl, $row);
        }
        else{
             $result[] = $row;
        }
    }
}
return $html ?: $result;
Добавил параметр tpl это обычный чанк, в нём доступен массив полей ресурса в виде плейсхолдеров типа {$pagetitle} или [[+pagetitle]]. Можете выводить что угодно и как угодно.
kudesia
17 мая 2023, 23:39
0
Тот вопрос про вывод всех категорий, а этот про одну второстепенную, конкретно указанную в [[!msProducts?]]
Артур Шевченко
17 мая 2023, 23:29
-1
Вы зачем спамите похожими вопросами? Предыдущий ваш вопрос был про это же, только с другого бока.
kudesia
17 мая 2023, 23:27
0
Спасибо огромное, работает.

Можете еще сказать, как вывести только ID или только pagetitle?
Артур Шевченко
17 мая 2023, 23:21
+1
На Fenom так
{'!SnippetName' | snippet: [
'rid' => $id,
'pid' => $parent
]}
На родном синтаксисе так
[[!SnippetName?
&rid=`[[+id]]`
&pid=`[[+parent]]`
]]
SnippetName — заменить на название сниппет.

Но лучше в msProducts дописать параметр leftJoin, кажется так будет немного оптимизированнее
Николай Савин
17 мая 2023, 20:39
+2
Так то с версии 3.0.0 в minishop2 уже из коробки есть функционал брошенных корзин. Дополнительные компоненты не обязательны. Читайте релизы о этой версии
Dan
Dan
17 мая 2023, 18:47
0
Проблема скорее всего не в Migx, а в самих фото. У фото есть метаданные в формате EXIF, в том числе информация об ориентации (альбомная, книжная) камеры в момент фото.
Достаточно все метаданные фото удалить перед загрузкой и все должно быть норм — это можно сделать онлайн.
Dan
Dan
17 мая 2023, 18:41
0
Был компонент ordersUnformed, правда не знаю насколько он актуален, но думаю должен быть, ибо там все достаточно понятно.
Баха Волков
17 мая 2023, 16:45
0
Причина простая, файловые сниппеты не поддерживаются, также как и на AjaxForm