Всего 125 652 комментария

elec3c
17 февраля 2021, 10:30
+1
Глянул нутрянку сниппета Gallery. Там есть недокументированный плейсхолдер [[+idx]]. У первого элемента он 0. Далее как я и писал выше или fenom или If.
Иван Бочкарев
17 февраля 2021, 10:29
0
Вопрос был про Gallery, а не msGallery
Алексей
17 февраля 2021, 09:40
0
странно, как можно установить anonymous_sessions = 0, ведь при этом пропадает возможность залогиниться в систему? ещё с 2016 года)
github.com/modxcms/revolution/issues/12983
elec3c
17 февраля 2021, 08:42
0
Да, так лучше. Это не костыль.
Evgeny
17 февраля 2021, 03:02
0
проблема была в конфликте с StercSEO, решается переопределением приоритета системного события OnPageNotFound
Артур Шевченко
17 февраля 2021, 01:20
+1
Другой вариант, я использовал именно его, скопировать сниппет msgallery и поменять
$output = $pdoFetch->getChunk($tpl, array(
    'files' => $files,
));
на
if($tpl){
$output = $pdoFetch->getChunk($tpl, array(
    'files' => $files,
));
}
else{
   $output[] = $files;
}
В результате, если не указывать шаблон при вызове сниппета, то он вернёт массив, а его можно на fenom перебрать с ключами
{set $files = '!msGalleryCustom' | snippet}
{foreach $files as $key => $file}
{if $key == 0}
Шаблон для первой картинки
{else}
Шаблон для остальных картинок.
{/if}
{/foreach}
elec3c
17 февраля 2021, 00:16
0
Можно сделать хитрый трюк, хоть и костыль. Например писать в описании изображения ключ. Например 1, а при выводе галереи проверять значение [[+description]], если оно равно вашему ключу то писать одно оформление, если нет, то другое. проверить можно fenom'ом или плагином If/
elec3c
16 февраля 2021, 23:58
1
+1
Вывод таблицы:
<table class="products">
<thead>
<tr style="font-weight:600;">
	<td>Сплав</td>
	<td>Размер</td>
	<td>Состояние</td>
	<td>Наличие</td>
	<td>Цена</td>
	<td>Примечание</td>
	<td>Фото</td>
</tr>
</thead>
    [[!pdoPage? 
        &element=`msProducts`
        &tpl=`products_row`
        &includeTVs=`prod-img`
    ]] 
</table>
includeTVs — Список ТВ параметров для выборки, через запятую. Например: «action,time» дадут плейсхолдеры [[+action]] и [[+time]].

Чанк products_row:
<tr>
	<td class="prod-name">{$pagetitle}</td>
	<td class="prod-size">[[!msOptions? &options=`size` &tpl=`tpl.msOptions-sizes` &product=`[[+id]]`]]</td>
	<td class="prod-sost">[[!msOptions? &options=`sost` &tpl=`tpl.msOptions-sizes` &product=`[[+id]]`]]</td>
	<td class="prod-nalichie">[[!msOptions? &options=`nalichie` &tpl=`tpl.msOptions-sizes` &product=`[[+id]]`]] кг</td>
	<td class="prod-price">{$price | replace:" ":""} руб.</td>
	<td class="prod-primechanie">[[!msOptions? &options=`prim` &tpl=`tpl.msOptions-sizes` &product=`[[+id]]`]]</td>
	<td>[[+prod-img]]</td>
</tr>
Если ничего не напутал, то должно сработать.
Valeria
16 февраля 2021, 23:35
0
Видимо, я куда-то не туда добавила данную конструкцию, что у меня аж перестала загружаться страница с подкатегориями.
Можете, пожалуйста, подробнее объяснить? А то я не такой мастер в MODX как хотелось бы)
Sergey (Sentinel)
16 февраля 2021, 22:31
0
Добавь плиз в доку, как парсить каталог с категориями вложенными?
elec3c
16 февраля 2021, 20:26
0
Если я правильно понял
[[!pdoPage?
&element=`msProducts`
&tpl=`products_row`
&includeTVs=`список_tv_параметров_через_запятую`
]]

И затем выводить их через плэйсхолдеры [[+имя_параметра]] я точно не помню нужен ли префикс в msProducts.

Дока
docs.modx.pro/komponentyi/minishop2/snippetyi/msproducts
Роман
16 февраля 2021, 18:16
0
Благодарю!
Евгений Webinmd
16 февраля 2021, 15:02
0
открываете документацию, видите что там есть 2 параметра sortBy sortDir — читаете о чем они, вписываете в sortBy через запятую parent,menuindex, а для sortDir ASC,DESC (ну или наоборот)
и будет у вас сортировка сперва по родителю, затем по позиции
Роман
16 февраля 2021, 14:57
0
Благодарю! Консоль, точно, как то работал с этим компонентом.
Наумов Алексей
16 февраля 2021, 14:46
2
+2
1. Ставите компонент Console
2. Пишите там код:
$q = $modx->newQuery('modResource');
// условие по необходимости
//$q->where(array('parent' => 1));
$resources = $modx->getIterator('modResource', $q);
foreach($resources as $resource) {
    $content = $resource->get('content');
    // делаем че хотим
    $title = 'Заголовок';
    // ...

    $resource->setTVValue('title', $title);
    $resource->save();
}
3. Запускаете… ждете (возможно долго).
Dolce
16 февраля 2021, 14:20
0
Возможно проще, но как по мне это костыльно — вместо того, что бы работать напрямую, мы скрываем нативный блок и на нем триггерим событие с другого элемента. Я не любитель такого подхода, но это кому как, хорошо когда есть выбор, как реализовывать, а решать уже вам
Stanislavsky
16 февраля 2021, 14:10
0
А не проще просто скрыть радио элементы и просто через селект триггерить change? Сразу отпадет желание добавлять кастомный файл js
Евгений
16 февраля 2021, 11:46
0
Напишите мне на info@new-content.ru