19 марта 2019, 15:27 Ставите пробел после { и fenom игнорирует всё что после скобки. Нужно просто пробелы выставить в скриптах после {. Также все что внутри {ignore}{/ignore} тоже будет проигнорировано. Вопросы / Вопрос по шаблонизации 5 +1
19 марта 2019, 13:26 Иногда даже с феном не очень удобно, когда слишком много логики на странице. Тогда в помощь плагины на события типа OnLoadWebDocument, OnWebPagePrerender. Там можно получить и переназначить все поля ресурса. А можно установить плейсхолдеры $modx->setPlaceholder('name', value); И в чанке или шаблоне уже не городить конструкции из if'ов, а вывести [[+my_placeholder]], или {$_pls['my_placeholder']} который будет содержать результат обработки данных плагином. Вопросы / Вопрос по шаблонизации 5 0
13 марта 2019, 14:49 Короче, дискриминация высшим сословием простых Николаев, неприметных, без аватарки, громкого имени, личного бренда, обычных рабов божьих, в лаптях и с крестом на груди)) Новости и события / Упоминание пользователей 27 0
13 марта 2019, 14:41 Не то чтобы я настаиваю) Но Николаев высветилось куча, чтобы узнать какой правильный, нужно в любом случае найти ссылку на его профиль, или зайти в профиль, и подсмотреть ещё и логин) Хорошо если имя и фамилия указаны, и логин читабельный, тогда ок, а если безфамильный, или, скажем, от балды часто указывают Николай Николаев, или Иван Иванович, то таких пруд пруди со временем будет в списке. А в перемешку с кривыми логинами ещё сложнее) Новости и события / Упоминание пользователей 27 0
13 марта 2019, 14:19 Просто не у всех логин в адресе стоит. По ID можно упоминать? @НиколайКруто, но придётся постоянно вырезать из ссылки логин или id, лишние манипуляции. Если удобное копирование сделать, как вот тут напротив заголовков якорь, то будет вообще отлично. А если ещё по клику js-скриптом, чтобы нажал нажал на якорь и скопировал хештег, то ещё оперативнее) Новости и события / Упоминание пользователей 27 0
12 марта 2019, 18:02 Скажи сразу, заметку не читал, да?Читал, перечитал ещё раз, и вспомнилось видео про девочку и грибы)) У каждого юзера есть прямая ссылка, и она легко копируется. Ну вот её же недостаточно вставить как хештег, а было бы удобно. Допустим, у одного логин abcd1 и имя Николай, а у другого abcd11 и тоже имя Николай, их может быть 10 человек, проблематично будет выбрать правильный, если ещё в попыхах это делаешь. А ссылку скопировал и 100% всё ок. И можно от списка вообще избавиться. Тем более логичнее, видишь юзера в комменте — копируешь ссылку. А тут получается видишь юзера, ищешь его в списке всех 100500 юзеров. Новости и события / Упоминание пользователей 27 0
12 марта 2019, 17:22 А, чем ближе @ к началу строки, тем адекватнее список пользователей отображается. Я пробовал после длинного абзаца вставить, и аж скролл появился. Новости и события / Упоминание пользователей 27 0
12 марта 2019, 17:14 Может быть будет удобнее в профиле пользователя, и рядом со ссылкой на его профиль в комменте, сделать якорь на его «хештег», т.е. просто скопировал-вставил ссылку без долгого листания списка пользователей (тем более логин можешь и не знать, не запоминающийся например). А при ответе как в ВК можно автоматом подставлять хештег в форму. А в дальнейшем можно выводить кучей ответы данному юзеру от других в профиле. Т.е. можно будет посмотреть кто что кому отвечает) p.s. Кстати, что-то с позиционированием списка у меня в мозилле. Кеш обновлял Ctrl+F5: Новости и события / Упоминание пользователей 27 0
10 марта 2019, 17:59 Насчёт 1000 чанков такой пример. Допустим, нам нужно вывести один код если переменная, скажем TV, равна одному значению, и другой код, если равна другому значению. А условий может быть множество и не очень простых. И мы в итоге создадим в довесок к чанку с выводом TV-переменной сниппет, и ещё несколько чанков к нему в придачу, на каждый вариант нашего условия. И всё это будет раскидано по сайту. Поди потом разберись что где вызывается и как взаимосвязано. А с феномом можно всё в одном месте прописать, открыл исходный чанк и понимаешь логику. Это я только самый простой пример описал. А часто бывает гораздо запутаннее. При стандартном парсере как раз и придётся написать 1000 сниппетов и чанков. Даже в таких случаях где надо тупо телефон превратить из 7 (920) 987-65-43 в 79209876543 придётся написать целый сниппет. Получится множество чанков и сниппетов, или запутанные нечитаемые конструкции phx, которые ещё и томозные, т.к. все теги прописанные в них, будут обработаны, даже если не попадают под условие. Конечно, с феномом читаемость html-кода пострадает. Но как ещё по-другому описать логику вывода html? У нас же динамический сайт, а не голая вёрстка. Я думаю больше никак. Хотя, не, можно ещё как в вордпрессе вставлять <?php ?> в шаблон) Новые дополнения и их версии / Fenom в дополнениях 62 +1
10 марта 2019, 17:34 Лично я настолько привык к феному, что если вернуться в то время когда его не было, на MODX вообще глаза бы смотреть отказались) Удивляюсь тому, что кто-то до сих пор использует стандартный парсер, особенно убогими кажутся конструкции типа фильров phx. Если вижу такое на каких-то сайтах, то понимаю, что разработчик сайта сильно застрял в MODX из 90-х первых версий Revo. А насчёт 1000 чанков это фигня какая-то, с помощью фенома можно очень сильно облегчить множество задач, упростить структуру, особенно круто, что можно наследовать шаблоны и чанки. В голове только всплывает фраза из рекламы: «ты просто не умеешь их готовить») Новые дополнения и их версии / Fenom в дополнениях 62 +2
03 марта 2019, 14:21 Грубый способ сделать это, если там нет каких-то настроек и удобных возможностей для этого, написать плагин, который обработает исходный код страницы перед отправкой его в браузер клиента. По событию OnWebPagePrerender исходный код страницы можно получить так: switch ($modx->event->name) { case 'OnWebPagePrerender': $output = &$modx->resource->_output; break; } В $output хранится код. Переопределив переменную, мы изменим исходный код страницы. Можно регулярками удалить вызовы скриптов, и добавить их в footer. Правда если компоненты, скрипты которых мы ходим удалить, тоже используют это событие, то может не сработать. Попробовал написать плагин, работает для Tickets: <?php if($modx->event->name == "OnWebPagePrerender") { $output = &$modx->resource->_output; preg_match('#<script type="text/javascript">if \(typeof TicketsConfig == "undefined"\).+?</script>#s', $output, $matches); // находим первый вызов js-скрипта Tickets $script1 = $matches[0]; // помещаем его в переменную $output = str_replace($script1, '', $output); // удаляем его со страницы preg_match('#<script type="text/javascript">TicketsConfig\.editor.+?</script>#s', $output, $matches); // вызов 2-го скрипта $script2 = $matches[0]; $output = str_replace($script2, '', $output); preg_match('#<script type="text/javascript">TicketsConfig.formBefore.+?</script>#s', $output, $matches); // 3-го скрипта $script3 = $matches[0]; $output = str_replace($script3, '', $output); $output = str_replace('</body>', "$script1\r\n$script2\r\n$script3\r\n</body>", $output); // все 3 вызова помещаем перед закрывающим тегом body } Для других компонентов по тому же принципу. Вопросы / Переместить ccs/js, подгружаемые в head 14 0
03 марта 2019, 13:31 Изначально в файле assets/components/minishop2/js/mgr/category/product.grid.js в методе getColumns определяются все дефолтные поля. Можно по событию msOnManagerCustomCssJs переопределить этот метод, включая все поля таблицы товаров в админке. Вопросы / Сортировка товаров в категории minishop в бекенде 3 +1
03 марта 2019, 13:25 Так там же можно отсортировать поле практически любое итак, скажем pagetitle, favorit, price, и в следующий раз страница откроется с сортировкой по этому полю. А если нужно кастомное поле, то сделать это можно через плагины. В частности там есть кусок кода про расширение админки: miniShop2.plugin.color = { // Изменение полей для панели товара getFields: function () { return { color: { xtype: 'minishop2-combo-autocomplete', description: '<b>[[+color]]</b><br />' + _('ms2_product_color_help') } } }, // Изменение колонок таблицы товаров в категории getColumns: function () { return { color: { width: 50, sortable: false, editor: { xtype: 'minishop2-combo-autocomplete', name: 'color' } } } } }; Если нужно добавить много полей быстро и удобно, то поможет компонент msFieldsManager. Вопросы / Сортировка товаров в категории minishop в бекенде 3 +1
20 февраля 2019, 16:48 Посмотрите вот эти уроки, там хорошо разжёвывается данная тема: Свои поля в интерфейсе редактирования ресурса MODx Свои вкладки и поля ресурса в админке MODx Готовые решения / Расширение любых таблиц MODX 60 0 1
18 февраля 2019, 17:48 В $filename месяц и день только местами поменять) Вопросы / Очень большой лог ошибок 3 0
18 февраля 2019, 17:34 Часто сталкиваюсь с тем, что лог забивается спустя несколько месяцев. Сделал сайт, а потом тебе пишут, типа: «что-то случилось с админкой, что делать??». Когда сервер не может его открыть для записи из-за нехватки памяти. Надоело, написал небольшой плагин, может кому пригодится: <?php if( in_array($modx->event->name, ['OnManagerPageInit','OnBeforeManagerLogin']) ) { $logpath = MODX_CORE_PATH . 'cache/logs/error.log'; if(filesize($logpath) > 5000000) { $logcontent = file_get_contents($logpath); $filename = 'error-'. date("Y-d-m_H:i:s"); $zip = new ZipArchive(); $zip->open(MODX_CORE_PATH . 'cache/logs/'. $filename . '.zip', ZipArchive::CREATE); $zip->addFromString($filename . '.txt', $logcontent); $zip->close(); $modx->runProcessor('system/errorlog/clear'); } } Должно быть включено расширение php_zip на сервере. При достижении размера в 5 мб рядом с логом ошибок создаётся архив с его копией, а основной лог затирается. Вопросы / Очень большой лог ошибок 3 0
18 февраля 2019, 14:48 Ну а ценообразование — это совсем отдельный разговор. Марк не в России живет, он ставит цену исходя из платежеспособности своего рынка и своих потребностей, то, что в СНГ и окрестностях это дорого, так это вопрос СНГи окрестностей, а не Марка. Так если сравнить с западными рынками дополнений, то там за эту цену предлагают часто нафаршированные модули для электронной коммерции. А билдеры контента идут в подарок) А MIGX хоть и корявенький местами, зато работает и бесплатен. А вот с ContentBlocks даже опытный разработчик не сразу разберётся, что уж говорить о менеджере, который будет им пользоваться. Вопросы / Конструктор (Builder) сложных страниц для MODX Revo 24 0
18 февраля 2019, 13:12 На MIGX, как писал выше, очень неплохо решаются несложные задачи) Пусть это может как-то корявенько выглядит, зато довольно удобно и просто наполнять, и после настройки ничего лишнего. MIGX'ом тоже решается куча задач, этой целый комбайн, но он почему-то вообще бесплатен. А насчёт билдера, так он скорее для популяризации движка. Иначе бы и на Wordpress его сделали платным, или Evolution. Он же там тоже очень функциональный. А тут, выходит, в таком узком месте компания хочет навариться. Не зря, наверное, при разработке MODX3 MODX LLC первым делом бросилась делать редактор контента к нему) Я в принципе не то чтобы выражаю негатив, просто мне кажется излишний коммерческий интерес губит любой интерес к продукту, и показывает сообществу ориентированность в первую очередь на прибыль, а не на развитие. Как вариант, в таких случаях обычно делают бесплатную упрощённую версию, и платную версию со всякими плюшками. И овцы целы, и волки сыты. Вопросы / Конструктор (Builder) сложных страниц для MODX Revo 24 +1
17 февраля 2019, 21:49 Ну и как то всегда интересно читать про сложные проекты, для которых нельзя выделить аж целых 6000 рублей, без обид =)) Сложные проекты и сложные страницы разница большая. Часто вёрстка подразумевает несколько типов страниц в которых используются различные текстовые блоки по-разному оформленные. Нужно иметь возможность менять порядок следования блоков и забивать туда информацию. Сайт при этом самый обычный, просто наполнить такую страницу в редакторе менеджеру не по силам. Отваливать 6 тыс. за эту возможность как-то накладно… Особенно если знаешь, что в Wordpress, Evolution, October и других движках Builder'ы бесплатные. Если себестоимость сайта на MODX без учёта работы будет по цене как лицензия на Битрикс, то потребуется долго объяснять потенциальному заказчику чем MODX лучше любой другой системы где много всяких тем, дополнений и всего всего и ещё и бесплатно. Такого заказчика нужно будет ещё и найти. По моему ИМХО цена за дополнение сильно завышена. Да и само дополнение перегружено функционалом, который в большинстве случаев и не нужен вовсе. Получается, покупаешь дорогой комбайн ради того, чтобы пару грядок обработать. Лично я под каждый блок завожу категорию TV полей и там размещаю TV-поля и таблицы MIGX, а потом всё это собираю в одной таблице MIGX: В поле тип — тип блока со своей уникальной вёрсткой. Строки таблицы можно перетаскивать меняя порядок следования блоков. Как говорится, дёшево и сердито. Вопросы / Конструктор (Builder) сложных страниц для MODX Revo 24 +2
16 февраля 2019, 17:24 Я обновился, и не работал клик по колесу мыши. А потом Ctrl+F5 всё исправил. На случай если у кого-то будет подобная проблема. Новости и события / Релиз MODX Revolution 2.7.1-pl (February 14, 2019) 24 +1
UiCMPGenerator дополнение для создания пакетов Ближе к сентябрю, основная загвоздка это создание нормальной документации и видео обзора, а так пакет как бы уже готов
Личный кабинет на Sendit - не удается сбросить пароль Хм, в массиве поле extended приходит пустым, временного пароля там нет. Сам тестовый юзер изначально был зареген в группу Users с правами доступа в личный кабинет (по обычной инстр...
Checkbox для модального окна Они не отключены, они платные, чтобы писали только те, кому действительно очень надо. Когда бесплатно люди начинают думать, что я им должен.
[SendIt 2.6.0] Анализ поведения пользователя для защиты от спама (невидимая капча)... Здравствуйте. Делаю личный кабинет на Sendit и со сбросом пароля возникли проблемы. Можете подсказать, в чем ошибка? Список вопросов в одноименном разделе на modx.pro пока пуст, и,...
Minishop + честный знак (продажа маркированной продукции) В нашем случае мы решили убрать всю логику по маркировке сайта.
MiniShop3 - Не выводятся товары дополнительных категорий @SYAN ваша указанная проблема исправлена еще до версии 1.2.3 @Павлик Мышкин завел: github.com/modx-pro/MiniShop3/issues/480 github.com/modx-pro/MiniShop3/issues/481Исправим в б...
MobileDetect 2.0.0-pl функция "планшеты как стандартные браузеры не работает" в 2.1.0-pl баг исправлен
msImportExport не сохраняет родителя по умолчанию Компонент не понимает кирилические домены при загрузку фото. пример: Error download. Url : https://антаресдвери.рф/upload/iblock/a50/a50b2ef45305a3c18f6e298f1e134880.jpg. Message...
Ну вот её же недостаточно вставить как хештег, а было бы удобно. Допустим, у одного логин abcd1 и имя Николай, а у другого abcd11 и тоже имя Николай, их может быть 10 человек, проблематично будет выбрать правильный, если ещё в попыхах это делаешь. А ссылку скопировал и 100% всё ок. И можно от списка вообще избавиться. Тем более логичнее, видишь юзера в комменте — копируешь ссылку. А тут получается видишь юзера, ищешь его в списке всех 100500 юзеров.
p.s. Кстати, что-то с позиционированием списка у меня в мозилле. Кеш обновлял Ctrl+F5:
Конечно, с феномом читаемость html-кода пострадает. Но как ещё по-другому описать логику вывода html? У нас же динамический сайт, а не голая вёрстка. Я думаю больше никак. Хотя, не, можно ещё как в вордпрессе вставлять <?php ?> в шаблон)
из 90-хпервых версий Revo. А насчёт 1000 чанков это фигня какая-то, с помощью фенома можно очень сильно облегчить множество задач, упростить структуру, особенно круто, что можно наследовать шаблоны и чанки. В голове только всплывает фраза из рекламы: «ты просто не умеешь их готовить»)В $output хранится код. Переопределив переменную, мы изменим исходный код страницы. Можно регулярками удалить вызовы скриптов, и добавить их в footer. Правда если компоненты, скрипты которых мы ходим удалить, тоже используют это событие, то может не сработать.
Попробовал написать плагин, работает для Tickets:
Для других компонентов по тому же принципу.
Если нужно добавить много полей быстро и удобно, то поможет компонент msFieldsManager.
Свои поля в интерфейсе редактирования ресурса MODx
Свои вкладки и поля ресурса в админке MODx
Должно быть включено расширение php_zip на сервере. При достижении размера в 5 мб рядом с логом ошибок создаётся архив с его копией, а основной лог затирается.
А MIGX хоть и корявенький местами, зато работает и бесплатен. А вот с ContentBlocks даже опытный разработчик не сразу разберётся, что уж говорить о менеджере, который будет им пользоваться.
А насчёт билдера, так он скорее для популяризации движка. Иначе бы и на Wordpress его сделали платным, или Evolution. Он же там тоже очень функциональный. А тут, выходит, в таком узком месте компания хочет навариться. Не зря, наверное, при разработке MODX3 MODX LLC первым делом бросилась делать редактор контента к нему) Я в принципе не то чтобы выражаю негатив, просто мне кажется излишний коммерческий интерес губит любой интерес к продукту, и показывает сообществу ориентированность в первую очередь на прибыль, а не на развитие. Как вариант, в таких случаях обычно делают бесплатную упрощённую версию, и платную версию со всякими плюшками. И овцы целы, и волки сыты.
Лично я под каждый блок завожу категорию TV полей и там размещаю TV-поля и таблицы MIGX, а потом всё это собираю в одной таблице MIGX:
В поле тип — тип блока со своей уникальной вёрсткой. Строки таблицы можно перетаскивать меняя порядок следования блоков. Как говорится, дёшево и сердито.