Алексей
С нами с 25 декабря 2012; Место в рейтинге пользователей: #69TinyMCE + Tickets + выбор главной картинки в TV
Добрый день. Понадобился функционал удобного редактора textarea во фронтенде Tickets, а также сделать возможность пользователю выбрать главную картинку для тикета.
Вот что получилось:
Инструкция под катом
Вот что получилось:
Инструкция под катом
[UPDATE] Разные скидки в зависимости от общей суммы корзины
По следам записи Михаила Воеводского и этого объявления о работе был написан плагин для miniShop2, который позволяет выставить скидку в процентах для всей корзины в зависимости от общей суммы корзины.
Скидка выставляется пошагово: по достижении определённых сумм применяется своя скидка. К примеру, корзина стоит 100кр — скидка 10%, 150кр — 15%. При желании можно выставить сколько угодно шагов и какой угодно процент. Данные указываются массивом в самом начале плагина, вот так:
Скидка выставляется пошагово: по достижении определённых сумм применяется своя скидка. К примеру, корзина стоит 100кр — скидка 10%, 150кр — 15%. При желании можно выставить сколько угодно шагов и какой угодно процент. Данные указываются массивом в самом начале плагина, вот так:
$discounts = array(
'100000' => '10%',
'150000' => '15%',
'200000' => '20%',
);
Часть кода была взята из компонента msPromoCode, в частности для того, чтобы цены на товары в корзине обновлялись динамически при смене кол-ва или удалении товара из корзины.Цели Метрики Ajax Form
Добрый день.
Подскажите как в правильно повесить цели метрики, чтобы цель срабатывала только при заполненных полях (input-ах)?
Спасибо.
Подскажите как в правильно повесить цели метрики, чтобы цель срабатывала только при заполненных полях (input-ах)?
Спасибо.
Redis Cache (xPDORedisCache)
Решил попробовать использовать redis кэш для modx
создал класс xPDORedisCache, особо не заморачивался переписал мемкеш класс, но возникает проблема, идет пустая выдача и в логе:
UPD: 2016-04-10
Решение далось легко, забыл указать сериализацию
$this->redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);
Устанавливается в /core/xpdo/cache/
в настройках cache_handler = cache.xPDORedisCache
Доступные опции:
redis_server — строка с данными для подключения 'localhost:6379'
redis_auth — пароль для аутентификации
redis_db — целое число >= 0
cache_prefix — по желанию, по сути если задать в redis_db разные значения для разных сайтов, будет то, что надо
Код xpdorediscache.class.php ниже:
создал класс xPDORedisCache, особо не заморачивался переписал мемкеш класс, но возникает проблема, идет пустая выдача и в логе:
modExtensionPackage::loadCache() is not a valid static method.
в общем логе:[Fri Apr 08 23:00:11 2016] [error] [client 130.193.37.24] PHP Warning: Invalid argument supplied for foreach() in /var/www/core/model/modx/modcontext.class.php on line 101
[Fri Apr 08 23:00:11 2016] [error] [client 130.193.37.24] PHP Warning: array_merge(): Argument #2 is not an array in /var/www/core/model/modx/modx.class.php on line 2306
[Fri Apr 08 23:00:11 2016] [error] [client 130.193.37.24] PHP Fatal error: Class 'modUser_' not found in /var/www/core/xpdo/xpdo.class.php on line 770
Есть какие идеи куда копать?UPD: 2016-04-10
Решение далось легко, забыл указать сериализацию
$this->redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);
Устанавливается в /core/xpdo/cache/
в настройках cache_handler = cache.xPDORedisCache
Доступные опции:
redis_server — строка с данными для подключения 'localhost:6379'
redis_auth — пароль для аутентификации
redis_db — целое число >= 0
cache_prefix — по желанию, по сути если задать в redis_db разные значения для разных сайтов, будет то, что надо
Код xpdorediscache.class.php ниже:
Фильтрация пользователей с помощью mFilter2
Делая очередной тематический каталог организаций, где каждый пользователь это отдельная организация, которая размещает информацию о себе и своих услугах, я обычно применял классическое решение, когда при регистрации пользователя с помощью Office, создается отдельный ресурс и тогда можно без проблем просматривать карточки (ресурсы) организаций, осуществлять поиск и фильтровать их по разным параметрам используя готовые коробочные решения mSearch2 и mFilter2.
Плюсов тут несколько, в основном это возможность применять классические решения, ничего не допиливая. Но есть и минусы — приходится писать плагины, которые отслеживают изменение профиля пользователя и дублируют эти изменения в ресурс, определенные сложности модерирования, проблемы со скоростью сохранения и вывода информации и т.д.
Я решил заморочиться и сделал решение без дублирования информации, на основе таблицы пользователей.
Плюсов тут несколько, в основном это возможность применять классические решения, ничего не допиливая. Но есть и минусы — приходится писать плагины, которые отслеживают изменение профиля пользователя и дублируют эти изменения в ресурс, определенные сложности модерирования, проблемы со скоростью сохранения и вывода информации и т.д.
Я решил заморочиться и сделал решение без дублирования информации, на основе таблицы пользователей.
Разные скидки в зависимости от количества товаров
Описан алгоритм для модуля интернет-магазина minishop2. Для других модулей алгоритм похож, но объекты отличаются.
Задача: сделать автоматический пересчет стоимости товаров в зависимости от общего количества товаров, находящихся в корзине.
Решение: пройти по всему массиву корзины и изменить цену товаров.
Задача: сделать автоматический пересчет стоимости товаров в зависимости от общего количества товаров, находящихся в корзине.
$cartArray = $cart->get(); // Массив товаров в корзине
$cartProduct = $cartArray[$key]; // Один товар в корзине
Решение: пройти по всему массиву корзины и изменить цену товаров.
Рендер изображений <textarea> в Tickets
Озадачился вопросом, визуализации изображения в при создании тикета.
Пример:
Хочу спросить, может уже кто-нибудь тоже думал над этим и уже есть техническая реализация?
Нашел рабочий пример на sfiddle.net но как это реализовать в Tickets? Есть еще рабочие примеры
Я так полагаю, нужно добавить функцию в файле assets/components/tickets/js/web/files.js
Поделитесь, у кого какие мысли, еще раз повторюсь, может кто-то уже решил этот вопрос?
Плюсы:
1. Сразу видно изображение (понятна последовательность, если изображений много)
2. Смотрится аккуратней (код скрыт)
3. Нет кода, меньше ошибок при создании тикета
4. Можно убрать кнопку предпросмотра
Пример:
Хочу спросить, может уже кто-нибудь тоже думал над этим и уже есть техническая реализация?
Нашел рабочий пример на sfiddle.net но как это реализовать в Tickets? Есть еще рабочие примеры
Я так полагаю, нужно добавить функцию в файле assets/components/tickets/js/web/files.js
Поделитесь, у кого какие мысли, еще раз повторюсь, может кто-то уже решил этот вопрос?
Плюсы:
1. Сразу видно изображение (понятна последовательность, если изображений много)
2. Смотрится аккуратней (код скрыт)
3. Нет кода, меньше ошибок при создании тикета
4. Можно убрать кнопку предпросмотра
mfilter2 вывести особые товары первыми(РЕШЕНО)
Всем привет возникла необходимость вывести товары у которых есть чекбокс «особый» первыми при любом параметре фильтра, т.е выбираем категорию и если сортировка по умолчанию по цене, то сначала идут те товары которые особые вне зависимости от цены, а потом все остальные уже по цене. Если нет в категории особых, то тогда все выводилось бы в штатном режиме.
Подключаем Ecommerce в Яндекс.Метрике
Всем привет. На форуме куча полезной информации по разработке магазинов. Я же в свою очередь хочу рассказать про настройку аналитики.
Итак мы будем передавать информацию из магазина miniShop в Яндекс.Метрику для того, чтобы в полном объёме пользоваться отчётами Электронной коммерции.
Итак мы будем передавать информацию из магазина miniShop в Яндекс.Метрику для того, чтобы в полном объёме пользоваться отчётами Электронной коммерции.