Skip to content

Instantly share code, notes, and snippets.

Andrey andronex

Block or report user

Report or block andronex

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@andronex
andronex / postfix.php
Last active Aug 26, 2019
Добавление к title или alt атрибутам HTML тегов произвольного постфикса, например, названия сайта/компании.
View postfix.php
<?php
if ($modx->event->name == "OnWebPagePrerender") {
$output = &$modx->resource->_output;
$postfix = $modx->getOption('title_postfix');
$output = preg_replace('/title="([\s\S]*?)"/ui', 'title="$1 '.$postfix.'"', $output);
$output = str_replace('title=" | Энергоматика', 'title="Энергоматика', $output);
}
return;
@andronex
andronex / changePriceAddToCart.php
Created Jul 13, 2019
Изменение цены в зависимости от выбранных опций товара (miniShop2 + MODX Revolution).
View changePriceAddToCart.php
<?php
switch ($modx->event->name){
case 'msOnBeforeAddToCart':
if (!is_array($options)) $options = json_decode($options, true);
//$modx->log(modX::LOG_LEVEL_ERROR, print_r($cart->get(), true));
//$modx->log(modX::LOG_LEVEL_ERROR, print_r($product->toArray(), true));
if(isset($options['size-price']) && !empty($options['size-price'])){
$tvr = $modx->getObject('modTemplateVarResource', array(
@andronex
andronex / manager.php
Created Jul 13, 2019
Защита ресурсов в админке MODX Revolution от контент-менеджера, которому не разрешено их открывать.
View manager.php
<?php
$eventName = $modx->event->name;
switch($eventName) {
case 'OnDocFormPrerender':
if ($user = $modx->getUser()) {//контент менеджер имеет ID 105 в данном примере
if (($user->get('id')) == 105 && (
($resource->template) == 18
|| ($resource->template) == 3
|| ($resource->template) == 8
|| ($resource->template) == 1
View perenos_tovarov.php
<?php
require(MODX_BASE_PATH.'parser/phpquery-master/phpQuery/phpQuery.php');
$modx->addPackage('easycomm', $modx->getOption('core_path') . 'components/easycomm/model/', 'kr0n0s_');
$modx->loadClass('ecMessage');
// Сколько ресурсов обрабатывать за раз
$step = 1;
// Если процесс уже остановлен, сбрасываем OFFSET
if (!isset($_SESSION['Console']['completed'])) {
$_SESSION['console_offset'] = 0;
@andronex
andronex / index.html
Last active Jul 2, 2019
Добавление ссылок на соц.сети в личном кабинете, реализованном на компоненте Office для MODX Revolution. Интерфейс реализован на ExtJS 6.2.0
View index.html
<!doctype html>
<html lang="ru">
<head>
<title>Тест</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/extjs/6.2.0/classic/theme-crisp-touch/resources/theme-crisp-touch-all.css" type="text/css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/extjs/6.2.0/packages/ux/classic/crisp/resources/ux-all.css" type="text/css">
<!-- include an external JavaScript file -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/extjs/6.2.0/ext-all.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/extjs/6.2.0/classic/locale/locale-ru.js"></script>
<script>
@andronex
andronex / console_dublicate.php
Last active Jun 11, 2019
Копирование товара в miniShop2 с галереей. Плагин на скорую руку. Базовая функция взята из моих же парсеров / импортёров товаров для ИМ на MODX + miniShop2
View console_dublicate.php
<?php
// Сколько ресурсов обрабатывать за раз
$step = 1;
// Если процесс уже остановлен, сбрасываем OFFSET
if (!isset($_SESSION['Console']['completed'])) {
$_SESSION['console_offset'] = 0;
}
$offset = isset($_SESSION['console_offset']) && $_SESSION['console_offset'] ? $_SESSION['console_offset'] : 0;
// Формируем запрос
@andronex
andronex / checkApiKey.php
Created Mar 6, 2019 — forked from webnitros/checkApiKey.php
Проверка сайта на доступ для приложения
View checkApiKey.php
<?php
/**
* Created by Andrey Stepanenko.
* User: webnitros
* Date: 24.01.2019
* Time: 1:00
*/
ini_set('display_errors', 1);
ini_set("max_execution_time", 50);
define('MODX_API_MODE', true);
@andronex
andronex / config.php
Created Feb 12, 2019
Импорт товаров с сайта ipaar-poliv.ru / парсер для добавления / обновления каталога товаров для интернет-магазина на MODX Revolution 2.6.5-pl+ и miniShop2 2.4.10-pl+
View config.php
<?php
require_once(dirname(__FILE__).'/config_main.php');
//настройки для сайтов доноров
$parseripaarURL = array(
'ipaar' => 'http://www.ipaar-poliv.ru/sitemap.xml'
);
@andronex
andronex / preg_replace_callback.php
Created Jan 29, 2019
Замена n-ого значения на что-то отличное от других замен
View preg_replace_callback.php
<?php
if($input){
$count = 0;
if(!function_exists('rep_count')){
function rep_count($matches) {
global $count;
$count++;
if($count == 2){
return '<br><i class="fa fa-whatsapp"></i> ';
@andronex
andronex / cloneResource.php
Created Jan 8, 2019 — forked from sepiariver/cloneResource.php
A Snippet to clone a Resource into multiple, user-defined parent containers in arbitrary contexts
View cloneResource.php
<?php
// get user-defined source document and target parents
$source = intval($modx->getOption('sourceId', $scriptProperties, ''));
$targets = array_map('trim', explode(',', $modx->getOption('targetIds', $scriptProperties, '')));
// to prevent accidents...
$_allowedUsers = explode(',', 'username1,username2');
// check stuff, and if passed then get the source document object
if ( !in_array($modx->user->get('username'), $_allowedUsers) || empty($source) || $source == 0 || !is_array($targets) || empty($targets) ) return;
$sourceDoc = $modx->getObject('modResource', $source);
You can’t perform that action at this time.