Воеводский Михаил

Воеводский Михаил

С нами с 07 февраля 2013; Место в рейтинге пользователей: #18

Разные скидки в зависимости от количества товаров

Описан алгоритм для модуля интернет-магазина minishop2. Для других модулей алгоритм похож, но объекты отличаются.

Задача: сделать автоматический пересчет стоимости товаров в зависимости от общего количества товаров, находящихся в корзине.

$cartArray = $cart->get(); // Массив товаров в корзине
$cartProduct = $cartArray[$key]; // Один товар в корзине

Решение: пройти по всему массиву корзины и изменить цену товаров.
Воеводский Михаил
27 марта 2016, 21:14
modx.pro
32
4 618
+13

[UsersOnline] Пользователи онлайн

Достаточно часто появляются вопросы из серии «Как посмотреть дату последнего появления пользователя?» или «Как посмотреть, кто онлайн?»
Увидев очередной такой вопрос, мы решили создать простенький компонент, который не только ответит на такие вопросы, но и полностью их решит.

Возможности
  • Фиксирует дату крайнего появления каждого пользователя (во всех контекстах)
  • Выводит список пользователей онлайн на сайте
  • Сбрасывает авторизацию отключенных и заблокированных пользователей
Воеводский Михаил
24 марта 2016, 13:36
modx.pro
5
5 738
+12

Странное поведение процессора

Очень странная ситуация с процессором modUserUpdateProcessor — в расширяющем процессоре он подключается стандартным образом, привожу начало процессора:

<?php
require_once MODX_CORE_PATH . 'model/modx/processors/security/user/update.class.php';
class chwUserUpdateProcessor extends modUserUpdateProcessor {
	public $classKey = 'chWorker';
	public $permission = 'chworker_save';
	/**
	 * {@inheritDoc}
	 * @return boolean|string
	 */
	public function initialize() {
		
        	exit ('PERM::::: '.$this->permission. ' ::::::RESULT::::: '.$this->modx->hasPermission($this->permission));
		return parent::initialize();
	}
Вызывается этот процессор тоже вполне обычно:

$response = $this->modx->runProcessor('web/user/update',$userData, array('processors_path' => $this->config['processorsPath']));
Но! chwUserUpdateProcessor как файл вызывается, а отрабатывает modUserUpdateProcessor. Видно это простейшим образом: вместо обрыва выполнения на операторе exit() происходит проверка прав с отрицательным результатом и возвратом json.
Воеводский Михаил
07 августа 2015, 11:43
modx.pro
2 168
0

msCDEK 1.0.0: расчет доставки ТК СДЕК

Описание

msCDEK позволяет рассчитывать стоимость доставки, с учетом веса заказа, для 8 тарифов ТК СДЕК.

На самом деле, поддерживаются все тарифы СДЕК, но для этого необходимо вручную прописывать JSON в свойство properties метода доставки. Подробнее в конце заметки.

Особенности

  1. Учет веса товаров в заказе
  2. Вывод сроков доставки
  3. Сниппет для расчета доставки в карточке товара
  4. Поддержка авторизации
  5. Совместимость с msRussianPost при расчете сроков доставки

Поддерживаемые типы отправлений:

  1. Экспресс-Лайт Склад-Склад
  2. Экспресс-Лайт Склад-Дверь
  3. Экспресс-Лайт Дверь-Склад
  4. Экспресс-Лайт Дверь-Дверь
  5. Посылка Склад-Склад (Требуется авторизация!)
  6. Посылка Склад-Дверь (Требуется авторизация!)
  7. Посылка Дверь-Склад (Требуется авторизация!)
  8. Посылка Дверь-Дверь (Требуется авторизация!)
Помимо стоимости, рассчитывается срок доставки.
Данный компонент возможно использовать вместе с компонентом msRussianPost – они унифицированы.

Воеводский Михаил
29 июля 2015, 07:39
modx.pro
7 335
+7

msRussianPost 1.0.0: расчет доставки Почтой России

Описание

msRussianPost позволяет рассчитывать стоимость доставки, с учетом веса заказа и стоимости всех товаров, для всех основных типов перевозок Почтой России.

В тексте упоминается компонент msCDEK — его описание появится в скором времени.

Особенности

  1. Учет стоимости и веса товаров в заказе
  2. Вывод стоимости доставки с учетом страхования
  3. Вывод сроков доставки
  4. Сниппет для расчета доставки в карточке товара
  5. Кэширование результатов расчета
  6. Совместимость с msCDEK при расчете сроков доставки

Поддерживаемые типы отправлений:

  1. Простая бандероль
  2. Заказная бандероль
  3. Заказная бандероль 1 класс
  4. Ценная бандероль
  5. Ценная посылка
  6. Ценная авиабандероль
  7. Ценная авиапосылка
  8. Ценная бандероль 1 класс
  9. Курьерская доставка EMS
Помимо стоимости, рассчитывается срок доставки.
Данный компонент возможно использовать вместе с компонентом msCDEK – они унифицированы.

Воеводский Михаил
28 июля 2015, 10:55
modx.pro
6 837
+7

Всех с Великим Праздником - Днем Победы!

Именно в этот день 70 лет назад вся страна узнала об окончании четырехлетнего ужаса, унесшего жизни 27 миллионов наших защитников — не только бойцов, но и тружеников тыла.

Это праздник со слезами на глазах. Праздник, забывать о котором категорически нельзя. Никому и никогда. Ведь только тогда этот, самый настоящий, ад не повторится.

Только тогда подвиг настоящих Героев будет жить вечно.

Спасибо Героям — и живущим ныне, и, к сожалению, уже ушедшим от нас, за наши жизни и мирное небо над головой!

С Днем Победы!

Воеводский Михаил
09 мая 2015, 14:29
modx.pro
1 062
+13

Проверка прав доступа в процессорах

Разрабатывая компонент для работы с сотрудниками, столкнулся с вопросом разграничения прав доступа к одним и тем же действиям разными сотрудниками.

Ситуация:
  • есть 4 типа сотрудников — бармен, администратор, старший администратор, директор
  • Ничего не может сделать только бармен, его не рассматриваем.
  • Сотрудники должны иметь возможность менять пароль, личные данные, статус (работает / не работает)
  • Сотрудник может изменить только нижестоящего сотрудника. Администратор не может изменить пароль или статус старшему и директору.
В описанной ситуации простая установка и проверка права «worker_change_status» не подойдет, ибо это право однозначно и не учитывает иерархию.

Подскажите, как правильно решить и настроить проверку прав?
Воеводский Михаил
22 апреля 2015, 08:42
modx.pro
1 093
0

Разные чанки для msProducts

Доброго всем дня!

Есть ли возможность указать сниппету msProducts не один чанк для товаров?

Ситуация проста: в зависимости от шаблона товара выставлять разные чанки оформления товара.
Сейчас для этого используется костыль в виде чанка обертки, в котором фильтрами подставляется уже другой, нужный чанк. Естественно, это замедляет работу.

Существует ли более элегантное решение?
Воеводский Михаил
28 декабря 2014, 17:56
modx.pro
964
0

Новый метод оплаты ms2 аналогично оплате наличными

Добрый день!

Как можно скопировать метод оплаты «Наличными», чтобы добавить еще один метод оплаты без кастомного поведения?

Задача — иметь возможность при создании заказа указать payment = 3 или любое другое число, отличное от единицы.

UPD: все оказалось до безумия просто. Так как я создаю заказ напрямую через
$miniShop2->order->submit($orderProps)
, то достаточно указать
$orderProps['payment']=4
А не работало у меня из-за непроставленной галочки соответствия способа оплаты способу доставки.
Воеводский Михаил
28 августа 2014, 10:30
modx.pro
908
0

Ищу программиста для крупного проекта

Добрый день.

Ищу программиста (-ов) для работы над крупным проектом. Общая глобальная задача — система управления сетью заведений с центральным офисом. Бухгалтерия не включается в систему.

Указанный срок и оплата — стартовые для самого минимального функционала. В целом же, проект займет 3-5 месяцев с соответствующей оплатой. Все цифры и подробности проекта обсуждаются при личном общении.

Воеводский Михаил
12 августа 2014, 10:23
modx.pro
837
0