Skip to content

Instantly share code, notes, and snippets.

@ig0r74
ig0r74 / ChangeTemplate.php
Created October 9, 2016 18:26
Плагин для автоматического назначения шаблона дочерним ресурсам
<?php
/**
* =========================
* ChangeTemplate
* =========================
*
* Plugin for MODX Revolution
* Set which template is inherited by children
* documents of a certain parent document
*
@ig0r74
ig0r74 / mfilter2_more_button.js
Last active May 25, 2023 09:24
MODX mFilter2 одновременное использование стандартной пагинации и подгрузки кнопкой
$('.btn_more_custom').click(function() {
var href = $('.mse2_pagination .page-item.active').next('.page-item').find('.page-link').attr('href');
if (typeof href !== "undefined") {
mSearch2.addPage();
}
});
$(document).on('mse2_load', function(e, data) {
if (typeof $('.mse2_pagination .page-item.active').next('.page-item').next('.page-item').find('.page-link').attr('href') === "undefined") {
$('.btn_more_custom').hide();
@ig0r74
ig0r74 / update_all_products.php
Created December 13, 2018 15:31
MODX MiniShop2 пересохранить все товары процессором
<?php
ini_set('max_execution_time', 0);
ignore_user_abort(true);
$c = 'modResource';
$q = $modx->newQuery($c);
$q->where(array('class_key' => 'msProduct'));
$q->sortby('id');
$q->select(array(
"{$c}.*",
));
@ig0r74
ig0r74 / minishop_vendor_select.php
Created September 15, 2017 20:22
MODX API Выборка товаров MiniShop2 с определенным производителем.
<?php
print '<pre>';
$query = $this->modx->newQuery('msProduct');
$query->setClassAlias('Product');
$query->leftJoin('msProductData','Data', '`Product`.`id` = `Data`.`id`');
$query->select($this->modx->getSelectColumns('msProduct','Product',''));
$query->select($this->modx->getSelectColumns('msProductData','Data','data.'));
$query->where(array(
'`Data`.`vendor`' => 5,
@ig0r74
ig0r74 / groupby_sum.php
Created March 6, 2022 15:28
MODX Revolution newQuery groupby & SUM
<?php
// ********************************* //
/** @var mindbox $mindbox */
$modx->loadClass('modMindbox', MODX_CORE_PATH . 'components/mindbox/model/', true, true);
$mindbox = new modMindbox($modx, []);
if (!$mindbox) {
return 'Could not load modMindbox class!';
}
$q = $modx->newQuery('msOrder', [
@ig0r74
ig0r74 / gist:f7e6dddb1d5fa1b72929d158eba9797c
Last active February 25, 2022 16:23
MODX вычисляем сумму остатков по TV и выводим с нулевым остатком в конце. При этом сохраняется сортировка по menuindex у остальных товаров.
{set $goods = 'msProducts' | snippet : [
'sortby' => '{"null_total_remains":"DESC", "menuindex":"DESC"}',
'tpl' => 'good.category3',
'leftJoin' => [
"remains" => [
"class" => "modTemplateVarResource",
"on" => "msProduct.id = remains.contentid AND remains.tmplvarid IN (29,30,31,32,33,34,52)" // id TV с остатками
],
],
'select' => [
@ig0r74
ig0r74 / plugin.php
Created January 21, 2020 10:48
MODX убрать все type="text/javascript"
<?php
switch ($modx->event->name) {
case 'OnWebPagePrerender':
$output = &$modx->resource->_output; // перехватываем содержимое страницы
$output = str_replace(' type="text/javascript"',"",$output);
break;
}
@ig0r74
ig0r74 / migration.php
Created October 28, 2021 07:06
Laravel migration additional changes
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddRoleIdToUsersTable extends Migration
{
public function up()
{
@ig0r74
ig0r74 / multiple_items.js
Last active June 14, 2021 22:10
Добавление нескольких товаров в корзину MODX miniShop2
$('button#cart_add').click(function(e){ // не забудьте изменить селектор
// Добавляем товары в корзину
var products = [];
$('input[name="price"]:checked').each(function () {
var product = {};
product['id'] = $(this).data('dop');
product['count'] = $(this).parents('.tm-dop').find('input.number-input').val();
products.push(product);
});
// Добавляем услуги в корзину
@ig0r74
ig0r74 / packages.php
Last active June 13, 2021 18:31 — forked from govza/settings.php
Быстрая настройка MODX
<?php
/*
Скрипт надо запускать от юзера - владельца сайта, чтобы созданные файлы пакетов не принадлежали юзеру root
$ sudo -u USERNAME php /var/www/USERNAME/packages.php /var/www/USERNAME/www/
Или от root, а после выставить владельца:
$ php /root/scripts/modx/packages.php /var/www/USERNAME/www/ && /var/www/USERNAME/chmod
Чтобы запустить из веба, просто положите скрипт в корень или куда-нибудь глубже и вызовите по HTTP
*/