mmxFenom - нативная интеграция шаблонизатора

Продолжаю разработку новой вселенной дополнений для MODX и сегодня у нас на очереди шаблонизатор Fenom.

Свою известность в мире MODX этот шаблонизатор получил благодаря интеграции в pdoTools, после чего многие сниппеты стали поддерживать более удобный синтаксис и возможности расширения.

Однако, с течением времени компонент оброс огромным количеством функций и сейчас его разрабатывать очень трудно. Где-то поменяешь одно — сломаешь другое.

Да и с появлением mmxDatabase, как мне кажется, какие-то упрощённые выборки из БД просто теряют актуальность. Ведь сегодня можно в любом сниппете делать вот так:
$resources = MMX\Database\Models\Resource::query()
  ->where('published', true)
  ->select('id', 'pagetitle')
  ->get()
  ->toArray();

return print_r($resources, true);
Не хватало только шаблонизатора для подобных выборок — и теперь он тоже есть.
Василий Наумкин
02 мая 2024, 11:51
modx.pro
1
207
+15

[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
203
0

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

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

[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
186
0

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

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

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

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

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

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

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

Я раньше делал так что создавал ресурс в каждой модели через modx API но это довольно трудоемкий процесс
Вячеслав Варов
13 апреля 2024, 14:24
modx.pro
177
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
168
0

Разработка сайта на modx + интеграция с 1С

45 100 000
Нужно разработать сайт
Около 500 товаров
Главная
Каталог (с фильтрами, сортировкой, подкатегориями товаров)
Карточка товара (фото, характеристики, описание, видео с ютуба, выбор количества, кнопка добавления в корзину)
Контакты
Где купить?
Как заказать?
Оплата и доставка
О компании
Часто задаваемые вопросы
Корзина и оформление заказа
поиск по сайту, настройка форм обратной связи, Сертификат SSL (1 год)
Фавикон- иконка для сайта

1С предприятие 8.2(8.2.19.130)
Управление торговлей редакция 10.3(10.3.47.3)

Связаться телеграм @arhipovsv
Сергей Архипов
12 апреля 2024, 07:05
modx.pro
161
0

Как получить изображение товара MS2 через action.php?

Здравствуйте!
Делаю личный кабинет на Office, но вместо стандартного сниппета истории заказов делаю аналогичные кастомные fetch-запросы к /assets/components/office/action.php для получения данных заказов.
Можете подсказать как получить URL изображения товара аналогичным образом?
Владимир
15 апреля 2024, 19:38
modx.pro
160
0

Как передать переменные внутрь чанка из сниппета и заполнить с помощью 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
152
0