Готовые решения

Хватить это терпеть! Или зачем столько чанков в FormIt!?

Привет сообществу!

Небольшая хитрость которая поможет новичкам избавиться от множества чанков/файлов писем с сайта и реализовать их в одном чанке/файле. Кроме этого пару слов о том, что происходит с MODX в конце заметки.

Предисловие:

Пару месяцев назад в чате был небольшой джентльменский спор между Павлом Зарубином и Евгением на тему «Так ли хорош FormIt?». В этом споре, я разместился где-то посередине так как я вижу и плюсы и минусы данного компонента. Эта заметка об одном из минусов, ну и конечно же решение.

Баха Волков
11 февраля 2019, 14:56
modx.pro
29
2 436
+24

Подпираем костылём EXIF

Школьная задачка.
Дано: есть вертикальная фотка в горизонтальном файле размером 2016х1512 и метаданными EXIF, куда её вращать.
Поведение: phpthumb фотку послушно поворачивает, но вот обрезку делает по исходному горизонтальному формату.
Найти: смысл жизни в форме правильно обрезанной фотки.

В исходниках phpthumb и премудростях $this->source_width, $this->source_height я не разобрался, поэтому решил задачу двухколесным другом — поворачиваю исходную фотку согласно EXIF перед тем как она попадет в phpthumb.

tolanych
29 января 2019, 21:25
modx.pro
4
735
+5

Список наиболее покупаемых товаров minishop2

Вчера пришло письмо от работодателя, с просьбой придумать способ, который позволит менеджеру сайта видеть перечень всех приобретенных товаров, а также видеть, сколько раз каждый товар был куплен.
Решением этого стал сниппет mostPopular.php, которым делюсь с вами, хотя уверен, что большинство сделает лучше, но тем не менее — вдруг кому пригодится.
Скачать можно с гитхаб, там всего два файла — сниппет и чанк к нему.
github.com/Alex-Mel/mostBoughtProducts
Александр Мельник
28 января 2019, 09:48
modx.pro
6
717
+7

Fatal error: Uncaught --> Smarty Compiler: Syntax error in template "eval:

Недавно решил обновится до с 2.5.2 до 2.7.0 версии, PHP Version 5.4.45, обновилось все удачно, полез в админку и бац мне вылезло:
Fatal error: Uncaught --> Smarty Compiler: Syntax error in template "eval:<li id="limenu-site" class="top"> <a hre..." on line 141 "});{/literal} ">Завершить все сеансы<span class="description">Завершить все сеансы работы пользователей и произвести принудительный выход из системы всех пользователей.</span>" - Unexpected " MODx.msg.confirm({ title: _('flush_sessions') ,text: _('flush_sessions_confirm') ,url: MODx.config.connector_url ,params: { action: 'security/flush' } ,listeners: { 'success': {fn:function() { location.href = './'; },scope:this} } });", expected one of: LITERALSTART , LITERALEND , LITERAL <-- thrown in .../core/model/smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 141
Ну я пошел гуглить в чем проблема и наткнулся на эту тему, там проблему не решили, но в заголовке стоит «Решено».
vectorserver
23 января 2019, 09:39
modx.pro
1
1 560
0

Вывести товары родителя, кроме открытого

Вывести товары категории, исключив товар, на странице которого находимся:
[[!msProducts?
    &resources=`-[[*id]]`
]]
adminixi
12 января 2019, 23:00
modx.pro
506
-10

Как вернуть старую кнопку "Уничтожить ресурсы" в MODX

Полезно для тех кого не устраивает менеджер для удаления ресурсов, начиная с версии 2.7:
Оказалось довольно просто: создаем плагин returnKilButton
И два события OnManagerPageBeforeRender и OnResourceToolbarLoad

Андрей Степаненко
10 января 2019, 09:37
modx.pro
1
824
+6

Простой(или нет) способ обновить кеш страницы у клиента.

Столкнулся с такой ситуацией: клиент захотел сделать рескин сайта, я всё переверстал, но штука в том, что все картинки закешированы в браузерах у тех, кто уже был на сайте, и если с файлами стилей или яваскриптом я могу сделать style.css?ver=2 с сылкой на стильник, то все картинки во всех шаблонах и чанках так не обновишь.
Погуглив немного я понял, что можно либо шаманить с возвращаемыми хедерами, либо для всех изображений менять урл. Первый вариант не очень, потому что тогда картинки будут вообще всегда заново грузиться, а нам надо только при их реальном изменении. Возможно есть какой-то трюк с Last-modified, но я до него недогуглился.
Тогда я решил сделать простой плагин на событие OnWebPagePrerender, который бы перехватывал страницу перед отправкой пользователю и просто менял все урлы для картинок:
<?php
if ($modx->event->name == 'OnWebPagePrerender') {
    $output = &$modx->resource->_output;
    $output = str_replace('.png',".png?ver=" . $modx->getOption('assets_version'),$output);
    $output = str_replace('.jpg',".jpg?ver=" . $modx->getOption('assets_version'),$output);   
}
Антон
06 января 2019, 03:10
modx.pro
11
850
+11

Характиристики 1С + msOptionsPrice2 и др. (CommerceML)

Компании растут, всем требуется больше возможностей от 1С и от сайта. 1С наверно никогда не сможет стать полноценным сайтом, все ровно фронтенд могу настроить только хорошие фронтендщики, кем 1С программисты не являются.

В общем статья для тех кто хотя бы раз синхронизировал 1С и Modx;
Андрей Степаненко
05 января 2019, 20:26
modx.pro
4
1 105
+9

Автоматический вывод всех свойств категории в mFilter2

Небольшой сниппет обёртка для mFilter2 который автоматически выводит все свойства с возможностью исключать определенные.

Как пользоваться:


  1. Создаем сниппет, называем его, например: mFilter3
  2. Создаем категорию (папку, чтобы не было путаницы), называем его, например: Не участвует в фильтрации, запоминаем его ID
  3. Помещаем все свойства которые не должны участвовать в фильтрации в данную категорию
Баха Волков
14 декабря 2018, 15:13
modx.pro
13
716
+9

Программно изменяем значение у пользователей, с условиями

Решил поделиться одним готовым решением. Лично мне, нужно нескольким тысячам юзеров в разных группах, раздать разные значения потраченных денег на покупки (эдакий перенос со старого сайта). Но если кто не понял, то давайте просто представим, что нам нужно изменить некоторые данные у пользователей, которые находятся в определенной группе. Казалось бы все просто. Нам нужно указать id определенной группы, вытащить из неё всех пользователей и изменить им нужные нам данные. Для многих программистов давно работающих с MODX, это дело 5-ти минут. У меня же это заняло около двух часов. В итоге решил, разу уж написал решение, нужно как обычно поделиться, мало ли кому-нибудь, когда-нибудь это понадобится. Ну или вон, Николай спарсит на модкс-клаб (шутка). =)
iWatchYouFromAfar
10 декабря 2018, 22:01
modx.pro
7
801
+8