Наверх

Советы и решения

Давайте-ка потестируем PR в репозитории MODX

13 августа 2018, 15:52

Ну что, поможем с пулл-реквестами для MODX 3?

Создаём у себя на хостинге новый пустой сайт и пустую базу данных. Версию PHP поставьте 7.1. После этого подключаемся к серверу по SSH (с помощью Putty, например). На хостинге Beget есть SSH прямо в личном кабинете:



Заходим в корень новой пустой папки и скачиваем MODX с гитхаба:
cd modx-test.dev/public_html/
rm -rf *
git clone https://github.com/modxcms/revolution .

Читать дальше

Сжатие картинок с помощью сервиса OptiPic

11 декабря 2017, 15:46

OptiPic.io — это сервис оптимизации изображений для сайтов. Дополнение OptiPic реализует интеграцию сайта MODX с этим сервисом. Чтобы оптимизировать картинки, например, при выводе через pdoResources, добавьте сниппет optipic в список фильтров ввода вывода:

<h4>[[+pagetitle]]</h4>
<img src="[[+tv.image:phpthumbon=`w=350&h=180&zc=1`:optipic]]"
 alt="[[+longtitle]]">

Читать дальше

Защита от спама формы на AjaxForm

08 августа 2017, 10:59

У FormIt есть стандартный функционал защиты от спама — проверка любого поля на пустоту. Если робот-спамер заполнит такое поле, то письмо не будет отправлено.

Единственный минус этого способа в том, что ответ от сервера приходит с ошибкой валидации — по ответу сразу видно, что письмо не отправлено и нужно робота перенастроить.

В итоге такой способ задерживает меньше спама, чем мог бы.
Читать дальше

Работа с полями ресурса после сохранения (пример создания плагина)

05 августа 2017, 10:17

В MODX существует система плагинов и событий. Одно из интересных событий — OnDocFormSave. Это событие на сохранение ресурса.

Простыми словами — если мы создадим плагин, у которого отметим на вкладке «Системные события» галочку OnDocFormSave, то код этого плагина будет запущен после сохранения любого ресурса.

В коде плагина мы легко можем определить, какой ресурс был сохранён — только что созданный или уже существовавший ранее. Это нужно, если мы захотим обрабатывать только поля новых ресурсов, но ничего не менять, если в ресурс просто вносятся какие-то изменения. Для этой цели MODX передаёт нам параметр $mode:
<?php
if ($mode == 'new') {
    // Здесь пишем наш код
}

Читать дальше

Простой список избранного для MODX

06 июля 2017, 15:58

Ещё один пример использования customExtra — на этот раз для реализации избранного для зарегистрированных пользователей на сайте.

Сниппет написан на скорую руку, по идее нужно оформление выносить в чанки, добавлять возможность менять параметры сниппета. Кроме того, сниппет не предназначен для вызова в списке статей — только на странице конкретной статьи.

<?php
// Избранное доступно только для авторизованных пользователей
if (!$modx->user->id) return;

// Иконка и подсказка по умолчанию
$icon = 'fa fa-star-o';
$title = 'Добавить в избранное';

// Флаг наличия статьи в избранном
$in_fav = false;

// ...

Читать дальше

MODX и Isotope - фильтрация блоков на странице

28 июня 2017, 09:42

Isotope — это jQuery плагин, который позволяет фильтровать группу блоков, сортировать блоки и располагать их, например, плиткой.

Isotope

Для того, чтобы фильтрация заработала, у блоков нужно проставить соответствующие классы. Если мы хотим сделать фильтрацию, например, проектов в портфолио, то сами проекты могут быть отдельными ресурсами, а вот категории могут быть тегами.

Для тегов есть очень удобное дополнение от Павла Гвоздя — tvSuperSelect. Будем использовать его для распределения проектов по категориям.
Читать дальше

Генерируем картинку для статьи из её заголовка

09 июня 2017, 17:34

Чтобы раздел статей не был сборищем одинаковых превьюшек, можно использовать такой сниппет. Он берёт фоновую картинку, поверх неё пишет заголовок статьи и сохраняет получившийся файл. Превьюшки могут выглядеть как-то так:

Читать дальше

Как избавиться от большого количества шаблонов в MODX

08 июня 2017, 18:52

Обычно сайт состоит из нескольких разделов, у которых одинаковая шапка и футер, но различается контентная часть. Причём различия эти могут быть существенными — например, в блоге нужно выводить дочерние ресурсы в виде заголовка и аннотации, а в портфолио — в виде большых превьюшек:


Читать дальше

Файловый менеджер для WEB — SPRUT.io

15 января 2016, 11:56

Многие знают, что я давно работаю с хостингом BEGET.RU и всем его советую. Сегодня я увидел, что на моём любимом хостинге проводится розыгрыш, главным условием которого было порекомендовать сервис хостинга, написав статью в блоге. Поэтому я решил рассказать о файловом менеджере, разработанном в компании Бегет.

Сначала небольшая справка. Компания ООО «Бегет» — это российский хостинг. Сервера находятся у нас. Раньше это был только Санкт-Петербург, сейчас, насколько я знаю, география расширена. MODX на хостинге работает отлично, а цены порадуют многих. Тем более, что первый месяц использования любого тарифа абсолютно бесплатный.
Читать дальше

Реализуем пагинацию без GET-параметров в URL

11 ноября 2015, 15:22

Иногда требуется, чтобы ссылки постраничной навигации выглядели как-то так:
http://site.ru/articles/2.html
http://site.ru/articles/3.html
http://site.ru/articles/4.html
MODX с такой задачей справляется довольно легко.

Необходимо только поправить ссылки в сниппете, например, pdoPage:
&tplPage=`@INLINE <li><a href="[[~[[*id]]]][[+pageNo]].html">[[+pageNo]]</a></li>`
&tplPageActive=`@INLINE <li class="active"><a href="[[~[[*id]]]][[+pageNo]].html">[[+pageNo]]</a></li>`
&tplPageFirst=`@INLINE <li class="control"><a href="[[~[[*id]]]][[+pageNo]].html">Первая</a></li>`
&tplPageLast=`@INLINE <li class="control"><a href="[[~[[*id]]]][[+pageNo]].html">Последняя</a></li>`
&tplPagePrev=`@INLINE <li class="control"><a href="[[~[[*id]]]][[+pageNo]].html">«</a></li>`
&tplPageNext=`@INLINE <li class="control"><a href="[[~[[*id]]]][[+pageNo]].html">»</a></li>`
И создать плагин, указав события OnPageNotFound и OnHandleRequest:
Читать дальше

Авторизация

через сервис Loginza:

Подписка или RSS

Буду присылать новые статьи — никакого спама



Шаблоны MODX

1 2 Дальше »

Объектная
модель
MODX