Сортировка: По дате По просмотрам ↓
Плагин для редиректа если страница перенесена или изменен URL страницы
09 апреля 2013, 17:14
Надоело мне проставлять вручную редиректы, когда SEO-шники меняют URL (для лучшего соответствия страницы запросам) и просят сделать так, чтобы страница из индекса не вылетела.
Сначала я сделал плагинчик для того, чтобы можно было ресурсы переносить из раздела в раздел безболезненно и добавлять дочерние ресурсы (у контейнеров префикс URL меняется).
Теперь решил поднатужится и сделать максимально автоматизированную систему, которая позволит не только переносить ресурсы, но и менять им псевдонимы, не беспокоясь о редиректах.
Читать дальше
Сначала я сделал плагинчик для того, чтобы можно было ресурсы переносить из раздела в раздел безболезненно и добавлять дочерние ресурсы (у контейнеров префикс URL меняется).
Теперь решил поднатужится и сделать максимально автоматизированную систему, которая позволит не только переносить ресурсы, но и менять им псевдонимы, не беспокоясь о редиректах.
Читать дальше
Отправляем уведомление об открытии 404 страницы на сайте
07 марта 2014, 11:53
Перенес блог на новый дизайн и столкнулся с тем, что пользователи стали иногда попадать на 404 страницу (по сообщениям из метрики). Решил узнать, какие страницы у пользователей не открываются. В итоге написал плагинчик, который, в принципе, можно использовать на любом сайте для того, чтобы не терять посетителей и сразу узнавать о проблемах с несуществующими страницами.
Читать дальше
Читать дальше
Отображение кастомных объектов в админке MODX (таблица ExtJS)
17 февраля 2014, 14:42
Сегодня я покажу как с использование костыля на быструю руку соорудить табличку в админке для нашего компонента. Кошерный метод разработки описал Василий Наумкин, за что ему большое спасибо.
Для тех, кому на этих курсах пока слишком много информации и он хочет просто пощупать — как оно и где, подойдет мой метод.
Читать дальше
Summary 1.0.3
25 ноября 2015, 11:36
Summary это по сути отдельный класс для формирования краткого описания на основании длинного текста. Данный класс вообще не зависит от MODX и поэтому на его базе были написаны сниппеты как для MODX Evolution, так и для MODX Revolution. В основе компонента лежит логика одноименного экстендера для сниппета Ditto из MODX Evolution.
Функционал summary частично схож с модификатором ellipsis в MODX Revolution, т.е. обрезание строки до заданного количества символов. Но в отличии от модификатора ellipsis, этот сниппет может удалять из строки HTML теги, преобразовывать MODX теги в entities сущности. Помимо этого, summary понимает тег cut (который можно переопределить при желании) и если он не обнаружен, то сокращаемый текст не обрывается на половине слова или середине предложения, а заканчивается на ближайшей точке. Если в обрабатываемом тексте встречаются HTML теги, то они могут быть оставлены. Но при этом, если требуемая длинна текста достигнута, то все не закрытые теги будут закрыты автоматически.
Читать дальше
Функционал summary частично схож с модификатором ellipsis в MODX Revolution, т.е. обрезание строки до заданного количества символов. Но в отличии от модификатора ellipsis, этот сниппет может удалять из строки HTML теги, преобразовывать MODX теги в entities сущности. Помимо этого, summary понимает тег cut (который можно переопределить при желании) и если он не обнаружен, то сокращаемый текст не обрывается на половине слова или середине предложения, а заканчивается на ближайшей точке. Если в обрабатываемом тексте встречаются HTML теги, то они могут быть оставлены. Но при этом, если требуемая длинна текста достигнута, то все не закрытые теги будут закрыты автоматически.
Читать дальше
editLinksNet - мое первое дополнение в официальном репозитории MODX
24 апреля 2013, 18:07
Я уже писал о том, как мы делаем перелинковку на наших сайтах. Но мне было неудобно на каждом новом сайте создавать плагины, чанки, сниппеты и вставлять в них код.
Сначала сделал пакетик с помощью PackMan и устанавливал этот пакет локально. Но и это тоже утомляло — найти последнюю версию пакета, загрузить его на сайт… И я решил закинуть пакет в репозиторий.
Никакого ответа мне не пришло, около месяца я заглядывал в репозиторий в поисках своего пакета, но его все никак не одобряли и в репозитории он не появлялся.
Сегодня случайно наткнулся на ссылку на свой же плагин) И могу с радостью представить вам первое мое дополнение, которое попало в официальный репозиторий MODX — EditLinksNet 0.1.0-beta1
Читать дальше
Сначала сделал пакетик с помощью PackMan и устанавливал этот пакет локально. Но и это тоже утомляло — найти последнюю версию пакета, загрузить его на сайт… И я решил закинуть пакет в репозиторий.
Никакого ответа мне не пришло, около месяца я заглядывал в репозиторий в поисках своего пакета, но его все никак не одобряли и в репозитории он не появлялся.
Сегодня случайно наткнулся на ссылку на свой же плагин) И могу с радостью представить вам первое мое дополнение, которое попало в официальный репозиторий MODX — EditLinksNet 0.1.0-beta1
Читать дальше
Правильный хостинг для MODX Revolution — Текстовая версия
18 мая 2014, 19:03
Видео можно посмотреть здесь: http://ilyaut.ru/video/hosting-for-modx/
Предлагаю вашему вниманию вторую версию инструкции по созданию собственного хостинга для сайтов на MODX Revolution и не только.
На сей раз я заснял и смонтировал видео всего процесса, постарался от души. Можно скачать в ультра-мега качестве (FullHD 1920x1080x25, 785mb).
Читать дальше
Предлагаю вашему вниманию вторую версию инструкции по созданию собственного хостинга для сайтов на MODX Revolution и не только.
На сей раз я заснял и смонтировал видео всего процесса, постарался от души. Можно скачать в ультра-мега качестве (FullHD 1920x1080x25, 785mb).
Читать дальше
Как работают дополнения MODX. Часть 4 — ExtJS Grid
28 октября 2017, 14:18
Познакомимся с новым типом объектов в ExtJS — таблицей.
Давайте, добавим на страницу нашего дополнения объект типа GridPanel (xtype: grid).
У таблицы обязательными параметрами являются columns — список колонок и store — собственно список данных, которые нужно отобразить в таблице.
Параметр store есть у многих объектов в ExtJS. Обычно, если нужно отобразить какой-то список, используется параметр store. Это может быть как таблица, так и выпадающий список элементов (как в админке MODX выпадает список шаблонов при редактировании ресурса). Ещё есть, например ListView (xtype: listview), который просто выводит список элементов без возможности редактировать.
Из-за того, что таких типов несколько (а мы можем ещё и свои собственные типы создавать), store — это не просто массив, а тоже объект со своими свойствами. В ExtJS для store есть несколько типов объектов:
Читать дальше
Давайте, добавим на страницу нашего дополнения объект типа GridPanel (xtype: grid).
У таблицы обязательными параметрами являются columns — список колонок и store — собственно список данных, которые нужно отобразить в таблице.
Параметр store есть у многих объектов в ExtJS. Обычно, если нужно отобразить какой-то список, используется параметр store. Это может быть как таблица, так и выпадающий список элементов (как в админке MODX выпадает список шаблонов при редактировании ресурса). Ещё есть, например ListView (xtype: listview), который просто выводит список элементов без возможности редактировать.
Из-за того, что таких типов несколько (а мы можем ещё и свои собственные типы создавать), store — это не просто массив, а тоже объект со своими свойствами. В ExtJS для store есть несколько типов объектов:
Читать дальше
Как работают дополнения MODX. Часть 6 — ExtJS Windows
06 ноября 2017, 16:39
Добавим возможность пользователю создавать новые объекты без использования phpMyAdmin. Воспользуемся для этого кнопкой, которую мы создали раньше
Читать дальше
{ xtype: 'button', text: 'Create thing', // Меняем надпись cls: 'primary-button', handler: function() { // После клика на кнопку MODx.load({ // будем загружать новый ExtJS-объект xtype: 'things-window-names', }); } }У ExtJS есть такой объект, как окно
Читать дальше
Как работают дополнения MODX. Часть 5 — Подготовка процессора
28 октября 2017, 18:58
В нашей таблице можно вывести любые объекты MODX. Но для примера создадим свой тип объектов, так как это самая частая задача при разработке дополнений.
Хранить объекты будем в базе данных MODX. Для этого создадим в ней табличку с таким же префиксом, как и у других таблиц:
Читать дальше
Хранить объекты будем в базе данных MODX. Для этого создадим в ней табличку с таким же префиксом, как и у других таблиц:
CREATE TABLE `modx_things_names` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `description` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `active` TINYINT(1) UNSIGNED NOT NULL DEFAULT 1, PRIMARY KEY (`id`), INDEX (`active`) ) ENGINE=MyISAM CHARSET=utf8 COLLATE utf8_general_ci;
Читать дальше
Решаем проблему с getPage и несуществующими страницами
30 июля 2013, 15:08
Недавно в блоге bezumkin'а подняли тему генерации страниц сниппетом getPage:
Читать дальше
подскажите по поводу пагинации. допустим имею две страницы: page 1, page 2.
но если в адресную строку ввести несуществующий адрес/?page=N то открывается пустая страница, а не 404?
кто нибудь решал этот вопрос?
Читать дальше