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

modMonitor. Кейс: поиск причины сброса кеша

Вот сейчас мне модмонитор сохранил кучу времени и нервных клеток. Хочу поделиться этим кейсом, так как он раскрывает весьма неочевидные, но при этом очень мощные возможности данного компонента.

Предыстория: клиент пишет, что показатели сайта в тестах гугла PageSpeed Insights низкие. Полез проверять. Обратил внимание, что гугл жалуется на долгий ответ от сервера (1.3 сек). Я удивился, так как перед тестом специально захожу на главную страницу, чтобы она закешировалась. Но нет, с каждым тестом как минимум на одной из версий (мобильной и обычной) долгий ответ. Здесь еще тонкость в том, что на сайте реализована отдельно мобильная версия и кеш у них раздельный. Полез опять в админку, проверяю настройки кеша где можно — везде все ОК. При этом проверяю кеш-файлы — а они постоянно сбрасываются, то есть для двух-трех документов они создаются, а потом сбрасываются.
Fi1osof
15 ноября 2016, 02:08
modx.pro
1
1 453
+8

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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



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

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

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

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

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

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

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

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

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



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

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


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

  • Умеет удалять старые бекапы с ЯДиска, если они старее чем N дней (настраивается в config.yaml)
  • Умеет удалять старые логи с сервера
  • Раскладывает бекапы на ЯДиске по папкам вида: ГГГГ-ММ-ДД
  • Бекапит системные папки: /etc/, /var/log/, /root/
Павел Гвоздь
26 июня 2016, 11:04
modx.pro
33
4 132
+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 454
-2