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

Минутка грамотности

Честно говоря, я вовсе не мастер русского языка, в школе перебивался с тройки на четвёрку. Но то, что я вижу в наших комментариях, просто приводит в уныние.

Давайте постараемся писать хоть немного грамотнее, всего несколько пунктов.

1. Самое наболевшее: тся\ться. Настолько всем надоело, что даже запустили отдельный сайт.
Ь ставится:

— В неопределённой форме глагола (инфинитиве): умывать(ся), беречь(ся).
— В окончании 2-го лица единственного числа настоящего или будущего времени: умываешь(ся), бережёшь(ся).
— После согласных (кроме «й» и «г» – ляг(те)) в формах повелительного наклонения: исправь(те).
— В возвратной частице (суффиксе), стоящей после гласного звука: вернусь, вернитесь, вернулись, вернувшись.

В остальных случаях в глагольных окончаниях ь не ставится: он пошёл умываться, но: он умывается
Василий Наумкин
31 октября 2016, 07:47
modx.pro
2
3 045
+23

Короткие ссылки средствами modx

Запрос на помощь вылился в готовый результат.

Пример основной задачи — реализация сайта с кириллическим именем домена, и ссылками так же на кириллице. Типа: сайт.рф/каталог/ресурс

Выглядит красиво, доступно, запоминается, и говорят — полезно для СЕО. Но появилась проблемка, связанная с тем, что при попытке поделиться урлом, порой выводится неудобноваримая ссылка из кучи непонятных символов. Что нибудь типа такого:
Александр Н
10 октября 2016, 21:56
modx.pro
10
6 787
+7

Как прикрепить изображение к комментарию?


Как загрузить изображение на сервер и прикрепить его к комментарию в Tickets?

Написал плагин загрузки фотки и обрезки её с помощью встроенного в MODX phpThumb (спасибо Василию за готовый код, который я только кастомизировал под мои нужды).

Перенёс в категорию "Пошаговые инструкции", т.к. вопрос превратился в конкретную инструкцию.

Запишу эту инструкцию для себя будущего, может и кому-нибудь ещё понадобится…
Василий Столейков
06 октября 2016, 19:12
modx.pro
17
3 605
+3

[ExtJS] Расширяем компонент Collections



Часто ли вам приходится расширять какие-то стандартные штуки в MODX или в компонентах для него? Мне вот часто! Поэтому, давно хотелось поделиться чем-нибудь интересным на этот счёт, что я собственно и сделал в статье Дополнительные поля профиля юзера, где описал, как можно расширить профиль юзера, чтобы всё выглядело натурально. На этот раз расскажу, как можно расширять компонент Collections, не прибегая к крайним мерам, вроде правки исходников приложения.
Павел Гвоздь
27 сентября 2016, 21:34
modx.pro
31
5 239
+19

Модификатор ':mod' на Fenom

У MODX есть встроенный модификатор mod: [[+number:mod]]
modulus,mod — Возвращает модуль числа (по умолчанию: %2, возвращает 0 или 1).

На Fenom не нашел такого модификатора, и пришлось повторить его логику создав собственный модификатор, может кому-нибудь пригодится.
Василий Столейков
18 августа 2016, 12:14
modx.pro
8
5 379
+2

Сортировка и гибкая выборка по комментариям

После моих неудачных попыток приджойнить на лету нужное мне количество комментариев и сортировать по ним, пришлось идти другим путём.

Минусы джойна не давали нормально работать:
  1. Невозможность выбрать только тикеты, у которых комментариев >= 10
  2. Невозможность подсчитать только комментарии первого уровня (в моём случае это количество вопросов без ответов) и сортировать по ним
  3. При загрузке страницы и при пролистывани через пагинацию подгружались разные тикеты и сортировались по разному.
  4. Приходилось выбирать все тикеты, и в чанке через условие прятать те, у которых комментариев < 10
  5. Отсюда приходилось и пагинацию делать на костылях
В итоге перешел к варианту «Б»:
  1. Создаём расширенное поле в БД (можно и тв-шку использовать, но так оптимальнее)
  2. Создаём плагин для нового поля (или дописываем существующий, если расширенные поля уже имеются).
  3. Создаём плагин для копирования количества комментариев в наше созданное поле с учётом нужных нам условий выборки.
  4. Импортируем все существующие уже комментарии
  5. Исправляем вызовы сниппетов и чанков
Василий Столейков
22 июля 2016, 05:46
modx.pro
6
2 456
+10

Связи объектов в CustomExtra

Сегодня я покажу, как быстренько модернизировать CustomExtra, чтобы объекты можно было связать друг с другом.



Для начала представим гипотетическую ситуацию, в которой у нас на сайте есть некие «Предметы» и с каждым предметом можно проводить некие «Операции». Попробуем связать Предметы и Операции.
Илья Уткин
30 июня 2016, 14:22
modx.pro
17
3 749
+4

Резервное копирование сайтов в Яндекс Диск


Благодаря статье Михаила Воеводского заметил, что тема резервного копирования востребована в сообществе. Решил поделиться своим скриптом резервного копирования написанным на Python. Примечателен он тем, что полностью удовлетворяет закону импортозамещения заливает файлы на Яндекс Диск, раскладывая их по папочкам вида ГГГГ-ММ-ДД. Это не все его приятные особенности, вот список:

  • Умеет удалять старые бекапы с ЯДиска, если они старее чем N дней (настраивается в config.yaml)
  • Умеет удалять старые логи с сервера
  • Раскладывает бекапы на ЯДиске по папкам вида: ГГГГ-ММ-ДД
  • Бекапит системные папки: /etc/, /var/log/, /root/
Павел Гвоздь
26 июня 2016, 11:04
modx.pro
34
5 134
+14

Comparison: картинка-превью из ms2Gallery

Возникла необходимость использовать дополнение Comparison для сравнения обычных документов (не товаров Minishop). Для загрузки изображений используется дополнение ms2Gallery.

Задача: сделать так, чтобы превью для таблицы сравнения брались из изображений ms2Gallery.

Решение:

Шаг 1: Присоединяем таблицу с картинками через leftJoin. При этом указываем размеры превью. В моем случае это 206x117. Если у вас другие размеры — поставьте свои.

[[!CompareList?
	&leftJoin=`{
		"206x117": {"class":"msResourceFile","alias":"206x117", "on": "206x117.resource_id = modResource.id AND 206x117.path LIKE '%/206x117/' AND 206x117.rank=0"}
	}`
	&select=`{
		"modResource":"*"
		,"206x117":"206x117.url as 206x117"
	}`
]]
Шаг 2: В чанке оформления tpl.Comparison.head заменяем плейсхолдер [[+thumb]] на новый с размерами вашей картинки, т.е в моем случае [[+206x117]].

Наслаждаемся результатом.
Иван Бондаренко
04 июня 2016, 10:22
modx.pro
3
1 895
-2

Дополнительные поля профиля юзера (не extended)


Разрабатываю проект, в котором необходимо было реализовать более простое редактирование дополнительных полей профиля, чем есть из коробки. К слову, неудобное редактирование — это не единственный минус нативного способа расширения профиля полями. Ни для кого не секрет, что фильтрацию по JSON полям нормально не осуществить, только костылями. Фактически, мне надо было получить решение, которое бы расширяло стандартный код MODX, не трогая исходники, дабы сохранить карму в порядке возможность обновления системы.
Пришёл к выводу, что буду расширять стандартную вкладку профиля «Общая информация». При желании можно чуть переписать код в событии OnUserFormPrerender и создать свою вкладку со своими полями.
Павел Гвоздь
30 мая 2016, 22:36
modx.pro
114
18 771
+19