Ганин Роман
С нами с 29 апреля 2013; Место в рейтинге пользователей: #36Добавление своих полей в форму заказа [обновлено]
При разработке нескольких проектов, возникала необходимость в получении дополнительных данных от покупателей, а полей в miniShop2 ограниченное количество. Поиск готового решения результата не дал, поэтому предлагаю свой вариант.
Решение обновлено, убраны правки исходного кода минишопа, теперь при обновлении ничего не затрется, изменены ключи у полей
Решалось это следующим образом:
1. Добавлялись необходимые поля, для примера взяты тип плательщика, название организации и инн.
2. Добавлялся плагин срабатывающий при сохранении заказа и при подключении js минишопа в админке.
3. Редактировались настройки и записи словарей.
Более подробно далее
Решение обновлено, убраны правки исходного кода минишопа, теперь при обновлении ничего не затрется, изменены ключи у полей
Решалось это следующим образом:
1. Добавлялись необходимые поля, для примера взяты тип плательщика, название организации и инн.
2. Добавлялся плагин срабатывающий при сохранении заказа и при подключении js минишопа в админке.
3. Редактировались настройки и записи словарей.
Более подробно далее
Уведомления с MODx в Telegram
Всем привет. Это не совсем готовое дополнение, скорее инструкция. Может быть кто нибудь разовьёт и соберёт пакет.
У меня небольшой контентный проект и надо было быть оперативно в курсе, что там журналисты публикуют.
Такое извещение можно повесить на заказ обратного звонка, заказ товара или какие нибудь другие события о которых я не подумал :)
У меня небольшой контентный проект и надо было быть оперативно в курсе, что там журналисты публикуют.
Такое извещение можно повесить на заказ обратного звонка, заказ товара или какие нибудь другие события о которых я не подумал :)
Дублирование результатов запроса после leftJoin
Уважаемое сообщество, здравствуйте!
В ходе работы над сниппетом, возвращающим список всех заказов пользователя, возникла проблема:
в результирующем массиве информация о заказе продублирована столько раз, сколько товаров включено в заказ.
Пожалуйста, подскажите, каким образом можно вернуть результат присоединения таблицы товаров к заказу в рамках одного элемента массива?
Ниже код моегокостыля сниппета (код, относящийся к оформлению результатов выборки вырезан, т.к. к вопросу не относится):
Спасибо!
В ходе работы над сниппетом, возвращающим список всех заказов пользователя, возникла проблема:
в результирующем массиве информация о заказе продублирована столько раз, сколько товаров включено в заказ.
Пожалуйста, подскажите, каким образом можно вернуть результат присоединения таблицы товаров к заказу в рамках одного элемента массива?
Ниже код моего
<?php
//
if(!isset($user) || ($user === 0)){
return '<p>Ошибка! Идентификатор пользователя не определён.</p>';
}
//Задаём значения чанков оформления по-умолчанию
if(!isset($tpl)){ $tpl = 'tpl.profile.orders_list.row'; }
if(!isset($tplWrapper) || ($tplWrapper === '')){ $tplWrapper = 'tpl.profile.orders_list.wrapper'; }
if(!isset($idx)){ $idx = 1; }
$q = $modx->newQuery('msOrder');
$q->select(
array
(
'msOrder.id',
'msOrder.num',
'msOrder.createdon',
'msOrder.cost',
'msOrder.status',
'op.product_id',
'op.name'
)
);
$q->where(array('msOrder.user_id' => $user));
$q->sortby('msOrder.id','DESC');
$q->leftJoin('msOrderProduct','op', 'msOrder.id = op.order_id');
$query = $q->prepare();
$query->execute();
$orders = $query->fetchAll(PDO::FETCH_ASSOC);
$res = print_r($orders,1);
echo '<div class="ord-lst-wrap"><pre>';
echo $res;
echo '</pre></div>';
Ниже приведен результат работы сниппета, первые два пункта демонстрируют проблему (в заказе два товара):Array
(
[0] => Array
(
[id] => 9
[num] => 1511/6
[createdon] => 2015-11-17 09:43:21
[cost] => 17849.00
[status] => 1
[product_id] => 5553
[name] => Primavera (гостиная) Комод 1 /Глазово
)
[1] => Array
(
[id] => 9
[num] => 1511/6
[createdon] => 2015-11-17 09:43:21
[cost] => 17849.00
[status] => 1
[product_id] => 5205
[name] => Berlin 1 (гостиная) Шкаф МНЦ КОРПУС (01, Ясень шимо свентлый) /Глазово
)
[2] => Array
(
[id] => 8
[num] => 1511/5
[createdon] => 2015-11-15 09:00:35
[cost] => 7599.00
[status] => 1
[product_id] => 2034
[name] => (закрыт) Стенка Франк МА-190 Дуб кремона/Дуб феррара /Столлайн
)
[3] => Array
(
[id] => 7
[num] => 1511/4
[createdon] => 2015-11-10 03:09:59
[cost] => 26323.00
[status] => 1
[product_id] => 5788
[name] => Акцент орхидея Шкаф-купе 2300х1800х600/ясень шимо темный/шампань/Бумеранг
)
P.S.: самое простое решение — вовсе избежать leftJoin'а таблицы товаров заказа к запросу, а в оформленном выводе возвращать ссылку с id-заказа, которая вела бы на страничку со сниппетом, принимающим на вход id заказа и возвращающего оформленный список товаров этого заказа. Но, может быть, это возможно сделать в одном сниппете (без обработки результирующего массива на php — объединения элементов с одинаковым id и формированием массива товаров)? Куда копать?Спасибо!
Добавление модификаторов Fenom
Задался вопросом добавления своих модификатором в парсер Fenom для modx.
Из этого вышел простой модификатор |days, который правильно склоняет «дней», «дня», «день».
вызывать так:
Из этого вышел простой модификатор |days, который правильно склоняет «дней», «дня», «день».
вызывать так:
{$dayscount|days}
[CurrencyRate] - обновление стоимости по курсу
Вывести все поисковые запросы на сайте
Доброго времени суток. Возник вопрос, каким образом можно вывести популярные поисковые запросы на сайте, что-то вроде облака тегов, но из запросов.
[[!pdoPage?
&class=`mseQuery`
&tpl=``
&showLog=`1`
]]
[[!+page.nav]]
Сборка transport-пакета без установки MODX
Писать свои пакеты для MODX не просто для новичка, да и опытному разработчику иногда не сладко приходится. Но новичок пугается, а опытный разбирается :).
Эта заметка рассказывает о том, как можно написать и собрать пакет компонента для MODX без установки и настройки самого MODX. Уровень выше среднего, так что возможно придется поломать голову в отдельных случаях, но оно того стоит.
За подробностями прошу под кат.
[Slackify] – удобный уведомлятор в Slack для MODX
Привет, друзья.
На прошлой неделе меня однажды утром осенила мысль «а что, если» и не отпускала, пока не доделал все, что хотел. А сделал вот что: написал компонент, который добавляет набор классов, используя которые можно удобно настроить уведомления с сайта на MODX в чат Slack. Особенная фишка пакета — это уже готовые плагины для 404 ошибок, Tickets и miniShop2. Но, по порядку.
В основном репозитории – modx.com/extras/package/slackify
В репозитории modstore.pro – modstore.pro/packages/alerts-mailing/slackify
На прошлой неделе меня однажды утром осенила мысль «а что, если» и не отпускала, пока не доделал все, что хотел. А сделал вот что: написал компонент, который добавляет набор классов, используя которые можно удобно настроить уведомления с сайта на MODX в чат Slack. Особенная фишка пакета — это уже готовые плагины для 404 ошибок, Tickets и miniShop2. Но, по порядку.
В основном репозитории – modx.com/extras/package/slackify
В репозитории modstore.pro – modstore.pro/packages/alerts-mailing/slackify
Tickets - виджет новых комментариев со ссылкой на модерацию
Виджет в админку с количеством новых комментов и возможностью перейти на страницу модерации.
Migx поле - изменение через xpdo из фронтенда
Вечер добрый ну собвственно весь вопрос в названии темы