Skip to content

Instantly share code, notes, and snippets.

@bendasvadim
bendasvadim / YMLexport2.php
Created December 17, 2015 07:22
YML export for miniShop2
<?php
$siteName = $modx->getOption('siteName', $scriptProperties, $modx->getOption('site_name')); // Имя сайта
$companyName = $modx->getOption('companyName', $scriptProperties, $modx->getOption('site_name')); // Компания
$bid = $modx->getOption('bid', $scriptProperties, 10); // Цена за клик
$siteUrl = $modx->makeUrl($modx->getOption('site_start'), '', '', 'full'); // Ссылка на главную страницу сайта
$descTpl = strip_tags($modx->getOption('descTpl', $scriptProperties, '[[+description]]')); // Шаблон для описания товара, без html
$paramCurrency = $modx->getOption('paramCurrency', $scriptProperties, 'RUR'); // Валюта
$paramDelivery = $modx->getOption('paramDelivery', $scriptProperties, true); // Доставка, по умолчанию - да. Можно указать имя параметра.
//////////////////////////////////////////////////////////////////////////////
/** v.1.1.0 -- */
msfavorites = {
options: {
selector: '.msfavorites',
add: '.msfavorites-add',
remove: '.msfavorites-remove',
go: '.msfavorites-go',
total: '.msfavorites-total',
element: '.ms2_product',
<?php
switch ($modx->event->name) {
case 'OnManagerPageBeforeRender':
$msoptionscolor = $modx->getService('msoptionscolor', 'msoptionscolor', $modx->getOption('msoptionscolor_core_path', null, $modx->getOption('core_path') . 'components/msoptionscolor/') . 'model/msoptionscolor/');
if (!($msoptionscolor instanceof msoptionscolor)) {
return '';
}
if (!$config = $controller->config) {
return '';
// Функция сортировки товаров
function sortCatalog(products, section, reverse = false) {
// Переменные
var arProductsList = [];
var strHtml = '';
// Переделываем в массив
products.each(function (e) {
arProductsList.push(products[e]);
});
@bendasvadim
bendasvadim / sum_input
Created May 31, 2018 13:34 — forked from krasnikovdev/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 / Вывод количества товаров в категории.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 / 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 / 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 / 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 / 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();