Олег Захаров

Олег Захаров

С нами с 14 октября 2017; Место в рейтинге пользователей: #134

Quickstart Buttons - виджет кнопок быстрого доступа

Как говорится, по просьбам трудящихся, в этой мини статье подробнее расскажу о таком виджете как Quickstart Buttons


Евгений Webinmd
08 апреля 2022, 11:49
modx.pro
3
1 441
+11

SummerFloors - редактируемые планы помещений

Понадобилось сделать svg карту склада. Директор оплатил создание компонента с визуальным редактором полигонов. К счастью, нашел компонент https://github.com/summerstyle/summer, который идеально подошел в качестве основы редактора.

Александр Туниеков
25 марта 2022, 15:32
modx.pro
2
1 346
+6

RealMessenger v2 - компонент для обмена личными сообщениями

Новая версия RealMessenger -компонент для обмена личными сообщениями.
Теперь gtsNotify, требующийся для него, работает через comet-server.ru. Также добавлены смайлики и онлайн-офлайн статус, и доработана верстка.

До скайпа далеко, но реализован минимальный набор мессенджера.
Александр Туниеков
17 марта 2022, 14:25
modx.pro
2
1 014
+8

Небольшая интеграция miniShop2 с сервисом iiko

Добрый день.
В этой статье будет затронута тема минимальной интеграции магазина miniShop2 с специализированным сервисом для кафе/ресторанов iiko. Интеграция это пожалуй громкое слово, так как расскажу только о передаче заказов в систему, а не полная синхронизация номенклатуры и заказчиков.

Евгений Webinmd
19 января 2022, 00:14
modx.pro
5
1 872
+5

CronTabManager + PHPunit (Автоматические тесты)

Всем привет.
Недавно занимался возможность интеграции PHPunit тестов со своим компонентом CrontabManager.

Сегодня удалось завершить эту разработку.
Теперь CronTabManager умеет запускать PHPunit тесты из коробки.

После установки CronTabManager как обычно создает директорию с котроллерами:
core/scheduler/Controllers/
Сейчас по дефолту добавлен контроллер demophpunit.php
core/scheduler/Controllers/demophpunit.php
Который как раз и показывает как запустить PHPunit тест.

UPD: 22.03.2020: Интеграция PHPUnit в PHPStrom с помощью компонента CronTabManager
Андрей Степаненко
21 марта 2021, 16:04
modx.pro
2
1 147
+4

[YandexMarket2] выгрузка товаров в Яндекс Маркет и не только

               [ купить дополнение в modstore ]
Компонент YandexMarket2Всем привет!
Уже очень давно обещал обновить компонент для выгрузки в Яндекс Маркет. И вот, месяцы спустя обещанных сроков, наконец, готов показать что получилось :)

Возможно, вы уже пользовались компонентом msYmarket, который достался мне от @Воеводский Михаил
Глобально я ничего не менял, но изменения напрашивались.
Если же не пользовались — то это компонент с простым интерфейсом, деревом категорий, фильтром из нескольких свойств и кнопкой «Поехали», формирующей файл goods.yml.

У старого и нового компонентов из общего только назначение — выгружать товары в файл для Яндекс Маркета.
Хотя и в этом новый компонент отличается, теперь он может формировать много файлов для различных агрегаторов.

Основные преимущества:
  • Работа с несколькими прайс-листами
  • Интерфейс на Vue.js с визуальным добавлением узлов и атрибутов
  • Real-time предпросмотр XML для настроек магазина, категорий и предложения
  • Выгрузка цен с учётом скидок из сторонних компонентов для miniShop2
  • Отслеживание изменения товаров и обновление только связанных файлов
  • Возможность обработать каждое значение через Fenom (для соответствия правилам)
  • И многое другое...
Чтобы лучше понять все возможности YandexMarket2 перейдём сразу к пошаговой настройке выгрузки.
Евгений Шеронов
18 марта 2021, 04:42
modx.pro
3
3 981
+16

[УПУЩЕННОЕ] Настраиваем расчёт скидки в minishop2 версии 2.7.0 и выше

Приветствую, как-то так случилось, что я упустил вот этот релиз, и тут понадобилось мне сделать возможность устанавливать скидку на каждый товар, начал я писать плагин и увидел в объекте корзине два ранее не встречавшихся ключа discount_price и discount_cost, связался с @Иван Бочкарев, он меня и просветил, что расчёт скидки уже внедрён, надо только указать старую цену и всё посчитается. Это круто, но зачастую удобнее указать скидку в % от цены или просто числом, поэтому я написал небольшой плагин, который при сохранении товара рассчитывает новую цену, а старую записывает в поле old_price, если же скидка равна 0 или не указана и поле old_price заполнено, то его содержимое переносится в price, а old_price обнуляем. Уверен, что многие сами могут такой плагин написать, но кому-то возможно захочется сэкономить 5 минут, код под катом.
Артур Шевченко
05 февраля 2021, 23:51
modx.pro
3
1 212
+3

Управления плагинам minishop2 или добавление полей в ms2_products через компонент [msAddField]

Все давно уже познакомились с методом добавления полей через плагины который написал Василий еще в каком то 17 или 2018 году, может раньше

Давно уже написал класс для управления полями через мой компонент который так и не представился миру msCml (синхронизация 1С с характеристикам msOptionsPrice2).

На этих выходных все таки дошли руки и собрал таки компонент msAddField (пока только на github, для самых маленьких))))): там же ссылка на яндекс диск)
Андрей Степаненко
13 октября 2020, 17:11
modx.pro
29
4 162
+22

Lectoria 1st look, как я MODX изучал

Дисклеймер: Эта статья может быть полезной тем, кто только начал знакомство с MODX и ищет вводные темы. Статья носит исключительно информационный характер, упоминания всех ресурсов не преследуют рекламных целей, а не упоминание иных не является намеренным.

Я и MODX.
Забавно, что я оказался в числе бета-тестеров нового проекта Артема Зернова — lectoria.pro (курс: MODX: создание лендинга, быстрое погружение). Последним запрыгнул в группу из пяти человек. Моё знакомство с MODX началось с ютуб канала Артема- OpenModx (те самые двух часовые вебинары).
Dmitry
09 марта 2020, 17:24
modx.pro
6
1 797
+1

AjaxForm + Register

Нигде не нашел решения как сделать регистрацию из стандартного пакета Login через AjaxForm, ниже мое решение может кому пригодиться.

1 Размещаем сниппет AjaxForm где требуется (на странице, в попап окне и т.п.)

[[!AjaxForm?
    &snippet=`custRegister`
    &form=`tpl.register.form`
    &submitVar=`signup-btn`
    &activationResourceId=`9`
    &activationEmailTpl=`lgnActivateEmailTpl`
    &activationEmailSubject=`Thanks for Registering!`
    &usergroups=`Users`
    &usernameField=`email`
    &generatePassword=`1`
    &validate=`nospam:blank,
               fullname:required:minLength=^3^,
               email:required:email`
    &placeholderPrefix=`reg.`
]]
2 Создаем чанк tpl.register.form с формой

<form id="signup-form" action="[[~[[*id]]]]" method="post">
    <input type="hidden" name="nospam">
    <input type="hidden" name="password" value="11111111">
    <input type="text" name="fullname">
    <small class="alert-fullname"></small>
    <input type="email" name="email">
    <small class="alert-email"></small>
    <input type="submit" name="signup-btn" form="signup-form" value="Signup">
</form>
3 Создаем сниппет custRegister

<?php
$result = $modx->runSnippet('Register', $scriptProperties);
foreach($modx->placeholders as $key => $ph){
    if(strpos($key, $scriptProperties[placeholderPrefix].'error.') === 0) $placeholders[$key] = $ph;
}
if($modx->getPlaceholder($scriptProperties[placeholderPrefix].'validation_error')) return $AjaxForm->error('Form has errors', array('error' => $placeholders));
else return $AjaxForm->success('Form is valid');
4 На странице с формой добавляем скрипт, который заполнит алерты или сообщит об успехе или еще все что угодно

<script>
    $(document).on('af_complete', function(event, response){
        $.each(response.data.error, function(index, value){$(response.form).find('.alert-' + index.split(".").pop()).html(value);});
        response.message='';//jGrowl - off
    });
</script>
Вот и всё!
Рейтинга для размещения в разделе Решения не хватило, поэтому публикую здесь.
Greza
14 января 2020, 17:21
modx.pro
12
2 417
+2