Aliaksandr Katlou
С нами с 18 января 2013; Место в рейтинге пользователей: #124Редактирование выделенных элементов
            Продолжаю свои улучшалки. Прошлый мой эксперимент оказался тупиковым. На что-то серьезное времени нет, поэтому маюсь всякой всячиной. Сегодня вот придумалось мне сделать редактирование тегов чанков и сниппетов в ресурсах, шаблонах и других чанках по аналогии с phpStorm (насколько это возможно). Например, в ресурсе выделяем тег [[$chunk]] и нажимаем Ctrl+Enter. В результате открывается немного измененное окно быстрого редактирования этого чанка. То же и со сниппетами. 
        
        
        
        
    
        [Slackify] – удобный уведомлятор в Slack для MODX
            Привет, друзья.

На прошлой неделе меня однажды утром осенила мысль «а что, если» и не отпускала, пока не доделал все, что хотел. А сделал вот что: написал компонент, который добавляет набор классов, используя которые можно удобно настроить уведомления с сайта на MODX в чат Slack. Особенная фишка пакета — это уже готовые плагины для 404 ошибок, Tickets и miniShop2. Но, по порядку.
В основном репозитории – modx.com/extras/package/slackify
В репозитории modstore.pro – modstore.pro/packages/alerts-mailing/slackify
        
        
        
        
    
На прошлой неделе меня однажды утром осенила мысль «а что, если» и не отпускала, пока не доделал все, что хотел. А сделал вот что: написал компонент, который добавляет набор классов, используя которые можно удобно настроить уведомления с сайта на MODX в чат Slack. Особенная фишка пакета — это уже готовые плагины для 404 ошибок, Tickets и miniShop2. Но, по порядку.
В основном репозитории – modx.com/extras/package/slackify
В репозитории modstore.pro – modstore.pro/packages/alerts-mailing/slackify
Проблема с where и sortby в fenom
            Стоит последняя актуальная версия pdoTools.
Делаю все вроде как по инструкции, но в запрос условия where и sortby не добавляются никак. Через showlog не видно.
Пример вызова:
Собственно вопрос: ЧЯДНТ?
        
        
        
    Делаю все вроде как по инструкции, но в запрос условия where и sortby не добавляются никак. Через showlog не видно.
Пример вызова:
{$_modx->runSnippet('!msProducts', [
    'parents' => 3,
    'sortby' => [
        'Data.new' => 'desc',
        'msProduct.editedon' => 'desc'
    ],
    'includeThumbs' => '150x150',
    'where' => [
        'Data.price:>=' => 0
    ],
    'limit' => 4,
    'showLog' => true,
    'tpl' => '@INLINE
		bla-bla-bla
	'
])}Собственно вопрос: ЧЯДНТ?
Вставка рекламы после n-го абзаца
            Здравствуйте, подскажите как можно вставить рекламный блок в теле статьи, например после 2 или 3 абзаца от начала статьи?        
        
        
        
    Fenom + MobileDetect + NGINX + PHP5-FPM = 502 bad gateway
            Здравствуйте.
Столкнулся с такой проблемой. У меня установлен Fenom, MobileDetect. Я разбил в чанке "layout" основную и мобильную версии тегами. Захожу на главную страницу — 502 ошибка. В логах nginx вот такое:
Самое интересное, когда отключаю плагин MobileDetect — всё работает. Помогите, пожалуйста, побороть эту неприятность.
Решение в комментариях.
        
        
        
    Столкнулся с такой проблемой. У меня установлен Fenom, MobileDetect. Я разбил в чанке "layout" основную и мобильную версии тегами. Захожу на главную страницу — 502 ошибка. В логах nginx вот такое:
2015/08/24 13:24:23 [error] 9787#0: *216565 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: *2.**.*20.*9, server: kfm.****.kz, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-kfm2.sock:", host: "kfm.****.kz", referrer: "http://kfm.****.kz/manager/?a=element/template/update&id=1"Пояндексил — пишут, что это из-за ошибки в PHP. Nginx как бы сообщает, что PHP не отдал ему ответ.Самое интересное, когда отключаю плагин MobileDetect — всё работает. Помогите, пожалуйста, побороть эту неприятность.
Решение в комментариях.
[pdoTools] Версия 2.1 - улучшения Fenom
            Привет друзья! Хочу представить вам новую версию pdoTools с улучшениями работы шаблонизатора Fenom.
С другой стороны, я не хочу придумывать очередной псевдоязык команд, типа
        
        
        
    Функциональность vs Безопасность
Я долго думал, как бы разрешить менеджерам запускать чанки и сниппеты, но при этом не пускать их к объектам MODX. Потому что, если включить системную настройку pdotools_fenom_modx, то любой менеджер сможет сделать в чанке вот так:{if $res = $modx->getObject('modResource', 1)}
	$res->remove();
{/if}Нам бы этого не хотелось, правда?С другой стороны, я не хочу придумывать очередной псевдоязык команд, типа
{runSnippet('name', [params => data])}или{'name' [params => data] | snippet}Поэтому я добавил специальную переменную {$_modx}, которая ссылается на небольшой безопасный класс, где есть только нужные менеджерам функции и свойства:- {$_modx->placeholders} — массив с системными плейсхолдерами
 - {$_modx->config} — массив с системными настройками
 - {$_modx->context} — массив (не объект!) с текущим контекстом
 - {$_modx->user} — массив (не объект!) с текущим пользователем
 - {$_modx->resource} — массив (не объект!) с текущим ресурсом
 - {$_modx->lexicon} — служба загрузки лексиконов
 - {$_modx->lexicon()} — функция для вывода строки из лексикона
 - {$_modx->runSnippet()} — запуск сниппета
 - {$_modx->runProcessor()} — запуск процессора
 - {$_modx->getChunk()} — вывод чанка
 - и т.д., смотрите исходник.
 
Fenom и toPlaceholder
            Всем привет. Наконец-то начал осваивать Fenom в pdoTools и столкнулся с такой проблемой. Если есть вот такой вывод: 
Тестил {{$news}}, {$_pls['news']} — не выводит. Вывод pdoResources делаю в шаблоне.
        
        
        
    [[pdoResources?
	&parents=`8`
	&depth=`0`
	&tpl=`tpl.NewsMainBlock.item`
	&limit=`3`
	&sortby=`{"publishedon":"DESC"}`
	&includeContent=`1`
	&toPlaceholder=`news`
]]то, как вывести свой плейсхолдер [[+news]]?Тестил {{$news}}, {$_pls['news']} — не выводит. Вывод pdoResources делаю в шаблоне.
Создание мультисайта на MODX REVO
            Лучше поздно, чем никогда. Как и обещал https://modx.pro/help/5194/ пишу про создание мультисайта на MODX REVO. Выкладываю в блог Готовые решения, т.к. в статье есть чуть-чуть кода.
Смысл всей затеи — упростить поддержку сайтов.
Под поддержкой понимаются любые действия связанные с работой сайта:
— размещение контента
— технические доработки сайта (программирование, верстка)
— консультирование модераторов, сеошников и т.д.
— бэкапы и восстановление информации
Кроме того, для упрощения работы необходимо внедрить стандарты, чтобы упростить рутину. Звучит громко, но на самом деле все просто — по «узким» моментам единожды принимаем какое-то решение и дальше просто поступаем по образцу, чтобы не тратить время на изобретение велосипедов. По принятому решению пишем короткую заметку в Евернот, чтобы потом когда понадобится можно было быстро найти, на чем основывалось решение.
В таких «стандартах» у меня:
— ресайз картинок с примерами кода
— настройки галереи fancybox с примерами кода
— создание файловых архивов
— названия чанков, например почти везде у меня есть чанки HEADER.site1, FOOTER.site1, ASIDE.site1 (в названии используем название контекста).
— и т.д. и т.п.
Т.е. единожды продумываем тонкости и решаем, что будем делать именно так и никак иначе. В дальнейшем это позволит избежать бардака и существенно ускорит процесс переноса существующих сайтов в мультисайт или разработку новых сайтов.
        
        
        
        
    Смысл всей затеи — упростить поддержку сайтов.
Под поддержкой понимаются любые действия связанные с работой сайта:
— размещение контента
— технические доработки сайта (программирование, верстка)
— консультирование модераторов, сеошников и т.д.
— бэкапы и восстановление информации
Кроме того, для упрощения работы необходимо внедрить стандарты, чтобы упростить рутину. Звучит громко, но на самом деле все просто — по «узким» моментам единожды принимаем какое-то решение и дальше просто поступаем по образцу, чтобы не тратить время на изобретение велосипедов. По принятому решению пишем короткую заметку в Евернот, чтобы потом когда понадобится можно было быстро найти, на чем основывалось решение.
В таких «стандартах» у меня:
— ресайз картинок с примерами кода
— настройки галереи fancybox с примерами кода
— создание файловых архивов
— названия чанков, например почти везде у меня есть чанки HEADER.site1, FOOTER.site1, ASIDE.site1 (в названии используем название контекста).
— и т.д. и т.п.
Т.е. единожды продумываем тонкости и решаем, что будем делать именно так и никак иначе. В дальнейшем это позволит избежать бардака и существенно ускорит процесс переноса существующих сайтов в мультисайт или разработку новых сайтов.
Новые возможности miniShop2
            Не так давно на MODX.pro поднимался вопрос о дальнейшем развитии miniShop2. Я от лица Simple Dream взял на себя ответственность координировать действия по внедрению улучшений. Хочу познакомить сообщество с первыми результатами.