Skip to content

Instantly share code, notes, and snippets.

Смена прав только у директорий (рекурсивно)
$ find /path/to/base/dir -type d -exec chmod 755 {} +
или
$ chmod 755 $(find /path/to/base/dir -type d)
или
$ chmod 755 `find /path/to/base/dir -type d`
или
$ find /path/to/base/dir -type d -print0 | xargs -0 chmod 755
Смена прав только у файлов (рекурсивно)
@bendasvadim
bendasvadim / gist:8556e34ba880e78d5c502f5e7a5a3986
Last active January 27, 2018 10:14
Смена прав на файлы и папки одной командой
sudo find /path/ -type f -exec chmod 644 {} \; && sudo find /path/ -type d -exec chmod 755 {} \;
@bendasvadim
bendasvadim / gist:a4dffedf840a2b386add0ed824749ecb
Created February 8, 2018 16:06
Собственные модификаторы Fenom
Использоватние
{$variable | snippet}
Сниппет "snippet"
<?php
/** @var modX $modx */
switch ($modx->event->name) {
case 'pdoToolsOnFenomInit':
/** @var Fenom $fenom
Мы получаем переменную $fenom при его первой инициализации и можем вызывать его методы.
@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>
@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 / 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 = '[email protected]';
$user_group = 1; // 1 для Administrator
@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 / 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 / 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 файле до родителей