Сортировка: По дате По просмотрам ↓
Исключение алиаса ресурса в URL дочерних ресурсов
21 июля 2016, 18:49
Сегодня выяснилось, что указанные мной ссылки ведут в никуда, и я решил восстановить эту информацию, благо, сам постоянно использую эту доработку.
Читать дальше
Читать дальше
Обрабатываем поля форм, добавляемые динамически
06 апреля 2013, 02:54
Столкнулся с небольшой проблемой: есть форма, в которой пользователь может указать несколько телефонов. Количество телефонов может быть любым, поэтому сделал динамическое добавление полей для телефона, если пользователю необходимо:
<div class="control-group"> <label class="control-label" for="contractor_phone">Телефон</label> <div class="controls"> <div class="input-append"> <input type="text" id="contractor_phone" name="contractor_phone[]"> <span class="btn" id="add_phone"><i class="icon icon-plus"></i></span> <div id="addPhones"></div> </div> </div> </div> <script type="text/javascript"> $("#add_phone").click(function() { $("#addPhones").append('<input type="text" name="contractor_phone[]">'); }); </script>В итоге в $_POST['contractor_phone'] приходит массив телефонов.
Читать дальше
Шаблон Acallia для MODX
18 апреля 2013, 16:10
Для многих начинающих знакомиться с MODX, сюрпризом становится то, что для MODX нет шаблонов, как это понимается для других CMS (например, сколько разных шаблонов есть для wordpress или joomla).
Все дело в том, что MODX дает полную свободу в верстке и нет необходимости использовать шаблоны, заточенные именно под CMS. Однако, порой хочется меньше возиться с версткой, и просто скачать какой-то шаблончик, изменив его под свои нужды.
Так вот, сегодня я начинаю выкладывать шаблоны в виде пакетов. Буду брать бесплатные HTML-шаблоны и запаковывать их в пакеты.
Первым шаблоном будет Acalia. Внешний вид шаблона можно увидеть на демо-сайте. Шаблон доступен в официальном репозитории. Или вы можете скачать шаблон с моего сайта.Новый раздел: Шаблоны MODX
Читать дальше
Как работают дополнения MODX. Часть 3 — ExtJS Button
23 октября 2017, 15:28
Наверняка вы знаете, что обычно все дополнения MODX хранятся в папках /assets/components/ и /core/components/. Мы же создали папку нашего дополнения прямо в корне сайта. Это для того, чтобы было понятно — расположение файлов значения не имеет, MODX просто «смотрит» путь в пространстве имён и «идёт» по этому пути.
Расположение дополнений в папках core и assets имеет под собой ряд причин.
Читать дальше
Расположение дополнений в папках core и assets имеет под собой ряд причин.
Читать дальше
Плагин для переключения контекстов при отсутствии нужного URL в текущем контексте
11 апреля 2013, 14:46
Иногда возникает потребность разбить ресурсы на несколько контекстов, например, чтобы вынести каталог товаров в отдельный контекст.
Прописывать везде ссылки типа [[~30 &context=`catalog`]] не хочется, да и не всегда возможно, поэтому я написал плагинчик switchContext на событие OnHandleRequest, который сам переключает контекст, если нужной страницы нет в текущем контексте
Читать дальше
Прописывать везде ссылки типа [[~30 &context=`catalog`]] не хочется, да и не всегда возможно, поэтому я написал плагинчик switchContext на событие OnHandleRequest, который сам переключает контекст, если нужной страницы нет в текущем контексте
Читать дальше
Использование предустановленных шаблонов для TinyMCE
06 августа 2015, 11:20
Сегодня с помощью Артура Цыбы обнаружил в TinyMCE интересную фишку.
Оказывается, этот редактор позволяет заранее подготовить набор блоков, которые в дальнейшем смогут использовать пользователи (контент-менеджеры).
Читать дальше
Оказывается, этот редактор позволяет заранее подготовить набор блоков, которые в дальнейшем смогут использовать пользователи (контент-менеджеры).
Читать дальше
Защита от спама формы на AjaxForm
08 августа 2017, 10:59
У FormIt есть стандартный функционал защиты от спама — проверка любого поля на пустоту. Если робот-спамер заполнит такое поле, то письмо не будет отправлено.
Единственный минус этого способа в том, что ответ от сервера приходит с ошибкой валидации — по ответу сразу видно, что письмо не отправлено и нужно робота перенастроить.
В итоге такой способ задерживает меньше спама, чем мог бы.
Читать дальше
Единственный минус этого способа в том, что ответ от сервера приходит с ошибкой валидации — по ответу сразу видно, что письмо не отправлено и нужно робота перенастроить.
В итоге такой способ задерживает меньше спама, чем мог бы.
Читать дальше
Как избавиться от большого количества шаблонов в MODX
08 июня 2017, 18:52
Обычно сайт состоит из нескольких разделов, у которых одинаковая шапка и футер, но различается контентная часть. Причём различия эти могут быть существенными — например, в блоге нужно выводить дочерние ресурсы в виде заголовка и аннотации, а в портфолио — в виде большых превьюшек:
Читать дальше
Читать дальше
Как работают дополнения MODX. Часть 1 — Namespace и Controller
22 октября 2017, 15:49
Разберём создание дополнения MODX руками — без всяких заготовок типа modExtra.
Мы будем разбирать создание именно «дополнения», а не «пакета» или «компонента». Для понимания разницы приведу в пример работу со сниппетами в MODX. Мы можем нажать в админке кнопку «Новый сниппет», ввести в открывшейся форме имя Hodor и код:
Читать дальше
Мы будем разбирать создание именно «дополнения», а не «пакета» или «компонента». Для понимания разницы приведу в пример работу со сниппетами в MODX. Мы можем нажать в админке кнопку «Новый сниппет», ввести в открывшейся форме имя Hodor и код:
<?php return 'Hodor!';После сохранения мы можем вызывать его в любом месте шаблона и пользоваться сниппетом. Но если мы хотим использовать этот сниппет на нескольких сайтах, можно сделать транспортный пакет, который будет содержать в себе сниппет Hodor.
Читать дальше
Модель безопасности в MODX
23 сентября 2014, 19:02
Модель безопасности в MODX не самая очевидная. Хотя в MODX присутствуют примитивы, присущие, например, модели безопасности SQL, их предназначение в MODX несколько отличается.
При настройке безопасности конечной целью является дать каждому пользователю соответвующий набор привилегий – разрешить ему совершать определенные действия в системе. Действия могут совершаться над различными объектами: страницами (resource), контекстами (context), чанками (chunk), переменными шаблонов (TV) и т.д. Сами действия могут быть очень разными, в простейшем случае это создание, просмотр, редактирование и удаление. Таким образом, задача настройки безопасности сводится к заданию отношений между пользователями, объектами и привилегиями.
Читать дальше
При настройке безопасности конечной целью является дать каждому пользователю соответвующий набор привилегий – разрешить ему совершать определенные действия в системе. Действия могут совершаться над различными объектами: страницами (resource), контекстами (context), чанками (chunk), переменными шаблонов (TV) и т.д. Сами действия могут быть очень разными, в простейшем случае это создание, просмотр, редактирование и удаление. Таким образом, задача настройки безопасности сводится к заданию отношений между пользователями, объектами и привилегиями.
Группы пользователей
Предположим, мы хотим дать пользователю partner доступ к странице «Проекты» на редактирование. В этом примере объектом является страница «Проекты», привилегией – редактирование, а пользователем – partner. Но для того, чтобы реализовать такую схему безопасности, потребуется создать группу пользователей. Дело в том, что в MODX права назначаются именно группе, а не пользователю. Группа – это множество пользователей, обладающих схожими правами. Разумеется, пользователь может состоять в нескольких группах.Читать дальше