Всего 123 801 комментарий

Артур Шевченко
09 января 2023, 13:11
1
+1
Зачем делать код читабильнее? Ну чтобы удобнее было его читать самому и другим.
Что же до проблемы, то я бы на твоём месте проверил настройки источника файлов (baseUrl), так как у меня нет. Если же исходить из того, что слэш есть и он нужен то можно сделать так
{set $photo = ($el.id | resource: 'photo')}
{set $base_path = $_modx->config.base_path | ereplace: '/\/$/' : ''}
{set $path = $base_path ~ $photo}
{if $phote && file_exists($path)}
<img src="{$photo | pthumb : 'w=660&h=412&zc=1&q=90'}" alt="{$el.pagetitle}"/>
{/if}
Константин Ильин
09 января 2023, 13:02
0
Хм, походу я криворучко или праздники сказываются, даже авторизация не работает.
Модхост сейчас поднял
s31388.h10.modhost.pro/

Простой пользователь
test@test.ru
123123123

админский
s31388.h10.modhost.pro/manager/
s31388
AzbNTYpnYF11
Роман
09 января 2023, 12:55
0
Да тоже все работает, просто если прям подставить

$resource->set('alias',$resource->cleanAlias($title));
$resource->save();
то записывается пустота
Артур Шевченко
09 января 2023, 12:50
0
Где-то у тебя ошибка. Я проверил у себя на сайте в плагине на сохранение всё работает.
Роман
09 января 2023, 12:46
0
тут один вариант, смотреть на конце строки ID и уже от этого плясать, пробую strpos
Роман
09 января 2023, 12:45
0
Можно, а зачем? У меня там в другомпроблема, в $_modx->config.base_path есть папка assets/ на конце со слешем, а у рисунка путь начинается с /assets/… со слешем в начале. Поэтому и добавил функцию назвал substr в которой вырезаю у пути assets/
Роман
09 января 2023, 12:41
0
Пробовал $resource->cleanAlias($title) пусто почему-то в $resource->cleanAlias($title)
Артур Шевченко
09 января 2023, 12:16
0
А почему бы не разбить на части?
{set $photo = ($el.id | resource: 'photo')}
{set $path = $_modx->config.base_path ~ $photo}
{if $phote && file_exists($path)}
<img src="{$photo | pthumb : 'w=660&h=412&zc=1&q=90'}" alt="{$el.pagetitle}"/>
{/if}
По-моему так читабельнее.
Роман
09 января 2023, 12:13
0
Я понял, спасибо, тоже как вариант. Если хочешь что-бы были скопированы TV копируй ресурс, да нормально. Но думаю пока как сделать так, при создании страницы будет выпадающий список у MIGx TV, где пользователь выбирает из списка ресурсов из которого скопировать контент этого MIGx TV, выпадающий список как listbox список ресурсов. Просто типа из готовых шаблонов выбираешь нужный, заполненный.
Артур Шевченко
09 января 2023, 12:10
0
Можно ещё так сделать
$title = $resource->get('pagetitle') . '-' . $resource->get('id');
$alias = $resource->cleanAlias($title);
if ($resource->get('alias') != $alias){
// тут остальное
}
Артур Шевченко
09 января 2023, 12:05
+1
Я, наверное, отвечу про мультикатегории раз никто другой не стал. В minishop2 они есть из коробки. Однако вы пытаетесь использовать два подхода разом: либо вы ставите галочки и составляете условие вывода, либо создаёте в каталоге два ресурса типа Категория товаров (Распродажа и Акция) и добавляете в них товары, также проставляя галочки, но не в опциях, а на вкладке Категории у конкретного товара. В этом случае достаточно просто отправлять пользователя, кликнувшего по баннеру, на соответствующую страницу (Распродажа или Акция), где должен быть как минимум вот такой вызов
{'!msProducts' | snippet: ['parents' => $_modx->resource.id]}

Или так
[[!msProducts?parents=`[[*id]]`]]
Артур Шевченко
09 января 2023, 11:54
0
Почистить лог и по очереди открывать страницы сайта, на какой странице появится ошибка там и надо искать где идёт получения url без корректного id.
Артур Шевченко
09 января 2023, 11:50
0
Можно попробовать на событие OnDuplicateResource повесить плагин, который скопирует данные, тогда пользователю нужно будет просто скопировать ресурс, где migx уже заполнен.
Артур Шевченко
09 января 2023, 11:40
0
Дополнительно ничего писать не нужно, всё есть в комплекте. Я проверил на чистом сайте, у меня всё из коробки завелось без проблем. Посмотрите может есть какие-то ошибки? Попробуйте установить версию 1.0.2.(доступна по ссылке в конце поста)
Наумов Алексей
09 января 2023, 10:50
+1
Добрый день!
Механизма хуков нет, есть возможность повесить плагин (в смысле обычный плагин MODX) на различные события (создание сообщения, удаление и т.п.).
Алексей Смирнов
09 января 2023, 08:22
0
Посмотрите параметры msProduct сниппета. Там будет ответ на ваш вопрос.
Владислав
09 января 2023, 02:39
0
А можете подсказать как указать в where не свойство товара, а именно опцию, т.к. такая конструкция: &where=`{«Data.sale»:«1»} конечно же не работает, потому что Data это свойство товара а не опция. Чем заменить Data?
Роман
08 января 2023, 00:30
0
Блиииин :)) точно, pagetitle же еще не обработан transalias ом, понял, попробую strpos
Алексей Смирнов
07 января 2023, 23:17
0
так не проверяется у вас всегда будет не равно…
if ($resource->get('alias') != $resource->get('pagetitle').'-'.$resource->get('id'))
у вас же pagetitle русскими, а алиас английскими?
Как вариант сравнивайте через функцию php strpos
и ищите это '-'.$resource->get('id')
можно еще посмотреть функции php которые в строке ищут. варианты есть.