Андрей Шевяков
С нами с 28 сентября 2016; Место в рейтинге пользователей: #108[DoubleCheck] - Поиск и исправление дублей
И снова всем привет! Эта заметка будет еще короче предыдущей :). В общем все мы знаем и по своему боремся с проблемой после парсинга и/или импорта из говноисточников дублей товаров, компонент ищет дубли по названию товаров (pagetitle) и удаляет эти дубли. Но не просто удаляет, первому вхождению он дает все виртуальные категории удаленных товаров (проще говоря отмечает категории на вкладке товара «Категории»).
[msPromoCode2] Кейс. Установка промо-кода программно при входе на сайт
Мало кто знает, что msPromoCode2 можно использовать и как компонент для скидок на товары, без обязательного ввода промо-кода юзером. Всего лишь нужно написать маленький плагин, взаимодействующий с программным API. В этом посте предлагаю данный кейс.
К сожалению, никак не успеваю пополнить раздел API, пусть этот пост станет началом!
Плюс и минус в каунте корзины MS2
Досточно простой вопрос, который мучает начинающих разработчиков. Решил поделиться решением, как сделать кнопки плюс и минус в корзине MS2. Что бы все было «по-фуншую»
Начнем c разметки. Я показываю на страндартной теме MS2. Вносим правки в чанк tpl.msCart
Начнем c разметки. Я показываю на страндартной теме MS2. Вносим правки в чанк tpl.msCart
...
<td class="count">
<form method="post" class="ms2_form" role="form">
<input type="hidden" name="key" value="{$product.key}"/>
<div class="form-group">
<div class="input-group input-group-sm qty">
<span class="input-group-prepend">
<span class="input-group-text minus input_count_action">-</span>
</span>
<input type="number" name="count" value="{$product.count}" class="form-control"/>
<span class="input-group-append">
<span class="input-group-text plus input_count_action">+</span>
<span class="input-group-text">{'ms2_frontend_count_unit' | lexicon}</span>
</span>
</div>
<button class="btn btn-sm" type="submit" name="ms2_action" value="cart/change">
↻</button>
</div>
</form>
</td>
...
Formit/AjaxForm
Добрый вечер, подскажите.
Есть стандартная форма на ajax с прикреплением файла
Вопрос в том что нужно сделать что бы прикрепить файл можно было только с определенным расширением? Например только картинки: *.jpg,*.png,
Есть стандартная форма на ajax с прикреплением файла
<label for="contact_attachment">Прикрепить файл </label>
<input type="file" name="contact_attachment" value="[[!+fi.contact_attachment]]" />
все работает хорошо, все приходит.Вопрос в том что нужно сделать что бы прикрепить файл можно было только с определенным расширением? Например только картинки: *.jpg,*.png,
Как можно быстро удалить несколько десятков тысяч товаров?
Нужно перезалить товары магазина, а для этого нужно очистить предыдущие товары в категориях от существующих, но при попытке удалить категорию вместе с товарами ничего не происходит и через batcher по 20 товаров несколько десятков тысяч нет смысла удалять.
Можно ли быстро удалить все товары на сайте без переустановки modx?
Можно ли быстро удалить все товары на сайте без переустановки modx?
Как добавить JS скрипт ниже скрипта MS2 default.js
Подскажите пожалуйста.
Мне нужно вставить свой скрипт ниже script type=«text/javascript» src="/assets/components/minishop2/js/web/default.js?v=d62e73368c">
Как это сделать.
Мне нужно вставить свой скрипт ниже script type=«text/javascript» src="/assets/components/minishop2/js/web/default.js?v=d62e73368c">
Как это сделать.
Как добавить поле в MS2 опции msoption
Итак после не удачного опыта во вкладке «Производитель товаров» решил попробовать разобраться во вкладке «Опции» и как говориться первый блин комом.
1. Добавим плагин для того что бы подключить наш файлик ExtJS (у меня их много поэтому я предлагаю такую схему.
1. Добавим плагин для того что бы подключить наш файлик ExtJS (у меня их много поэтому я предлагаю такую схему.
<?php
switch ($modx->event->name) {
case 'msOnManagerCustomCssJs':
switch ($page) {
case 'orders':
$modx->controller->addLastJavascript(MODX_ASSETS_URL . 'components/minishop2/custom/addjsms2.js');
break;
case 'settings':
$modx->controller->addLastJavascript(MODX_ASSETS_URL . 'components/minishop2/custom/addjsms2vendor.js');
$modx->controller->addLastJavascript(MODX_ASSETS_URL . 'components/minishop2/custom/addms2option.js');
break;
}
break;
}
Далее создадим данную дирректорию и наследуем нашу форму Как добавить поле заказа в MS2
Здравствуйте.
Хотел поделиться способом, как добавить новое поля заказа MS2. После чтения статьи от Николая (спасибо ему за статью) понял, что это мой путь и нужно сделать все по аналогии, так как задачи очень схожие.
Внимание! Если вы захотите попробовать решение. Сначала проверьте на тестовом проекте, а после тестирования делайте на боевом проекте. Помня что Бекап это наше все
Задачу поставим следующую. Давайте создадим поле «Адрес» как общее поле что бы клиент мог вписать весь адрес полностью (Улица, дом, подъезд этаж и т.д).
Что нужно для этого!
Хотел поделиться способом, как добавить новое поля заказа MS2. После чтения статьи от Николая (спасибо ему за статью) понял, что это мой путь и нужно сделать все по аналогии, так как задачи очень схожие.
Внимание! Если вы захотите попробовать решение. Сначала проверьте на тестовом проекте, а после тестирования делайте на боевом проекте. Помня что Бекап это наше все
Задачу поставим следующую. Давайте создадим поле «Адрес» как общее поле что бы клиент мог вписать весь адрес полностью (Улица, дом, подъезд этаж и т.д).
Что нужно для этого!
AnotherPages. Виртуальные страницы для СЕОшников и не только.
[xParser] 1.8.0 Вспомогательный Node JS демон или ускоряем парсинг в 27 раз!
Встала задача ускорить, насколько это возможно, работу парсера, т.к. у клиента отработка задания на парсинг 7к ресурсов длилась в течение ~2-3 суток!
Первым делом я подумал, что проблема таится в получении данных со стороннего ресурса. 7 тысяч запросов к стороннему ресурсу только за текстовой информацией, а ещё у каждой записи по 5 картинок, в общей сложности получается 42к запросов к стороннему ресурсу.
Если в среднем запрос длится по 1 секунде, то получается 42 тысячи секунд, что эквивалентно 11 часам и ещё 40 минутам! А ведь ресурс ещё нужно сохранить, на что в среднем уходит по 1-2 секунды. Это ещё +22 часа работы. Итого ~34 часа на отработку задания на парсинг 7к ресурсов, в лучшем случае. Мда… не дело!