Ян Сонов

Ян Сонов

С нами с 10 июня 2015; Место в рейтинге пользователей: #670

ZoomX Быстрый старт - разбираем на практике. Часть первая.

Я уже неоднократно писал комплиментарные заметки компоненту ZoomX, никак не останавливаясь на практических моментах. Пришло время закрыть этот гештальт. Давайте разберемся как устроен компонент, как им пользоваться и напишем первое приложение.

Прежде всего скажу, что выделяю в компоненте ZoomX несколько частей, каждая из которых отвечает за решение своей глобальной задачи.

Таких задач я для себя выделил две.
  1. Построение полноценного RESTfull API
  2. Отказ от парсеров MODX и построение шаблонов сайта на основе правильного взрослого шаблонизатора (это ведет, в том числе к ускорению загрузки сайта)
Ко второй задаче мы вернемся когда-нибудь потом, а пока я планирую рассказать и показать на конкретном живом примере принципы построение REST API.
Николай Савин
05 марта 2022, 22:00
modx.pro
4
2 227
+19

Как сдвинуть id заказов minishop2 на определённый интервал?

Добрый день!
Возникла необходимость сдвинуть нумерацию id заказов minishop2 на некоторую величину, положим 100000. Изначально на сайте были заказы с id 55, 56, 57. Сейчас нужно, чтобы заказы нумеровались дальше в таком виде: 100058, 100059, 100060 и тд. Если просто переименовать id заказов в БД 100055, 100056, 100057 во всех таблицах и оформить новый заказ, он оформится просто как 58. Подскажите, пожалуйста, как нумеруются заказы и как можно реализовать нумерацию по-новому?
Спасибо за помощь
Giant Dad
17 декабря 2021, 13:53
modx.pro
1
401
0

modx + webp просто и надежно - автоматически



Недавно нашел удачный плагин для преобразования картинок/рисунков в webp в автоматическом режиме — плагин сам решит поддерживает ли браузер webp и отдаст ему кэш страницы с webp, а если нет (apple) то отдаст обычную страницу… От вас ничего не требуется кроме установки плагина, не из репозитория (на странице все расписано).
Shedko Denis
02 декабря 2021, 22:44
modx.pro
11
5 673
+9

Оптимизации и тонкости работы с БД для больших магазинов на MODX Revolution

Небольшое вступление

Данная статья не претендует на универсальное решение. Всегда пользуйтесь собственной головой. Всё описанное ниже актуально для MODX Revolution 2.8.3-pl, miniShop2 2.9.1-pl.

wfoojjaec
16 сентября 2021, 19:09
modx.pro
30
2 555
+26

Фид товаров для Facebook

Рекламщики дали задачу собрать им фид товаров для импорта в facebook*.

Распишу этапы работ, которые делал, может кому нибудь пригодится. А заодно может кто-то предложит решение лучше и укажет на мои ошибки, которые возможно есть))
Андрей Шевяков
05 июля 2021, 15:21
modx.pro
5
1 310
+6

Localizator. Вывод списка языков



Доброго времени суток, сообщество.

Предлагаю решение для вывода списка языков при использовании дополнения Localizator.

Иван Бочкарев
30 мая 2021, 12:58
modx.pro
4
1 095
+11

[СДЕЛАЙ САМ] Авторизация и регистрация по СМС

Всем привет. Я ни на что не претендую, прекрасно понимаю, что вариантов решения данной задачи много, и мой, наверное, не лучший, но меня попросили написать решение и эту инструкцию, поэтому поехали.
Нам понадобится:
  1. Console
  2. CMP Generator
  3. AjaxForm
  4. miniShop2
!!! ВАЖНО!!! Корзина и оформление заказа должны быть разными страницами.
Артур Шевченко
17 мая 2021, 00:31
modx.pro
5
4 804
+1

[СДЕЛАЙ САМ] DaData. Определение города по ip

Сниппет называется detectRegion. Для работы необходимо зарегистрироваться на сайте DaData и создать системную настройку для ключа api с названием dadata_api_key
<?php
$url = 'https://suggestions.dadata.ru/suggestions/api/4_1/rs/iplocate/address';
$siteIsAvaliable = $modx->runSnippet('isSiteAvailible', array('url' => $url));
if($siteIsAvaliable){
    $token = $modx->getOption('dadata_api_key');
    $ip = $_SERVER['REMOTE_ADDR'];
    $headers = array(
    	'Accept: application/json',
    	'Authorization: Token ' . $token
    );
    $ch = curl_init($url.'?ip='.$ip);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_HEADER, false);
    $result = json_decode(curl_exec($ch),1);
    curl_close($ch);
    $region = $result['location']['data']['city'];
    return  $region;
}else{
    $modx->log(1, 'detectRegion: Не возможно определить регион. Сервис DaData недоступен');
    return false;
}
P.S. isSiteAvailible
Артур Шевченко
09 апреля 2021, 23:28
modx.pro
5
1 096
+3

[УПУЩЕННОЕ] Настраиваем расчёт скидки в 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 178
+3

mfilter2 - вывод значений фильтра в алфавитном порядке, с группировкой по первой букве

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


Евгений Webinmd
26 января 2021, 00:17
modx.pro
18
1 388
+27