Skip to content

Instantly share code, notes, and snippets.

View andronex's full-sized avatar

Andrey andronex

View GitHub Profile
@andronex
andronex / action.php
Created February 16, 2024 01:19
Добавление поля в карточку заказа minishop2 с ajax подгрузкой данных
<?php
define('MODX_API_MODE', true);
require_once dirname(dirname(dirname(dirname(__FILE__)))) . '/index.php';
$modx->getService('error','error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->setLogTarget('FILE');
if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {
$modx->sendRedirect($modx->makeUrl($modx->getOption('site_start'),'','','full')); //отфильтровываем все не ajax запросы
}
@andronex
andronex / copy.php
Created April 8, 2016 20:24
Копирование ресурсов MODX
<?php
define('MODX_API_MODE', true);
require_once(dirname(__FILE__).'/index.php');
// Включаем обработку ошибок
$modx->getService('error','error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');
$modx->error->message = null; // Обнуляем переменную
$parent = 15;
@andronex
andronex / yawebmaster.php
Created June 22, 2023 14:53
Яндекс Вебмастер, добавление поддоменов в панель (юзать на MODX)
<?php
if (!isset($modx)) {
define('MODX_API_MODE', true);
while (!isset($modx) && ($i = isset($i) ? --$i : 10)) {
if (($file = dirname(!empty($file) ? dirname($file) : __FILE__) . '/index.php') AND !file_exists($file)) {
continue;
}
require_once $file;
}
if (!is_object($modx)) {
@andronex
andronex / action.php
Last active December 10, 2023 18:20
Интеграция сайта на MODX с сервисом "Долями" от "Тинькофф". Долями — BNPL сервис для оплаты частями покупок в интернет-магазинах партнерах за 4 равных платежа. https://dolyame.ru/
<?php
/*
* API для Долями
* by i.modx@ya.ru / andronex
* интеграция от 20 т.р.
*/
use VKolegov\DolyameAPI\DolyameAPIClient;
use VKolegov\DolyameAPI\Entities\OrderInfo;
use VKolegov\DolyameAPI\Entities\OrderItems;
use VKolegov\DolyameAPI\Entities\RefundResponse;
@andronex
andronex / app.js
Created December 8, 2023 19:29
Веб-хук для Гугл форм с записью данных в таблицу БД и отправкой email уведомления. Интеграция Гугл форм с MODX.
function onFormSubmit(e) {
if( e ) {
values = e.range.getValues();
theNewRow = values[0];
var response = UrlFetchApp.fetch('https://test.ru/assets/components/newsletters/googleform_hook.php?id=1&form=TestForm&data='+theNewRow, {'muteHttpExceptions': true});
Logger.log(response);
}
}
@andronex
andronex / artegifts_config.php
Last active September 11, 2023 17:43
Парсер товаров с сайта поставщика artegifts.by (с группировкой по цветам и размерам) для MODX Revolution от 2.6.5-pl + miniShop2 от 2.4.12-pl / можно запускать как из браузера с offset, так из консоли или по cron
<?php
//настройки для коннекта к artegifts.by
$portobelloUrlTree = 'products_description_xml_cdata001.xml'; //весь каталог товаров (логин/пароль выдаются)
$portobelloUrlStock = 'minskstocks.xml'; //наличие товаров (логин/пароль выдаются)
//настройки для парсинга и установки шаблонов для создаваемых продуктов
$fileCatExist = dirname(__FILE__).'/arte_category_exist.txt'; //сопоставление категорий на сайте (родителей для товаров) с выгрузкой (индивидуально для сайтов)
//настройки для обработки товаров
$tplProduct = 6;//номер шаблона для карточки товара
@andronex
andronex / colours_ceresit.php
Created September 8, 2023 21:49
Парсер цветов Ceresit (Церезит) палитр.
<?php
$tablePrefix = $modx->getOption(xPDO::OPT_TABLE_PREFIX);
$modx->addPackage('colorsproducts', $modx->getOption('core_path') . 'components/colorsproducts/model/', $tablePrefix);
$in = json_decode(file_get_contents('https://www.ceresit-coloursofnature.com/api/facade-designer/categories/6'), true);
print_r($in['data']['colours']);
foreach($in['data']['colours'] as $color){
if($color['images']['thumb']){
$name_img = mb_strtolower(end(explode('/', $color['images']['thumb'])));
@andronex
andronex / 1.php
Last active July 27, 2023 11:33
Региональные поддомены для MODX Revolution с перебросом ресурсов через контексты и изменением нужных полей ресурса для SEO.
<?php
/*
*плагин для переключения контекстов
*/
// Работаем только на фронте
if ($modx->event->name != 'OnHandleRequest' || $modx->context->key == 'mgr') {return;}
// Определяем запрашиваемый хост
$host = $_SERVER['HTTP_HOST'];
@andronex
andronex / api.php
Last active July 24, 2023 11:30
MODX API для Яндекс Маркет плейсмаркета (Я.Маркет для партнёров) (MODX Revolution от 2.7.2-pl + miniShop2 от 2.5.0-pl)
<?php
/*
* API для Я.Маркет плейсмаркета
* by i.modx@ya.ru / andronex
* интеграция от 12 т.р.
*/
//шлём заголовки
header('Access-Control-Allow-Origin: *');
header('Content-type: application/json; charset=utf-8');
<?php
/* сопоставление категорий каталога happygifts с сайтом
* @array id категории happy, название, id аналогичной категории на сайте
*/
$in = [[910,'Аксессуары для красоты','174'],
[2713,'Аромаподарки','14240'],
[3433,'Пробники ароматов','33'],
[701,'Деловые и офисные аксессуары','79'],
[1366,'Дождевики','14621'],
[733,'Ежедневники и бизнес-блокноты','195'],