Андрей Шевяков
С нами с 28 сентября 2016; Место в рейтинге пользователей: #45phpthumbon в сниппете php
Здравствуйте! В сниппете нужно обрезать картинки, есть ли возможность применить модификатор phpthumbon в коде php? каков синтаксис?
mFilter2 как убрать параметры ysclid (и другие) из ссылок и как заставить работать постраничную навигацию и кнопку "Показать еще"
Вчера пообещал немного написать про два вопроса, возникающие при работе mFilter:
1. Лишние параметры типа ysclid в постраничной навигации.
2. Как заставить совместно работать и постраничную навигацию и кнопку «Показать еще» при использовании mFilter2 в режиме ajaxMode = button.
Все, что я пишу ниже, не уверен, что относится к последней версии mSearch2. На моем сайте все механизмы работают, есть custom код в компонентах и обновляться я не хочу)))
1. Лишние параметры типа ysclid в постраничной навигации.
2. Как заставить совместно работать и постраничную навигацию и кнопку «Показать еще» при использовании mFilter2 в режиме ajaxMode = button.
Все, что я пишу ниже, не уверен, что относится к последней версии mSearch2. На моем сайте все механизмы работают, есть custom код в компонентах и обновляться я не хочу)))
[PhpConsole] - консоль для выполнения php кода в админке сайта
[PhpConsole] — Компонент позволяет выполнить php код в панели управления сайта.

Не знаю как вам, а мне очень не хватает консоли от Николая Ланца в MODX 3. Которая работала на отдельной странице, была проста и в меру функциональна и этим она и нравилась!
Пакет на на гитхаб
Дополнение в репозитории

Не знаю как вам, а мне очень не хватает консоли от Николая Ланца в MODX 3. Которая работала на отдельной странице, была проста и в меру функциональна и этим она и нравилась!
Пакет на на гитхаб
Дополнение в репозитории
[СДЕЛАЙ САМ] Импорт товаров MiniShop2 из xml. Версия 2.0
Приветствую, коллеги. почти год назад я выложил эту заметку, но за это время пришло понимание, что скрипт мягко говоря «неидеальный»: он работает медленно, импортирует всё подряд, запуск требует ежеминутного выполнения задания по крон. В новой версии всего этого нет, а за идею для улучшения спасибо @crystaldaking.
[ExtSession] - Расширение стандартных сессий для MODX3
[ExtSession] — Компонент расширяет класс modSession, добавляет следующие поля в родную таблицу сессий.
Доступен вывод информации сессии в админке сайта

Можно удалить как отдельную сессию, так и грохнуть все сразу.
Дополнение на гитхаб
Дополнение в репозитории
Подробней под катом
user_bot - указатель на сессию бота
user_id - идентификатор пользователя
user_ip - ip адрес пользователя
user_agent - user-agent пользователядает возможность гибко управлять временем жизни сессии ботов, авторизованных и Не-авторизованных пользователей.Доступен вывод информации сессии в админке сайта

Можно удалить как отдельную сессию, так и грохнуть все сразу.
Дополнение на гитхаб
Дополнение в репозитории
Подробней под катом
msOptionsPrice2 галлерея модификаций
Всем привет, решил в первый раз написать готовое решение. Надеюсь кому-то пригодится.
Была задача вывести различные цвета товаров, решили выбрать msOptionsPrice2 он для этого подходит идеально.
По умолчанию все модификации выводятся текстом, а нам нужно получить не только название, но и изображение модификации.

Была задача вывести различные цвета товаров, решили выбрать msOptionsPrice2 он для этого подходит идеально.
По умолчанию все модификации выводятся текстом, а нам нужно получить не только название, но и изображение модификации.

Сниппет для вывода ресурсов кириллицей в алфавитном порядке с разбивкой на 3 колонки
может кому пригодится немного модифицированный pdoAtoZ
вызов сниппета
сам сниппет
вызов сниппета
$_modx->runSnippet("@FILE snippets/pdoatoz.php", [
'select' => 'id,pagetitle,uri,parent',
'limit' => '0',
'depth' => $cat_depth,
'parents' => $parents,
'tpl' => '@INLINE <a href="{$uri}" class="abc-item-list">{$pagetitle}</a>',
'tplDelimiter' => '</div><div class="col-lg-4 col-md-12 col-sm-12 col-sx-12">',
'ClassRow' => 'row col-12 abc-list pb-5',
'ClassCol' => 'col-lg-4 col-md-12 col-sm-12 col-sx-12',
'ClassIndex' => 'abc-index text-center',
'indexDelimiter' => ' '
])сам сниппет
<?php
/**
* pdoAtoZ
*/
$parents = $modx->getOption('parents', $scriptProperties, 0);
$select = $modx->getOption('select', $scriptProperties, 0);
$includeTVs = $modx->getOption('includeTVs', $scriptProperties, '');
$processTVs = $modx->getOption('processTVs', $scriptProperties, '');
$limit = $modx->getOption('limit', $scriptProperties, '10');
$depth = $modx->getOption('depth', $scriptProperties, '10');
$sortby = $modx->getOption('sortby', $scriptProperties, 'pagetitle');
$itemTpl = $modx->getOption('tpl', $scriptProperties, false);
$ClassRow = $modx->getOption('ClassRow', $scriptProperties, 'row');
$ClassCol = $modx->getOption('ClassCol', $scriptProperties, 'col');
$ClassIndex = $modx->getOption('ClassIndex', $scriptProperties, 'alpha-index');
$tplDelimiter = $modx->getOption('tplDelimiter', $scriptProperties, '');
$indexDelimiter = $modx->getOption('indexDelimiter', $scriptProperties, ' | ');
if (!$itemTpl) return;
$pdo = $modx->getService('pdoFetch');
//Get collection of resources
$items = $pdo->getCollection('modResource', array(
'published' => true,
'deleted' => false
), array(
'parents' => $parents,
'select' => $select,
'includeTVs' => $includeTVs,
'processTVs' => $processTVs,
'limit' => $limit,
'sortby' => $sortby,
'sortdir' => $sortdir,
'depth' => $depth
));
$total=count($items);
$column2=intval($total/3);
$column3=intval($total/3*2);
$counter=0;
//create an array keyed with alphabet letters
$alphas = array();
foreach (range(chr(0xC0),chr(0xDF)) as $v)
$alphas[$v] = iconv('CP1251','UTF-8',$v);
$alphaGroups = array();
foreach($alphas as $key=>$value){
$alphaGroups[$value] = array();
}
// organize the resources by first letter
foreach ($items as $item) {
$firstLetter = mb_strtoupper(mb_substr($item['pagetitle'], 0, 1));
$item['url'] = $modx->makeUrl($item['id']);
// check to see if first letter is a letter, if not don't do anything with it
if (!preg_match('/[А-ЯЁ]/u', $firstLetter)) continue;
array_push($alphaGroups[$firstLetter], $item);
}
$alphaIndex = array();
$output = '';
$id = $modx->getOption('id', $scriptProperties, $modx->resource->get('id'));
$url = $modx->makeUrl($id);
foreach ($alphaGroups as $alpha => $alphaGroup) {
if (count($alphaGroup) == 0) {
} else {
array_push($alphaIndex, '<a href="' . $url . '#' . $alpha . '">' . $alpha . '</a>');
$formattedGroup = '';
// to separate collumns
if ($counter >= $column2 && $col2 != 1 && $col2 != 1) { $formattedGroup .= $tplDelimiter; $col2 = 1;}
if ($counter >= $column3 && $col2 == 1 && $col3 != 1) { $formattedGroup .= $tplDelimiter; $col3 = 1;}
$formattedGroup .= '<h3 id="' . $alpha . '" class="">' . $alpha . '</h3>';
foreach ($alphaGroup as $item) {
$formattedGroup .= $pdo->getChunk($itemTpl, $item);
// uncomment the following line to see the item printed out in json format
//$formattedGroup .= json_encode($item, JSON_PRETTY_PRINT);
}
$counter = $counter + count($alphaGroup);
$output .= $formattedGroup;
}
}
//return $alphaIndex + this list of resources grouped by letter;
return '<div class="'. $ClassIndex .'">' . implode($indexDelimiter, $alphaIndex) . '</div>' . '<div class="' . $ClassRow . '"><div class="' . $ClassCol . '">'. $output .'</div></div>'; YaSmartCaptcha - защитите ваши формы от спама умной капчей от Яндекс
Привет!
Представляю вам небольшой пакет, который упростит интеграцию Яндекс SmartCaptcha на ваш сайт.
Это дополнение позволит использовать SmartCaptcha от Яндекс на вашем сайте на MODX в формах, созданных с использованием сниппета FormIt (ну а также других компонентах, являющимися надстройкой над FormIt, такими как AjaxForm, SendIt).
Представляю вам небольшой пакет, который упростит интеграцию Яндекс SmartCaptcha на ваш сайт.
Это дополнение позволит использовать SmartCaptcha от Яндекс на вашем сайте на MODX в формах, созданных с использованием сниппета FormIt (ну а также других компонентах, являющимися надстройкой над FormIt, такими как AjaxForm, SendIt).
[msAltCart] Динамическая корзина для MiniShop2
Приветствую! Предлагаю вашему вниманию современный вариант полюбившегося многим компонента msMCD. Как водится постарался учесть большинство популярных кейсов использования корзины: миникорзина в шапке, динамическая корзина сбоку, всплывающее окно с последним добавленным товаров, основная корзина. Подробности под катом.
Как в MIGX сделать поле с выбором конфигурации
Приветствую!
Подскажите пожалуйста как сделать в MIGX select поле с выбором конфигурации полей, например, я хочу в зависимости от выбора конфигурации выводить на заполнение тот или иной набор полей, видел где-то статью, не смог найти.
И второй вопрос, как сделать вывод картинки, в меню заполнения полей, я хочу чтобы после выбора конфигурации выводилось превью в виде картинки и следом шли поля, какой тип поля для этого нужно указать? Я думал о поле image с дефолтным значением, но может есть более эстетичные варианты?
Все это я хочу сделать для более удобного наполнения блоками страницы. Например для каждого шаблона будет migx поле, внутри которого будет возможность выбора, какой блок ты хочешь добавить, и соответственно для каждого блока свой набор полей и превью.
Подскажите пожалуйста как сделать в MIGX select поле с выбором конфигурации полей, например, я хочу в зависимости от выбора конфигурации выводить на заполнение тот или иной набор полей, видел где-то статью, не смог найти.
И второй вопрос, как сделать вывод картинки, в меню заполнения полей, я хочу чтобы после выбора конфигурации выводилось превью в виде картинки и следом шли поля, какой тип поля для этого нужно указать? Я думал о поле image с дефолтным значением, но может есть более эстетичные варианты?
Все это я хочу сделать для более удобного наполнения блоками страницы. Например для каждого шаблона будет migx поле, внутри которого будет возможность выбора, какой блок ты хочешь добавить, и соответственно для каждого блока свой набор полей и превью.