Как сделать отложенную загрузку для скриптов яндекс карт и рекапчи 3?

Всем привет. В одном из сео-отчётов был пункт о том, что сайт типа долго загружается из-за сторонних скриптов. Чаще из-за загрузки яндекс. карт и рекапчи 3. реКапча 3 у меня встроена в форму fetchit/formit, а яндекс карты подключены через тег script.
al1ve
16 апреля 2024, 20:39
modx.pro
279
0

[msOptionsPrice2] Как добавить свою колонку в Модификации?

Всем здравствуйте. В общем, суть такая — по умолчанию во вкладке Модификации 6-7 стандартных столбцов — Цена, старая цена, артикул, картинка, тип и так далее.
В колонке Цена у меня указана цена за упаковку (то есть, условно, 1000 руб за упаковку и в коробе 800 пог. м.).
Мне нужно ввести новую колонку Цена за погонный метр/шт., а потом выводить её в зависимости от модификации.
К примеру, товар 1 и у него 2 типа: тип 1 — 5.60 руб за 1 пог. м., тип 2 — 15 руб за 1 пог. м.).
В документации вроде ничего такого не нашёл, либо я неправильно понял. На сайте документации нашёл только старую — docs.modx.pro/components/msoptionsprice.
al1ve
26 апреля 2024, 17:02
modx.pro
211
0

mmxDatabase 1.2.0

Выгрузил новую версию дополнения на packagist.org. Изменений не очень много, но все они интересные.

Во-первых, теперь запросы через Eloquent учитываются в системных плейсхолдерах MODX:
[^q^] queries, time: [^qt^]

Во-вторых, если включить системную настройку log_level на третий уровень (INFO), то вы увидите все SQL запросы прямо в журнале, вместе со временем выполнения.
Василий Наумкин
05 мая 2024, 10:27
modx.pro
201
+10

[JSON] Как вывести страницу в формате JSON?

Необходимо чтобы страница site.com/api возвращала JSON с данными из ресурсов. Это можно сделать через сниппет pdoResources с помощью 'return' => 'json' но необходимо чтобы выводились не все данные, а только id, pagetitle и пара tv-полей. Примерно по такому шаблону
{
"id" : "1",
"name" : "res_name",
"img" : "res_tv_img"
}, ...
Как правильно это сделать? Вот такой вариант:
(шаблон)
[
{'!pdoResources' | snippet : [
  'parents' => 2,
  'showUnpublished' => 1,
  'tpl' => 'api_item',
  'includeTVs' => 'image,console',
]}
]
(чанк)
{
 "id": "{$id}",
 "name": "{$pagetitle}",
 "img": "{$_pls['tv.image']}",
},
работает, но только если тип ресурса указан HTML, если выбирать JSON, то как-будто вообще ничего не происходит, ни ошибок в логе, ни вывода на страницу, ничего.
Подскажите, как правильно нужно это делать
Giant Dad
18 апреля 2024, 17:19
modx.pro
197
0

Настройка уровня вложенности ссылки в адресной строке

Здравствуйте, у меня есть ссылка такого вида:
site.ru/country/news/article-1.html

А нужно сделать вот такой вид:
site.ru/country/article-1.html

Имеется ввиду, чтобы был только самый первый родитель в адресной строке, ну и соответственно последний элемент независимо от коло-ва уровня вложенности
Как это можно реализовать?
Vladyslav
27 апреля 2024, 01:22
modx.pro
196
0

Получение tv поля ресурса

Пытался найти самостоятельно — не справился, прошу, выручайте!
Необходимо получить tv поля другого ресурса, вызвал сниппет pdoResources, указал includeTVs, id ресурса, все как надо, затем вывожу через [[*tv-name]] и выводит верный json массив (поле через migx сформировано), но как на синтаксисе фенома вывести, пробовал и {$tv-name} — ничего не выводит, {$_modx->resource.tv-name} обращается к текущему ресурсу, так что тоже мимо: с
Андрей
17 апреля 2024, 23:33
modx.pro
195
0

Получение всех TV полей ресурса из конкретной категории и вывод в чанк

Всем привет. Хочу поделиться сниппетом, который позволяет получить все TV поля ресурса из определённой категории и оформить вывод в чанк. Задача по сути простая, но те решения которые находил в интернете (например тут или тут или тут) немного не о том и мне не подходят, тоесть готового кажется нет.

Да, её можно решить с помощью MIGX, но это мне тоже не совсем подходило (об этом ниже). Поэтому решил написать этот сниппет. Единственная сложность была сформировать запрос в БД, так как опыта небыло от слова совсем, поэтому воспользовался gpt чатом, ну а дальше отправить результаты в чанк проблем не составило. Возможно кому-то будет полезно.

Андрей Чаплыгин
03 мая 2024, 23:25
modx.pro
2
190
+5

Как передать переменные внутрь чанка из сниппета и заполнить с помощью fenom?

Есть снипет, в нём есть переменные, их нужно передать в чанк, где они подставятся, и вернётся отрендеренный сам чанк. Пытался так.

$pdoTools = $modx->getParser()->pdoTools;

$fenom = $pdoTools->getFenom();
$data['count_products'] = count($data['products']);

$fenom->assignAll([
    'num' => $data.num,
    'date' => $data.date,
    'products' => $data.products,
]);

$renderedHtml = $pdoTools->getChunk('pdfHtmlTemplate');
Ошибки нет, просто не срабатывает после строчки назначения переменных, а если вывести переменные «pdoTools,fenom» то ничего не покажет.
Pandemic
29 апреля 2024, 10:58
modx.pro
1
185
0

Подскажите как лучше реализовать структуру сайта

Добрый день!
Необходимо создать сайт для автосервиса под СЕО, есть несколько доменов, для каждой марки автомобиля каждый домен прикреплен к админке как отдельный контекст, внутри каждого контекста страницы с моделями автомобилей и внутри с их поколениями (Audi a5 II F5 или Audi A5 II F5 рестайлинг и тд).

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

Я раньше делал так что создавал ресурс в каждой модели через modx API но это довольно трудоемкий процесс
Вячеслав Варов
13 апреля 2024, 14:24
modx.pro
179
0

как msProductOptions проверить на пустоту?

Добрый вечер!
Вывожу список опций через msProductOptions
В чанке перед выводом опций идет свой заголовок.
Сейчас если у товара нет ни одной опции — на странице отображается только заголовок из чанка.
Как проверить наличие опций, чтобы не выводить на странице одинокий заголовок?
toPlaceholder тут похоже не работает.

Вот код чанка:
<h2>Заголовок:</h2>
<p>
  {foreach $options as $option}
{if $option.value == 1}
{$option.caption},
{/if}
{/foreach}
</p>
Вызов:
{$_modx->runSnippet('!msProductOptions@PropertySet', [
 'onlyOptions' => 'список опций через запятую',
 'tpl' => 'tpl.msOptions',
 ])}
Олег
17 апреля 2024, 18:41
modx.pro
169
0