Андрей Шевяков
С нами с 28 сентября 2016; Место в рейтинге пользователей: #64PdoPage без jQuery
            Давно делал костылями пагинацию без jQuery
недавно дошли руки поковырять PdoPage
Скажу сразу в скрипте могут быть баги
У меня с ресурсами работает отлично
        
        
        
        
    недавно дошли руки поковырять PdoPage
Скажу сразу в скрипте могут быть баги
У меня с ресурсами работает отлично
MODX HTML Cache Plugin
            Плагин для MODX, который сохраняет сгенерированные страницы в HTML-файлы и отдает их напрямую без парсинга MODX.
Это позволяет значительно ускорить работу сайта на фронтенде.
ЗЫ: Делался плагин в основном для статики и лендингов!!! (Если в шаблоне есть динамические данные (например, корзина, личный кабинет), лучше исключить его из кэширования.)
Файлы сохраняются в директории:
        
        
        
    Это позволяет значительно ускорить работу сайта на фронтенде.
ЗЫ: Делался плагин в основном для статики и лендингов!!! (Если в шаблоне есть динамические данные (например, корзина, личный кабинет), лучше исключить его из кэширования.)
Файлы сохраняются в директории:
core/cache/html_pages/{template_id}/Имя файла формируется так: {resource_id}_{md5(uri)}.html        Compare - сравнение товаров MODX 2 + miniShop2
            Привет!
Сегодня выложил в github свою наработку с одного из сайтов — дополнение под названием Compare, которое умеет сравнивать товары.

        
        
        
        
    Сегодня выложил в github свою наработку с одного из сайтов — дополнение под названием Compare, которое умеет сравнивать товары.

eCommSender - отправка данных электронной коммерции
            Приветствую! Представляю вашему вниманию компонент для отправки событий электронной коммерции в Яндекс Метрику и не только.         
        
        
        
    Авто обновление индекса mSeach2 через cron
            Может кому пригодится крон для массового обновления индексов #msearch2 #cron 
Инструкция:
— создаем фай в корне msearch2_cron.php содержимое кода ниже.
— запуск к примеру curl www.ru/msearch2_cron.php
        
        
        
    Инструкция:
— создаем фай в корне msearch2_cron.php содержимое кода ниже.
— запуск к примеру curl www.ru/msearch2_cron.php
<?php
// Отключение буферизации
ignore_user_abort(true);
set_time_limit(0);
ob_implicit_flush(true);
ob_end_flush();
header('Content-Type: text/html; charset=utf-8');
echo '<pre>';
ob_flush();
flush();
define('MODX_API_MODE', true);
require 'index.php';
/** @var modX $modx */
$modx->getService('error', 'error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_FATAL);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');
/** @var modUser $adminObj */
$adminObj = $modx->getObject('modUser', ['sudo' => 1]);
$modx->user = $adminObj;
$offset = 0;
while (true) {
    /** @var modProcessorResponse $response */
    $response = $modx->runProcessor('mgr/index/create', [
        'limit' => 1000,
        'offset' => $offset,
    ], [
        'processors_path' => MODX_CORE_PATH . 'components/msearch2/processors/'
    ]);
    if ($response->isError()) {
        echo "Ошибка: " . $response->getMessage() . "\n";
        ob_flush();
        flush();
        break;
    }
    $data = $response->getObject();
    if ($data['offset'] >= 1) {
        echo "Индексировано: {$data['offset']}\n";
        ob_flush();
        flush();
    }
    // Если offset == 0 → завершаем
    if ($data['offset'] === 0) {
        echo "Получен нулевой сдвиг. Индексация остановлена.\n";
        ob_flush();
        flush();
        break;
    }
    // Обновляем offset для следующего шага
    $offset = $data['offset'];
    // Если достигли конца
    if ($offset == 0) {
        echo "Индексация успешно завершена.\n";
        ob_flush();
        flush();
        break;
    }
    //sleep(1); // пауза между порциями (можно убрать)
}        Пакет СДЭК — услуги курьерской службы для Minishop2
            В MiniShop2 долгое время отсутствовал подходящий модуль для интеграции с СДЭК. После многочисленных запросов от клиентов было принято решение доработать существующий модуль. Поскольку времени на создание с нуля не было, за основу взял текущий вариант и переписал его, добавив необходимые функции.
В результате: виджет стал на 90% локальным, что положительно сказалось на скорости загрузки. Добавлена возможность отправки трек-кода клиенту напрямую из заказа, а также отправки самого заказа в СДЭК.
Реализованы новые хотелки:
        
        
        
        
    В результате: виджет стал на 90% локальным, что положительно сказалось на скорости загрузки. Добавлена возможность отправки трек-кода клиенту напрямую из заказа, а также отправки самого заказа в СДЭК.
Реализованы новые хотелки:
- Добавлена возможность интеграции с сервисом dadata.ru.
 - Добавлен фиксированный тариф для ПВЗ и доставки до двери.
 - Добавлена страховка к тарифу ПВЗ.
 - Обновлены иконки ПВЗ на Яндекс.Карте.
 - Кнопки выбора ПВЗ теперь наглядно отображают выбранный пункт выдачи.
 - На Яндекс.Карте показывает выбранный ВПЗ другим цветом (скрин прилагаю)
 - Отправка заказа в СДЭК
 - Обмен статусами доставки СДЭК => Minishop2
 
Проверка на новые файлы с уведомлением в телегу
            Здравствуйте.
Прочитал новый топик о новом нашествии вирусов, которые меняют файлы и что-то там «майнят» создавая нагрузку.
Решил поделиться своим простым скриптом, который контролирует появление новых файлов их изменения, и если таковые будут выявлены, вышлет уведомление в телеграм. Нужно поместить данный скрипт в папку в корне сайта.
Например, detect/file_change_detector.php
Я например, запускаю раз в 6 часов по крону.
P.S.
Пишите, если решение будет востребовано могу создать компонент для MODX
Update:
Компонент создан для MODX2 и MODX3. Загрузил в репозиторий, жду модерации.
        
        
        
        
    Прочитал новый топик о новом нашествии вирусов, которые меняют файлы и что-то там «майнят» создавая нагрузку.
Решил поделиться своим простым скриптом, который контролирует появление новых файлов их изменения, и если таковые будут выявлены, вышлет уведомление в телеграм. Нужно поместить данный скрипт в папку в корне сайта.
Например, detect/file_change_detector.php
Я например, запускаю раз в 6 часов по крону.
P.S.
Пишите, если решение будет востребовано могу создать компонент для MODX
Update:
Компонент создан для MODX2 и MODX3. Загрузил в репозиторий, жду модерации.
DateAgo
            У меня возникли сложно с DateAgo, поэтому решил написать свой снипет, может кому пригодиться.
        
        
        
        
    Отправка цели "Заказ оплачен" в Яндекс Метрику, если пользователь не вернулся на сайт из платёжной системы
            Приветствую, друзья.
Расскажу, как я решил задачу с отправкой цели «Заказ оплачен» в Яндекс.Метрику, точнее статуса Заказа на «Оплачен». Что здесь такого, можете подумать вы? Вот и я так же подумал, но всё оказалось несколько сложнее, и готовых решений на этот счёт тоже нет.
Представьте себе сценарий: покупатель приходит на сайт, оформляет заказ и после оформления переходит на страницу платёжной системы для оплаты заказа. Всё, вроде бы, просто, но как отправить цель в Метрику, если пользователь не вернулся из платежной системы, и просто закрыл страницу? Ведь счётчик Метрики представляет собой JavaScript API, а значит работает в браузере и пользователь должен вернуться обратно на сайт на какую-то страницу, где мы выполним код отправки цели.
Т.к. мы не можем на это повлиять, то решать этот вопрос мы будем с помощью API Метрики, офлайн-конверсий, плагина для MODX, а также нам придется расширять поля заказа.
        
        
        
        
    Расскажу, как я решил задачу с отправкой цели «Заказ оплачен» в Яндекс.Метрику, точнее статуса Заказа на «Оплачен». Что здесь такого, можете подумать вы? Вот и я так же подумал, но всё оказалось несколько сложнее, и готовых решений на этот счёт тоже нет.
Представьте себе сценарий: покупатель приходит на сайт, оформляет заказ и после оформления переходит на страницу платёжной системы для оплаты заказа. Всё, вроде бы, просто, но как отправить цель в Метрику, если пользователь не вернулся из платежной системы, и просто закрыл страницу? Ведь счётчик Метрики представляет собой JavaScript API, а значит работает в браузере и пользователь должен вернуться обратно на сайт на какую-то страницу, где мы выполним код отправки цели.
Т.к. мы не можем на это повлиять, то решать этот вопрос мы будем с помощью API Метрики, офлайн-конверсий, плагина для MODX, а также нам придется расширять поля заказа.