Skip to content

Instantly share code, notes, and snippets.

View andronex's full-sized avatar

Andrey andronex

View GitHub Profile
@andronex
andronex / rename.php
Created October 16, 2024 18:10
Массовое переименование таблиц БД MySQL с помощью PHP скрипта версии 7.0+
<?php
$db_server = "localhost"; // hostname MySQL server
$db_username = "cl723w"; // username MySQL server
$db_password = "Wwe"; // password MySQL server
$db_name = "cl7"; // database name
$pattern = "a_"; // search string
$new_pattern = "b_"; // replacement string,
// can be empty
@andronex
andronex / parse-resource.php
Created October 14, 2024 17:10 — forked from joeke/parse-resource.php
MODX Revo: Parse full contents of resource
<?php
/**
* Get full parsed HTML from resource
* (you already need to have the resource object available in $this->resource)
*
* @access public
* @return string $html The parsed html of the resource
*/
public function parseResource() {
@andronex
andronex / cacheClearLocal.php
Created October 9, 2024 14:55
Принудительный сброс кеша у ресурса MODX в момент посещения страницы, если вдруг в кеше старые данные, а в БД новее.
<?php
switch ($modx->event->name) {
case 'OnLoadWebDocument':
// id ресурса
$id = $modx->resource->get('id');
// объект ресурса
$doc = $modx->resource;
// текущий контекст
$mgrCtx = $modx->context->get('key');
@andronex
andronex / app.php
Last active July 5, 2024 15:25
Массовая замена битых эмодзи
<?php
$ress = $modx->getIterator('msProduct', ['class_key' => 'msProduct']);
foreach($ress as $res){
$introtext = $res->get('introtext');
if($introtext){
$introtext = preg_replace('/\?\s{0,}-Хранение/iu', '🏰-Хранение', $introtext );
$introtext = preg_replace('/\?-<\/span><\/span>Хранение/iu', '🏰-</span></span>Хранение', $introtext );
$introtext = preg_replace('/\?\s{0,}️-Развал/iu', '🛠️-Развал', $introtext );
$introtext = preg_replace('/\?-&nbsp;Доставка по/iu', '🚀-&nbsp;Доставка по', $introtext );
@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 / 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 / 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 / action.php
Last active December 10, 2023 18:20
Интеграция сайта на MODX с сервисом "Долями" от "Тинькофф". Долями — BNPL сервис для оплаты частями покупок в интернет-магазинах партнерах за 4 равных платежа. https://dolyame.ru/
<?php
/*
* API для Долями
* by [email protected] / andronex
* интеграция от 20 т.р.
*/
use VKolegov\DolyameAPI\DolyameAPIClient;
use VKolegov\DolyameAPI\Entities\OrderInfo;
use VKolegov\DolyameAPI\Entities\OrderItems;
use VKolegov\DolyameAPI\Entities\RefundResponse;
@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)) {
<?php
/* сопоставление категорий каталога happygifts с сайтом
* @array id категории happy, название, id аналогичной категории на сайте
*/
$in = [[910,'Аксессуары для красоты','174'],
[2713,'Аромаподарки','14240'],
[3433,'Пробники ароматов','33'],
[701,'Деловые и офисные аксессуары','79'],
[1366,'Дождевики','14621'],
[733,'Ежедневники и бизнес-блокноты','195'],