Здоров Александр
С нами с 31 октября 2015; Место в рейтинге пользователей: #76Обязательное поле для заполнения в msOrder
Всем привет. Давненько не крутил miniShop2 и забыл как добавить обязательное поле при заказе товара. 2 поля стоят обязательные Имя и e-mail, нужно ещё добавить телефон. В браузере через консоль вижу добавляемый к этим слоям с формами класс required, но в чанке tpl.msOrder.outer я не вижу этих класов, значит они добавляются через яваскрипт. В том же FormIT и AjaxForm можно было id прописать и поле становилось обязательным. Подскажите как добавить обязательное поле?
Вотермарк на изображения в контентной области
Всем привет! Появилась потребность накладывать вотермарки на изображения вставляемые в контентной области. Может кто сталкивался с подобными задачами, посоветуйте как это можно реализовать. Пока нашел выход через MIGx. Но не удобно тем что нужно будет для вызова писать тего MODx — контенты с этим не справятся(((
Крайний случай — спец программами перед загрузкой изображений накладывать на них вотермарки, но хочется все автоматизировать!)))
Крайний случай — спец программами перед загрузкой изображений накладывать на них вотермарки, но хочется все автоматизировать!)))
Соединяем EasyComm и mFilter2
Всем привет, и сразу к делу (кстати пишу первый раз тут, если будут ошибки — исправим).
Довольно таки часто требуется в интернет магазинах или каталогах добавить возможность пользователям писать отзывы о товарах, с этим очень хорошо справляется компонент EasyComm. Но очень часто возникает и смежная задача, слепить EasyComm с mFilter2, а именно сделать сортировку по количеству отзывов или по рейтингу товара. Выкладываю готовое решение.
Добавляем в вызов mFilter2 следующий код:
Довольно таки часто требуется в интернет магазинах или каталогах добавить возможность пользователям писать отзывы о товарах, с этим очень хорошо справляется компонент EasyComm. Но очень часто возникает и смежная задача, слепить EasyComm с mFilter2, а именно сделать сортировку по количеству отзывов или по рейтингу товара. Выкладываю готовое решение.
Добавляем в вызов mFilter2 следующий код:
&loadModels=`easycomm`
&where=`{"class_key":"msProduct"}`
&leftJoin=`{
"ecThread": {
"class": "ecThread",
"on": "msProduct.id = ecThread.resource"
}
}`
&select=`{
"msProduct": "*",
"ecThread": "ecThread.rating_simple AS rating, ecThread.count AS reviews"
}`
Добавление тегов с фронта через форму Tickets
Здравствуйте. Не судите строго, пишу скорее как памятку для себя, но может быть кому пригодится.
Простое решение для добавления тегов с фронта в форму Tickets.
Простое решение для добавления тегов с фронта в форму Tickets.
Бесплатная доставка курьером от определенной суммы
Здравствуйте. Пожалуйста, подскажите как реализовать данный функционал:
например, до 5000 тысяч доставка 300 рублей, от 5000 тысяч – бесплатно?
joxi.ru/zAN5Mxls156329
например, до 5000 тысяч доставка 300 рублей, от 5000 тысяч – бесплатно?
joxi.ru/zAN5Mxls156329
[pdoTools] 2.0.0-beta c шаблонизатором Fenom
Представляю вам новую версию pdoTools со встроенным шаблонизатором Fenom.
Это очередная попытка решить вопрос с очень бедным MODX шаблонизатором, который умеет очень мало. Первая «велосипедная» попытка была представлена здесь, а сейчас всё гораздо серьёзнее.
Если вы не знакомы с Fenom, то советую прочитать вот эту заметку на Хабре, а потом пробежаться по документации на GitHub.
Это очередная попытка решить вопрос с очень бедным MODX шаблонизатором, который умеет очень мало. Первая «велосипедная» попытка была представлена здесь, а сейчас всё гораздо серьёзнее.
Если вы не знакомы с Fenom, то советую прочитать вот эту заметку на Хабре, а потом пробежаться по документации на GitHub.
Возможности
- Включение поддержки Fenom раздельно для каждого сниппета pdoTools.
- Можно использовать плейсхолдеры MODX и теги Fenom одновременно. Но быстрее будет использовать что-то одно.
- Если в чанке нет плейсхолдеров MODX, то парсер MODX не запускается
- Если в чанке нет тегов Fenom, то он тоже не запускается.
- @INLINE чанки работают
Сохранение полей формы в новой версии FormIt 2.2.2
Привет!
Сегодня днем я тут спрашивал как настроить новую версию FormIt так, что бы он сохранял значения формы.
К сожалению, разработчики компонента не отредактировали документацию и было совершенно не понятно как это должно работать.
Сегодня днем я тут спрашивал как настроить новую версию FormIt так, что бы он сохранял значения формы.
К сожалению, разработчики компонента не отредактировали документацию и было совершенно не понятно как это должно работать.
Динамическая кнопка Купить / В корзине
Появилась необходимость реализовать динамическую кнопку Купить / В корзине.
Может кому-то пригодится.
Спасибо Алексею Наумову, Василию Наумкину за помощь в реализации.
Чанк Купить 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]]`]]
Добавление данных в письмо о заказе Minishop
Здравствуйте.
Подскажите пожалуйста, что нужно дописать в чанк tpl.msEmail.new.manager, чтобы в письме о заказе помимо информации о заказанных товарах приходили данные заказчика (телефон, адрес, email).
Это необходимо, чтобы оператор магазина мог обрабатывать заказы без компьютера.
Подскажите пожалуйста, что нужно дописать в чанк tpl.msEmail.new.manager, чтобы в письме о заказе помимо информации о заказанных товарах приходили данные заказчика (телефон, адрес, email).
Это необходимо, чтобы оператор магазина мог обрабатывать заказы без компьютера.