Виталий Серый
С нами с 17 января 2013; Место в рейтинге пользователей: #107Tickets сортировка по просмотрам
В сообществе не нашел, оставлю может кому-то по запросу пригодится.
&sortby=`views`
&select=`{"View":"COUNT(DISTINCT View.uid) as views"}`
&leftJoin=`{"View":{"class":"TicketView","alias":"View","on":"Ticket.id=View.parent"}}`
Организация рутины при свежей установке modx.
Хочу поделиться скриптами для организации рутины при свежей установке и настройке сайта на modx, как раз проскочил вопрос в сообществе.
Скрипты можно запустить на свежей установке через консоль сервера, ну или вызывать в браузере страницу, предварительно отредактировав список опций.
По умолчанию все настройки рассчитаны на корень сайта example.com/packages.php
На локальном сервере php5-fpm nginx настроенном по инструкции Bezumkin все работает отлично.
Скрипты можно запустить на свежей установке через консоль сервера, ну или вызывать в браузере страницу, предварительно отредактировав список опций.
По умолчанию все настройки рассчитаны на корень сайта example.com/packages.php
На локальном сервере php5-fpm nginx настроенном по инструкции Bezumkin все работает отлично.
Привязка встроенных объектов к кастомным
В силу ряда причин, мне потребовалось в свой кастомный объект, имеющий свою таблицу в бд и наследующий xPDOSimpleObject, добавить привязку к стандартному объекту MODX. Например, modUser.
Сделать это с помощью aggregates и composites в схеме моего кастомного объекта не получилось (собственно, добавление в схему связи с нативным modx-объектом ни к чему не привело — связи не появилось). Я полагаю, это свзяано с тем, что в схеме modx.mysql.schema.xml свзяи с моим кастомным объектом как не было, так и нет.
Сделать это с помощью aggregates и composites в схеме моего кастомного объекта не получилось (собственно, добавление в схему связи с нативным modx-объектом ни к чему не привело — связи не появилось). Я полагаю, это свзяано с тем, что в схеме modx.mysql.schema.xml свзяи с моим кастомным объектом как не было, так и нет.
TvTable - таблица
Добрый день! Понадобилась мне тут табличка в виде Тв-параметра, в которой можно менять не только кол-во строк, но и столбцов. Поэтому migx не подходит (
В общем, было найдено решение, но как оказалось оно для EVO =(
В итоге взяла его за основу и переписала.
В общем, было найдено решение, но как оказалось оно для EVO =(
В итоге взяла его за основу и переписала.
Динамическая кнопка Купить / В корзине
Появилась необходимость реализовать динамическую кнопку Купить / В корзине.
Может кому-то пригодится.
Спасибо Алексею Наумову, Василию Наумкину за помощь в реализации.
Чанк Купить tplOut:
Чанк В корзине tplIn:
Скрипт (требуется подключенный jQuery)
Сниппет myButton:
Кнопка вызывается таким образом:
Может кому-то пригодится.
Спасибо Алексею Наумову, Василию Наумкину за помощь в реализации.
Чанк Купить tplOut:
<button type="submit" class="btn btn-cart btn-primary" name="ms2_action" value="cart/add">
Купить
</button>
<button type="submit" class="btn btn-checkout btn-success hidden" name="ms2_action" value="cart/add">
В корзине
</button>
Чанк В корзине tplIn:
<button type="submit" class="btn btn-checkout btn-success" name="ms2_action" value="cart/add">
В корзине
</button>
Скрипт (требуется подключенный jQuery)
if (typeof(miniShop2) != 'undefined') {
// кнопки В корзину/Оформить
miniShop2.Callbacks.Cart.add.response.success = function(response) {
miniShop2.Order.getcost();
miniShop2.sendData.$form.find('.btn-cart').addClass('hidden');
miniShop2.sendData.$form.find('.btn-checkout').removeClass('hidden');
};
miniShop2.Callbacks.Cart.remove.response.success = function() {
miniShop2.sendData.$form.find('.btn-cart').removeClass('hidden');
miniShop2.sendData.$form.find('.btn-checkout').addClass('hidden');
};
}
Сниппет myButton:
<?php
// Параметры
$idd = $modx->getOption('idd', $scriptProperties, $modx->resource->id);
$tplIn = $modx->getOption('tplIn', $scriptProperties, 'tplIn'); //Можно писать так: ('tplIn', $scriptProperties, '@INLINE Товар в корзине, кол-во – [[+count]], цена = [[+price]].');
$tplOut = $modx->getOption('tplOut', $scriptProperties, 'tplOut'); // '@INLINE Товара нет в корзине.'
// Классы для работы
$pdo = $modx->getService('pdoTools');
$miniShop2 = $modx->getService('minishop2');
$miniShop2->initialize($modx->context->key, $scriptProperties);
$cart = $miniShop2->cart->get();
// Поехали
$found = false;
foreach($cart as $product) {
if ($product['id'] == $idd) {
$found = $product;
break;
}
}
return $found
? $pdo->getChunk($tplIn, $found)
: $pdo->getChunk($tplOut);
Кнопка вызывается таким образом:
[[!myButton? &idd=`[[+id]]`]]
[update] Общая база товаров для разных контекстов
Очень долго не получалось заставить работать товары minishop2 на других контекстах, с выводом через сниппет нет проблем, а вот с ссылками и корзиной беда.
Использовал sendForward, с ним куча гемороя, но случайно наткнулся на вот это:
Использовал sendForward, с ним куча гемороя, но случайно наткнулся на вот это:
$modx->resource = $modx->getObject('modResource', $id);
$modx->request->prepareResponse();
exit();
Бесплатная доставка если сумма total больше чем ..
Всем привет, подскажите, как можно сделать так чтобы доп. стоимость товара не засчитывалась, в случае если общая стоимость больше чем 15 000?
То если если человек набирает товаров больше чем на 15 к, то доставка бесплатная.
То если если человек набирает товаров больше чем на 15 к, то доставка бесплатная.
Время менять SHA-1 сертификаты
С сегодняшнего дня Google Chrome начал показывать мои SSL сертификаты SHA-1 как небезопасные.
Выглядит это так:
Сайты пока работают, проблем нет, но в будущем браузеры будут ругаться на эти сертификаты как на самоподписанные. Подробности можно прочитать на Хабре, а проверить свои сертификаты вот здесь.
Что же делать, если у вас старый SHA-1?
Выглядит это так:
Сайты пока работают, проблем нет, но в будущем браузеры будут ругаться на эти сертификаты как на самоподписанные. Подробности можно прочитать на Хабре, а проверить свои сертификаты вот здесь.
Что же делать, если у вас старый SHA-1?
Авторизация админа во фронте
Добрый день! Когда то встречал это решение но сейчас не могу. Как сделать так чтобы администратор автоматически авторизовался на сайте когда авторизован в админке. Для авторизации использую office.
Заранее спасибо
Заранее спасибо
Сниппет Declension для склонения слов
Предлагаю вашему вниманию небольшой сниппет для вывода склонения. Работает как фильтр вывода, использовать нужно примерно так:
Как видите, он применяется к любым тегам с числами, а в options нужно указать три формы слова (1 яблоко, 2 яблока и 10 яблок) для русского, или 2 (1 ticket, 2 tickets) для английского.
Для экспериментов можно повызывать сниппет с произвольными числами:
[[+balls]] [[+balls:declension=`балл,балла,баллов`]]
Как видите, он применяется к любым тегам с числами, а в options нужно указать три формы слова (1 яблоко, 2 яблока и 10 яблок) для русского, или 2 (1 ticket, 2 tickets) для английского.
Для экспериментов можно повызывать сниппет с произвольными числами:
15 [[*id:input=`15`:declension=`яблоко,яблока,яблок`]]
Полный код под катом.