Сортировка: По дате ↓ По просмотрам
MODX. Вывод новостей на сайте
12 ноября 2017, 09:52
Выводим новости на сайте MODX с помощью сниппета getResources.
Читать дальше
Читать дальше
Как работают дополнения 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;
Читать дальше
Как работают дополнения 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. Часть 3 — ExtJS Button
23 октября 2017, 15:28
Наверняка вы знаете, что обычно все дополнения MODX хранятся в папках /assets/components/ и /core/components/. Мы же создали папку нашего дополнения прямо в корне сайта. Это для того, чтобы было понятно — расположение файлов значения не имеет, MODX просто «смотрит» путь в пространстве имён и «идёт» по этому пути.
Расположение дополнений в папках core и assets имеет под собой ряд причин.
Читать дальше
Расположение дополнений в папках core и assets имеет под собой ряд причин.
Читать дальше
Как работают дополнения MODX. Часть 2 — ExtJS Panel
23 октября 2017, 12:48
Для того, чтобы добавить свои стили и скрипты на страницу дополнения, в классе modExtraManagerController есть метод loadCustomCssJs. Давайте, воспользуемся им, чтобы запустить наш первый ExtJS-скрипт.
Читать дальше
<?php class ThingsIndexManagerController extends modExtraManagerController { public function getPageTitle() { return 'Things'; } public function getTemplateFile() { return dirname(__FILE__) . '/home.tpl'; } public function loadCustomCssJs() { $this->addHtml("<script> Ext.onReady(function() { var title = 'Мой заголовок'; var msg = 'Модель DOM готова...'; Ext.MessageBox.alert(title,msg); }); </script>"); } }
Читать дальше
Как работают дополнения MODX. Часть 1 — Namespace и Controller
22 октября 2017, 15:49
Разберём создание дополнения MODX руками — без всяких заготовок типа modExtra.

Мы будем разбирать создание именно «дополнения», а не «пакета» или «компонента». Для понимания разницы приведу в пример работу со сниппетами в MODX. Мы можем нажать в админке кнопку «Новый сниппет», ввести в открывшейся форме имя Hodor и код:
Читать дальше

Мы будем разбирать создание именно «дополнения», а не «пакета» или «компонента». Для понимания разницы приведу в пример работу со сниппетами в MODX. Мы можем нажать в админке кнопку «Новый сниппет», ввести в открывшейся форме имя Hodor и код:
<?php return 'Hodor!';После сохранения мы можем вызывать его в любом месте шаблона и пользоваться сниппетом. Но если мы хотим использовать этот сниппет на нескольких сайтах, можно сделать транспортный пакет, который будет содержать в себе сниппет Hodor.
Читать дальше
Делаем MODX-сайт более безопасным
09 октября 2017, 09:04
В этом видео автор делится советами по настройке безопасности в modx, которые позволят повысить надежность вашего сайта
Читать дальше
Читать дальше
siteExtra — Быстрое развертывание сайта на MODX
22 сентября 2017, 09:55
siteExtra MODX Revolution создание сборки MODX Быстрое развертывание сайта на MODX
Читать дальше
Читать дальше
Пример сложного интерфейса на ExtJS в MODx Revolution
19 сентября 2017, 08:07
Создание интерфейсов на ExtJS для админки MODx Revolution. Пример того, как создать интерфейс в разделе админки. Сложный, но интересный урок.
Читать дальше
Читать дальше