Skip to content

Instantly share code, notes, and snippets.

@bendasvadim
bendasvadim / msTelegramBot.php
Created March 10, 2022 09:29 — forked from TrywaR/msTelegramBot.php
MODX Revo | MiniShop2 | Telegram > Отправка уведомлений в телегу о заказе и статусах
<?php
// msOnCreateOrder
// msOnChangeOrderStatus
switch ($modx->event->name) {
case 'msOnCreateOrder':
// Новый заказ
// $modx->log(xPDO::LOG_LEVEL_ERROR, 'msOnCreateOrder');
$iOrderId = $msOrder->get('id');
$oOrder = $order->get();
@bendasvadim
bendasvadim / taggercustomfilter.class.php
Created June 25, 2021 11:52 — forked from sheronov/taggercustomfilter.class.php
Интеграция компонента Tagger с фильтрами в mFilter2 (компонент mSearch2) - Расширение класса фильтрации через системную настройку mse2_filters_handler_class
<?php
class taggerCustomFilter extends mse2FiltersHandler {
/**
* Retrieves values from Tagger table
*
* @param array $fields
* @param array $ids
*
* @return array
@bendasvadim
bendasvadim / xml_to_minishop2.php
Created June 19, 2020 06:37 — forked from webinmd/xml_to_minishop2.php
Очередной импортёр товаров из XML файла в интернет-магазин на MODX Revolution v.2.4.4-pl + miniShop2 v.2.2.0-pl2
<?php
$tplProduct = 3; //номер шаблона для карточки товара
$tplParent = 2; //номер шаблона для категорий
$tplChildParent = 2; //номер шаблона для подкатегорий
$idParent = 6; //id каталога товаров
$fileProduct = 'product.xml'; //имя файла с товарами
$xpath_expression['pagetitle'] = '//Товары/Номенклатура'; //DOM структура в XML файле до имени
$xpath_expression['article'] = '//Товары/Артикул'; //DOM структура в XML файле до артикула
$xpath_expression['parents'] = '//Товары/Родитель'; //DOM структура в XML файле до родителей
@bendasvadim
bendasvadim / xml_to_minishop2.php
Created June 19, 2020 06:37 — forked from iksecreeet/xml_to_minishop2.php
Очередной импортёр товаров из XML файла в интернет-магазин на MODX Revolution v.2.4.4-pl + miniShop2 v.2.2.0-pl2
<?php
$tplProduct = 3; //номер шаблона для карточки товара
$tplParent = 2; //номер шаблона для категорий
$tplChildParent = 2; //номер шаблона для подкатегорий
$idParent = 6; //id каталога товаров
$fileProduct = 'product.xml'; //имя файла с товарами
$xpath_expression['pagetitle'] = '//Товары/Номенклатура'; //DOM структура в XML файле до имени
$xpath_expression['article'] = '//Товары/Артикул'; //DOM структура в XML файле до артикула
$xpath_expression['parents'] = '//Товары/Родитель'; //DOM структура в XML файле до родителей
@bendasvadim
bendasvadim / LoverCase
Created January 2, 2019 12:30
Плагин для переадресации с url с UpperCase на LoverCase
<?php
/**
* Плагин для переадресации с url с UpperCase на LoverCase
*/
$eventName = $modx->event->name;
switch($eventName) {
case 'OnHandleRequest':
if($modx->context->get('key') != "mgr"){
if(isset($_GET['rewrite-strtolower-url'])) {
@bendasvadim
bendasvadim / Вывод количества товаров в категории.php Вывод количества товаров в категории minishop2 Сниппет получает сумму всех товаров в категории, с учетом мультикатегорий MS2. Можно указать нужную категорию параметром $parent.
<?php
if (empty($parent)) {$parent = $modx->resource->id;}
$pids = array_merge(array($parent), $modx->getChildIds($parent));
$ids = array();
$q = $modx->newQuery('msProduct');
$q->where(array('class_key' => 'msProduct','parent:IN' => $pids,'published' => 1,'deleted' => 0));
$q->select('`msProduct`.`id`');
if ($q->prepare() && $q->stmt->execute()) {
$ids = $q->stmt->fetchAll(PDO::FETCH_COLUMN);
@bendasvadim
bendasvadim / sum_input
Created May 31, 2018 13:34 — forked from krasnikov87/sum_input
check sum input
this.value = sum(this.value);
function sum(str) {
str=str.trim().replace(/[^\d\.]+/gi,"");
var s=str.indexOf(".",str.indexOf("."));
if(s>=0){
str=str.substr(0,s+3);
var whole = str.substr(0,s);
var fractional = str.substr(s+1, s+3).replace(/[^\d]+/gi,"");
str = whole +'.'+ fractional;
}
@bendasvadim
bendasvadim / gist:0906f731a71c370055cd8fcd2896da35
Created March 2, 2018 06:22
Востановление пароля через MODX Api
<?php
define('MODX_API_MODE', true); // Gotta set this one constant.
// Сбрасывает пароль и email существующего пользователя
// и задаёт его группу
$username = 'theusername';
$password = 'newpassword';
$email = 'new@email.com';
$user_group = 1; // 1 для Administrator
@bendasvadim
bendasvadim / gist:fb6196646b43b78f45e0eaee7a05e003
Last active October 24, 2019 04:15
Конфигурация сервера 7.1 NGINX
apt install sudo
sudo apt update
sudo apt install curl
sudo apt install software-properties-common
sudo apt install python-software-properties
sudo apt install language-pack-ru-base
sudo echo "ru_RU.CP1251 CP1251" >>/var/lib/locales/supported.d/ru
sudo locale-gen
sudo locale-gen en_US.UTF-8
export LANG=en_US.UTF-8
@bendasvadim
bendasvadim / dataLayer.push ошибка
Created February 9, 2018 07:33
Решение ошибки dataLayer.push в MODX
Это возникает из за аналитики в шапке
<!— Global site tag (gtag.js) - Google Analytics —>
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-111032207-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-XXXXXXXXX-X');
</script>