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

FastDevLab
18 ноября 2025, 19:37
0
Ну я к примеру очень часто использую плагин PageBlocks (free версию — он не поддерживает файловые чанки (которых нет в админке) в своих вызовах — ну или я что то не знаю). В общем я создаю в нем нужные конфиги блоков, создаю для них чанки — этим чанкам после сохранения, ставится галка статический и создается файловый чанк, в котором я уже потом пишу код (как то так)
Артур Шевченко
18 ноября 2025, 18:53
0
Спрошу по-другому, почему просто не использовать файловые элементы, не создавая их в админке?
FastDevLab
18 ноября 2025, 18:42
0
Статические элементы нужны для работы с Git, версионирования и командной разработки. Удобно создавать элементы быстро в админке, а затем дорабатывать их в IDE с подсветкой синтаксиса, автодополнением и всеми инструментами современного редактора. Также это позволяет синхронизировать элементы между окружениями (локальная → тестовая → продакшн) через систему контроля версий, что критично для командной работы.
Артур Шевченко
18 ноября 2025, 18:33
0
Иди переделывай)))
Артур Шевченко
18 ноября 2025, 18:32
0
Если хотите изменить базовый путь сохранения файлов, поправьте системную настройку: pdotools_elements_path
Т.е. pdoTools установлен, зачем же тогда создавать статические чанки, шаблоны и сниппеты?
Stanislav Ovv
18 ноября 2025, 18:23
0
Ну для начала хотя бы во Vueшное сообщество.
Или ИИ подсказал?
Я конечно понимаю, что PrimeVue красочный, многофункциональный, но затаскивать такого монстра с фаршем под капотом, ну такое себе…
Николай Савин
18 ноября 2025, 16:38
0
Я прошу прощения. Конечно, нужно было зайти, посоветоваться. Не догадался.
Stanislav Ovv
18 ноября 2025, 09:34
0
Чёрт дернул автора сунуться в PrimeVue (:
Дмитрий Середюк
17 ноября 2025, 09:45
0
У себя на проекте использую CLI скрипт в котором выставляется базовая категория, после запуска в указанной категории

define('JSON_DIR', MODX_BASE_PATH . 'assets/jsonld/');

Появляется статичный файл LD разметки карточек товара.

После чего при помощи сниппета подгружаю нужную разметку в зависимости от категории. Сниппет так же в комплекте по ссылке выше.
Сергей
17 ноября 2025, 08:59
+1
Может кому пригодится, если это товар, то должно быть product_id
{$file.product_id | resource : 'pagetitle' | htmlent}
Артур Шевченко
16 ноября 2025, 16:48
0
Поверь, с гитом разрабатывать удобнее
Евгений
16 ноября 2025, 14:36
0
@Артур Шевченко А просто ещё дорабатывается:) Я вот только запостил, как нашёл ещё пару косяков. (Очень уж запостить хотелось побыстрее — чсв потешить:) )
Сейчас ажиотаж от того, что «маааам, посмотри, что я сделал», прошёл и надо ещё разок свежим взглядом всё пробежать…
Серый
15 ноября 2025, 01:41
0
присоединяюсь к просьбам дополнить чтоб /{id}/ в пути сохранения учитывались и при открытии местоположения файла, тогда не придется колхозить с migxResourceMediaPath…
Спасибо!
Павел Романов
14 ноября 2025, 19:50
0
Да, msProducts почему-то в конце ставит лишнюю запятую.
Тогда сделайте сниппет getJson:

<?php
$pdo = $modx->getService('pdoFetch');
$categories = $pdo->getCollection('modResource', ['parent' => $parent,'template' => $catTemplate],['limit' => 0]);

$prods = [];
$i = 1;

foreach ($categories as $category) {
    $products = $modx->runSnippet('msProducts',[
        'parents' => $category['id'],
        'templates' => $prodTemplate,
        'limit' => $limit,
        'sortby' => '{ "menuindex":"DESC" }',
        'return' => 'json'
    ]);
    $products = json_decode($products,1);
    foreach($products as $product){
        $product['idx'] = $i;
        $prods[] = $pdo->getChunk($tpl,$product);
        $i++;
    }
}

$prods = implode(',',$prods);
$out = $pdo->getChunk($tplWrapper, ['name' => $name, 'output' => $prods]);
return $out;

Создайте чанк razmetka_wrapper:
<!-- Разметка популярных товаров -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ItemList",
  "name": "[[+name]]",
  "itemListOrder": "https://schema.org/ItemListOrderAscending",
  "itemListElement": [
      [[+output]]
  ]
}
</script>

И вызывайте (в чанке razmetka-tovarov в конце не должно быть запятой):
[[getJson?
&parent=`6`
&catTemplate=`***` // ID шаблона категории
&prodTemplate=`***` // ID шаблона товара
&limit=`16`
&tpl=`razmetka-tovarov`
&tplWrapper=`razmetka_wrapper`
&name=`Популярные букеты`
]]
Дмитрий
14 ноября 2025, 18:21
0
не, до этого я так же проверял, гугл-валидатором, все было в норме, ругался на наличие последней запятой. А тут ругается на запятую, которая идет сразу после первого же товара.
А то как пишете вы, у меня так и сделано…

<!-- Разметка популярных товаров -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ItemList",
  "name": "Популярные букеты",
  "itemListOrder": "https://schema.org/ItemListOrderAscending",
  "itemListElement": [

[[getResources? 
    &parents=`6` 
    &tpl=`tovaru-schema`  
    &includeContent=`1`
    &includeTVs=`1`
    &sortby=`{"menuindex":"ASC"}` 
    &limit=`0` 
    &depth=`0`
    ]]
  ]
    }
Павел Романов
14 ноября 2025, 18:12
0
Смотрите каким должен быть результирующий JSON и сравните с тем, что выводится. Может надо обернуть первый вызов в [ и ]:

[
[[pdoResources?
&tpl=`category_tpl`
&parents=`6`
&templates=`***` // тут ID шаблона категории 
&limit=`0`
&sortby=`{ "menuindex":"DESC"}`
&outputSeparator=`,`
]]
]
Дмитрий
14 ноября 2025, 18:01
0
План был хорош, но почему-то валидатор от гугла ругается именно на эту запятую =)
т.е. по всей видимости, pdoResources подставляет эту запятую в каком-то своем формате. =(

Вот чего говорит: Ошибка анализа: в декларации массива отсутствует символ "," или "]", хотя сам код выглядит, так как нужно
Павел Романов
14 ноября 2025, 17:42
0
Первый вызов перебирает все категории внутри каталог (6) и они выводятся как чанк category_tpl.
В этом чанке для каждой категории (категория 1 (7) и категория 2 (8)) вызывается msProducts, который выводит 16 товаров, принадлежащие данной категории ([[+id]] будет выводить 7 и 8 соответственно, что и будет передаваться в &parents=`[[+id]]`).

&templates — ограничивает выборку определенным шаблоном.
Дмитрий
14 ноября 2025, 17:39
0
аааа! я наверное догадался=)

&outputSeparator=`,` добавит запятую после каждого прохода цикла?