How to

Add howto

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

При обновлении какого-нибудь компонента, MODX загружает новый пакет в папку /core/packages и добавляет запись в таблицу modx_transport_packages. Со временем в папке /core/packages накапливается приличное количество пакетов компонентов разных версий. И глядя на это разнообразие хочется избавиться от старых версий. И самое просто решение — удалить из папки не нужное. Решение простое, но неправильное. Так как в таблице остаются ссылки на эти пакеты и MODX их помнит. И иногда может и поругаться, что не нашел какой-то пакет. Чтобы не нарушать гармонии, лучше удалять их через специальный интерфейс.
24 february 2015, 15:13    Сергей Шлоков
7    1076    4 +8

Алфавитный рубрикатор для ресурсов Modx Revo.

Результат работы тут: lab.nikann.ru/catalog#abc
За основу был взят: modx.ws/urok-modx-ajax-zagruzka-resursov
18 february 2015, 12:40    G@G
21    1150    13 +5

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



Проблема контроля версий, деплоя, возможности командной работы издавна занимают умы разработчиков.
30 january 2015, 02:04    Илья Уткин
9    2077    24 +4

Ограничение доступа в админку по 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» ограничит доступ в админку только рабочими днями.
12 november 2014, 08:27    Виталий Киреев
12    687    5 +15

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

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

Понятно, что работа идёт через PhpThumb, понятно какие ему нужно задавать параметры, но что именно нужно настроить на сайте, чтобы одно изображение накладывалось на другое?
12 july 2014, 08:46    Василий Наумкин
17    1437    20 +8

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

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

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

Этот класс отлично документирован, но я хочу показать простой и понятный пример.
12 june 2014, 06:57    Василий Наумкин
9    633    1 +8

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

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

Однако сейчас я понимаю, как ошибался. Надеюсь, что после этой статьи вы согласитесь со мной и начнете вносить свой вклад в сообщество Open Source (и сообщество MODX в частности). Предлагаю на примере разобрать, как помочь разработчикам радовать нас дополнениями и уроками.
25 april 2014, 04:14    Илья Уткин
12    2183    11 +9

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

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

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

Вот мой вариант, который только что написал. За основу, в целом взял подход Василия (ну т.е так как сделано тут), т.к считаю его оптимальным.
14 april 2014, 23:05    Clean
8    706    3 +2

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

Небольшая пошаговая инструкция, как научиться сохранять любые интересующие данные о юзере в специальное поле 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();
	}
}
Самое приятное, что эти данные вы можете не только просмотреть на странице пользователя, но и изменить.
07 april 2014, 14:59    Василий Наумкин
29    4332    37 +11