Константин

Константин

С нами с 30 мая 2017; Место в рейтинге пользователей: #272

Изменяем форму заказа minishop2

За год работы с минишопом я понял одну вещь — никто не знает как просто и быстро кастомизировать стандартную форму заказов. Для меня это довольно частая задача, по этому соберу тут несколько приемов которыми сам пользуюсь:


Pavel Zarubin
22 апреля 2018, 02:16
modx.pro
96
7 643
+41

msProductOptions отображаются незаполненные поля опции товара minishop2

MODX Revolution 2.5.7-pl
Вывожу карточку товара minishop2, при этом отображаются пустые опции.
Это началось после обновления до minishop2 версия 2.4.12-pl
Раньше все было нормально, пустые опции не выводились.
Вывожу так:
[[msProductOptions?
&tpl=`rnProductOptions`
&ignoreOptions=`opt1, opt2, ...`
]]
tpl rnProductOptions:
{foreach $options as $option}
<tr>
  <td>
	{$option.caption}:
  </td>
  <td>
	{if $option.value is array}
	{$option.value | join : ', '}
	{else}
	{$option.value}
	{/if}
  </td>
</tr>
{/foreach}
Помогите, пожалуйста, кто знает как исправить ситуацию.
Solomon
16 марта 2018, 13:15
modx.pro
3
2 098
0

Gallery как ТВ

Всем привет!

Помню уже давно возникал вопрос, как вывести превью фотографий для TV Gallery.
В Интернете есть готовое решение, но нет готового пакета (вроде бы).
Поэтому я решила исправить данный пробел.
тут лежит мой fork https://github.com/wax100/Gallery
а тут — собранный пакет, но версия там 1.5.3 https://yadi.sk/d/kkRsf37r3SCnGS
Может стоит в настройках вручную указать последнюю версию 1.7.0?
Ставить лучше после удаления Gallery (не проверяла как встанет на уже установленную).
В общем, пробуйте и пишите комменты
Инструкция.
Создать ТВ и выбрать там galleryalbumview
Пользоваться)
PS отправила автору пулреквест, надеюсь все верно
yani
08 февраля 2018, 11:08
modx.pro
8
3 253
+6

Вывод коллекций в коллекциях

Всем привет!

Не так давно встала задача, чтобы в админке ресурс с типом Collections мог выводить дочерние ресурсы с таким же типом Collections. Поискал в сети наткнулся на статью https://modx.pro/help/10929/, где описывалась похожая задача, но решения никто не подсказал.

Мое решение не претендует на совершенство и при обновлении компонента скорее всего слетит, но поставленную задачу решает сполна.

И так решение:
В файле core/components/collections/processors/mgr/resource/getlist.class.php ищем строку 325
'class_key:!=' => 'CollectionContainer',
и комментируем.

Вот такое короткое решение, которое сэкономило кучу времени.

Спасибо за внимание!
Артем
10 января 2018, 16:50
modx.pro
8
2 206
+6

Tickets сортировка по "форумному принципу"

Всех с наступающем ребятки! Совсем недавно была довольно интересная задачка, нужно было отсортировать последние тикеты по форумному принципу, т.е. вверх поднимается последний опубликованный тикет, либо тикет, в котором последний раз оставляли комментарии. Не нашел в сообществе упоминания чтобы кто-то публиковал как это сделать, по этому решил опубликовать.
Принцип довольно прост, к обычной таблице тикетов подключается таблица комментариев из которой выбирается дата последнего коммента и формируется переменная comment_date_sort. Если тикет не имеет комментариев, то в comment_date_sort идет дата публикации тикета.
За наводку спасибо Илье Уткину (выдрал часть его запроса с другого проекта, над которым он работал), под катом только код.
Pavel Zarubin
23 декабря 2017, 22:25
modx.pro
16
2 335
+18

Доп. поля комментариев в админке на редактирование

В функционале Tickets есть JSON поле properties
Которое позволяет получать и выводить дополнительные поля в комментарии.
Но вот в админ-панели они не выводятся, соответственно менеджеру не увидеть и не отредактировать эти поля.
Вопрос.
Как можно вывести эти поля в админ-панели? Замечу, что речь идет о комментариях, а не о тикетах.

UPD
Оставлю на будущее, вдруг понадобится.
1) Создать плагин для регистрации полей (как в документации)
2) /assets/components/tickets/js/mgr/comment/comment.window.js
К getFields добавить поля (сколько надо, по примеру)
{
            xtype: 'textarea',
            fieldLabel: 'Плюсы',
            name: 'goods',
            anchor: '99% -210'
        }
3) /core/components/tickets/processors/mgr/comment/get.class.php
Добавить получение поля
$comment['goods'] = $comment['properties']['goods'];
Сбросить кеш браузера
Максим
21 апреля 2017, 14:28
modx.pro
3
1 460
0

Удаление старых версий пакетов

Многие пользователи знают, что MODX хранит кучу старых версий дополнений, чтобы вы могли откатиться на них в любое время.

Но, это требуется крайне редко, а место пакеты занимают. Их можно удалять вручную, но это довольно утомительно, поэтому я набросал несложный консольный скрипт для автоматического удаления.

Скрипт нужно положить в корневую директорию и запустить. Он выберет все установленные версии, кроме самой последней, и корректно удалит их через родной процессор.

Судя по коду этого процессора, никак повредить системе он не может, потому что деинсталляцию самого пакета не делает, а только удаляет файлы версии. Но, в любом случае, использовать на свой страх и риск!
Василий Наумкин
24 марта 2017, 06:35
modx.pro
40
4 255
+24

Просмотры страниц на Tickets в виджете админки

Попросили меня в предыдущей статье привести свой вариант виджета используя просмотры Tickets, но не вписался в комментарий и написал отдельный топик.



Подумал, что лучше всё-таки использовать pdoResources, чтобы выводило не только тикеты, а любую страницу сайта.

Вот моё готовое решение (нужны установленные pdoTools, Tickets):
Василий Столейков
02 февраля 2017, 10:00
modx.pro
32
5 312
+15

Семантически правильныe Breadcrumbs на pdoCrumbs

Верстая очередной проект для замороченных на SEO клиентов, столкнулся с тем, что pdoCrumbs конечно хорош в своей программной логике, но приведенные в документации примеры не совсем верно построены с точки зрения SEO и архитектуры HTML.

Под катом сам код, мои заметки и несколько полезных комментариев.



Николай Савин
27 января 2017, 19:12
modx.pro
49
15 727
+20

Добавление своих полей в форму заказа [обновлено]

При разработке нескольких проектов, возникала необходимость в получении дополнительных данных от покупателей, а полей в miniShop2 ограниченное количество. Поиск готового решения результата не дал, поэтому предлагаю свой вариант.

Решение обновлено, убраны правки исходного кода минишопа, теперь при обновлении ничего не затрется, изменены ключи у полей

Решалось это следующим образом:
1. Добавлялись необходимые поля, для примера взяты тип плательщика, название организации и инн.
2. Добавлялся плагин срабатывающий при сохранении заказа и при подключении js минишопа в админке.
3. Редактировались настройки и записи словарей.

Более подробно далее
Дмитрий Меркурьев
11 октября 2016, 16:38
modx.pro
97
19 157
+11