Сергей Фещуков

Сергей Фещуков

Был в сети 11 августа 2026, 07:34
Заказы не принимаю
Отправить деньги
Да, я делал сниппет для клиентского сайта-галереи, где нужно было сделать удобное изменение и вывод информации о фотографе. Поэтому глубоко не увлекался и сделал только поля профиля. Думаю, развить идею и добавить поля пользователя не сложно, если это кому-то нужно будет.

Фильтр userinfo хорош, но нужно было выводить много полей, а вызывать везде этот фильтр… Есть подозрение, что быстрее вызвать сниппет один раз, чем много раз фильтр. Хотя это не проверялось, так что могу ошибаться.
Кому интересно, предлагаю свой вариант подобного сниппета, но только тут несколько отличий:
1. Можно указать любого пользователя, а не текущего.
2. Если несколько полей или указан параметр toPh, то всё сохраняется в плейсхолдерах.
3. Если указано одно поле, оно и выводится при вызове сниппета.
<?php
if ( empty($id) ) return false;
$fields = empty($fields) ? array('fullname') : explode(',', trim($fields));
$toPh = empty($toPh) ? false : true;
$user = $modx->getObject('modUser', intval($id));
$profile = $user->getOne('Profile');
foreach ($fields as $field) {
    $field = trim($field);
    $return[$field] = $profile->get($field);
}
if ($toPh || count($return) > 1) $modx->toPlaceholders($return, 'user.'.$id);
else return $return[$field];

А ваш сниппет можно было уместить в несколько строк:
<?php
$profile = $modx->user->getOne('Profile');
$value = $profile ? $profile->get($field) : '';
return empty($value) ? '' : $value;
А, кажется понял почему. У меня показывает 3 закачки за март месяц, а за апрель, наверное, были закачки и не было покупок (поэтому он в продажах не отображается). А на странице дополнения показывает общее количество закачек. :)
Зачем свою статистику выдумывать, если всё уже ведёт сам miniShop2.

Можно одним запросом из таблицы modx_ms2_order_products собрать статистику по одному варианту, а возможно, и всю сразу.

Если это так необходимо, я добавлю на единую страницу с остатками возможность вывода количества проданных вариантов в новой версии плагина.
Пожелания 1 и 2 работают в 1.0.3-beta, пожелание 3 уже реализовано в 1.0.4-beta, но она почему-то в магазин до сих пор не попала. Сегодня снова отправлю заявку на добавление новой версии плагина.

Кроме этого добавлена единая страница, на которой можно просмотреть остатки товаров (а не открывать товары по отдельности, чтобы смотреть остатки).
1. Ссылка ведёт на саму картинку, а не на какую-либо страницу. Можно сделать отдельную страницу, в чанк tpl.ms2Gallery.row вставить ссылку на эту страницу, а в качестве параметра указывать ссылку на картинку. А на самой странице считывать этот параметр из ссылки и выводить нужную картинку в шаблоне. А ещё можно поиграться с .htaccess и с помощью него делать перенаправление или подмену. Вариантов много. Но писать долго как это делать.
2. Убрать из чанка tpl.ms2Gallery.outer html-код большого превью. Где проблема?
3. А стили fancybox скопировали? Файл, что формата .css. А ещё там картинки есть от fancybox. Кроме всего прочего, файл стилей ещё подключить надо.
А по ссылке на превью, в tpl.ms2Gallery.row вместо
<a href="[[+360x270:default=`[[+url]]`]]">
написать просто
<a href="[[+url]]">
И будет ссылка на оригинал изображения, а не на превью.
Как вариант пока приходит в голову создать свой сниппет, внутри которого будет переменной будет присваиваться результат вызова сниппета msCart в виде массива, который затем обрабатывать.
А можно подсмотреть в сам сниппет msCart и увидеть, как вызывается корзина, и далее её использовать подобный код.
Заметил маленький косяк в лексиконах:
Включить авто-плейсхолдеры? ms2gallery_set_placeholders Нет
Вы можете включить автоматическое выставление плейсхолдеров с изображениями на странице с гелереей.