К содержанию

Пошаговые инструкции

Написать заметку

Super MODx SEO-strict +ускоряем фронтенд

Михаил задал вопрос про канонизацию урлов в MODx.
Писал ему ответ, но понял, что он слишком большой. Поэтому переписал в статью.

Поехали.
Читать далее, Super MODx SEO-strict +ускоряем фронтенд

Чистим сайт от старых пакетов

При обновлении какого-нибудь компонента, MODX загружает новый пакет в папку /core/packages и добавляет запись в таблицу modx_transport_packages. Со временем в папке /core/packages накапливается приличное количество пакетов компонентов разных версий. И глядя на это разнообразие хочется избавиться от старых версий. И самое просто решение — удалить из папки не нужное. Решение простое, но неправильное. Так как в таблице остаются ссылки на эти пакеты и MODX их помнит. И иногда может и поругаться, что не нашел какой-то пакет. Чтобы не нарушать гармонии, лучше удалять их через специальный интерфейс.
Читать далее, Чистим сайт от старых пакетов

Контроль версий и деплой при разработке сайтов на MODX

Контроль версий и деплой при разработке сайтов на MODX


Проблема контроля версий, деплоя, возможности командной работы издавна занимают умы разработчиков.
Читать далее, Контроль версий и деплой при разработке сайтов на MODX

Ограничение доступа в админку по IP и дням недели

Это никак не отражено в документации, но любому пользователю можно ограничить авторизацию по IP и дням недели. Работает это c помощью настроек пользователя. Далее краткая инструкция (я использую MODX 2.3, поэтому в версии 2.2 пути могут отличаться):

1) Заходим в пункт меню Управление -> Пользователи.

2) Выбираем нужного пользователя правой кнопкой и жмем «Редактировать».

3) Переходим на вкладку «Настройки» и жмем кнопку «Создать новый».

4) В появившемся окне называем ключ allowed_ip — это будет настройка ограничения по IP. Имя можно выбрать любое. В поле значение записываем IP через запятую, например, «192.168.0.1,127.0.0.1». Сохраняем.

5) Аналогично настройка по дням. Ключ называем allowed_days. Значение — это номера дней через запятую от 1 (воскресенье) до 7 (суббота). Например, строка «2,3,4,5,6» ограничит доступ в админку только рабочими днями.
Читать далее, Ограничение доступа в админку по IP и дням недели

Наложение watermark в ms2Gallery

Наложение watermark в ms2Gallery
Часто спрашивают, а как сделать наложение водяных знаков на изображения, загружаемые через ms2Gallery?

Понятно, что работа идёт через PhpThumb, понятно какие ему нужно задавать параметры, но что именно нужно настроить на сайте, чтобы одно изображение накладывалось на другое?
Читать далее, Наложение watermark в ms2Gallery

Использование modRegistry

В MODX есть очень хорошая штука для хранения временных данных — объекты modRegistry. В народе их еще называют регистры, видимо из-за исторических параллелей.

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

Этот класс отлично документирован, но я хочу показать простой и понятный пример.
Читать далее, Использование modRegistry

Как начать участвовать в Open Source

Как начать участвовать в Open Source
Какое-то время назад я считал, что порог вхождения в OpenSource-разработку очень высок — ведь надо использовать git, отправлять пулл-реквесты. Это было чем-то незнакомым, далеким и останавливало меня. Тем более, что весь github.com на английском и многие слова и, соответственно, функции непонятны.

Однако сейчас я понимаю, как ошибался. Надеюсь, что после этой статьи вы согласитесь со мной и начнете вносить свой вклад в сообщество Open Source (и сообщество MODX в частности). Предлагаю на примере разобрать, как помочь разработчикам радовать нас дополнениями и уроками.
Читать далее, Как начать участвовать в Open Source

Кастомизация TicketForm

Доброго времени суток, сообщество =)

На днях, видел вопрос человека, еще на старом сайте сообщества, о том, как же добавить свои поля в форму редактирования\создания тикетов.

Вот мой вариант, который только что написал. За основу, в целом взял подход Василия (ну т.е так как сделано тут), т.к считаю его оптимальным.
Читать далее, Кастомизация TicketForm

Расширенные поля пользователей

Расширенные поля пользователей
Небольшая пошаговая инструкция, как научиться сохранять любые интересующие данные о юзере в специальное поле extended.

На самом деле, это никакой не секрет. Во многих объектах MODX есть специальное поле типа JSON, которое хранится в БД как текст, например, properties у modResource и extended у modUserProfile.

При работе с объектами xPDO, JSON текст из этих полей превращается в массивы. То есть, общий принцип выглядит так:
// id нужного пользователя
$user_id = 15;
// Получаем объект modUser
if ($user = $modx->getObject('modUser', $user_id)) {
	// Получаем связанный с ним профиль пользователя
	if ($profile = $user->getOne('Profile')) {
		// Получаем специальное поле extended
		$extended = $profile->get('extended');
		// Добавляем новое значение
		$extended['mykey'] = 'mydata';
		// И сохраняем обратно в профиль
		$profile->set('extended', $extended);
		$profile->save();
	}
}
Самое приятное, что эти данные вы можете не только просмотреть на странице пользователя, но и изменить.
Читать далее, Расширенные поля пользователей