Идеология, основные определения, структура каталогов (файлов) MODX

Идеология, основные определения, структура каталогов (файлов) MODX MODX Revo
Техническая информация для разработчиков сайтов из которой вы узнаете идеологию cms MODX, основные определения и из каких файлов состоит MODX

Идеология MODX

Менеджер в MODX Revolution структурирован следующим образом:

• Controllers (контроллеры)
• Templates (шаблоны)
• Connectors (конекторы)
• Processors (процессоры)

Controllers (контроллеры) — PHP страницы, загружаемые до рендеринга страницы. Они подхватывают информацию и назначают Smarty переменные.

Контроллеры абстрагируются в рамках MODx Revolution как «modAction». т.е, пользователь может создать менеджер страниц, просто создавая файлы, а затем создать объект modAction. Это позволит разработчику добавлять контроллеры в верхнем меню. MODx кэширует действия карты ($ MODx-> ActionMap) для быстрого и легкого перенаправление на соответствующий контроллер.

Контроллеры в свою очередь не манипулируют данными, а просто получают их.

Шаблоны (Templates) — Smarty шаблоны (http://smarty.php.net ), которые, прежде всего являются XHTML шаблонами со Smarty тегами и JS. Они используются для отделения кода из содержания, и будут загружены на основе их параллельного контроллера.

Connectors (конекторы) — единичные PHP скрипты, требующие файл connectors/index.php. Они пересылают данные к процессорам на обработку или удаленную выбороку данных запросов, которые затем возвращают его к запросу AJAX, сделанных в файлах JS. Они на основе переменной $ _REQUEST ‘action’ , указанной в запросе JS, определяют процессор для загрузки.

Конекторы заблокированы для получения запросы только из авторизованных источников для предотвращения внутреннего взлома.

Processors (процессоры) — являются «винтиками» MODX. Вызываются только контроллеры или соединители, и никогда не обращются напрямую. Они выбирают записи из базы данных, и выделяют задачи, для выполнения (используя структуру CRUD), что позволяет быстро и легко произвести отладку.

Они посылают сообщения об ошибках с помощью класса modJSONError PHP, который является абстракцией класса уровня абстракции, который позволяет легко JSON-отформатированные сообщения об ошибках, которые будут отправлены обратно в XMLHttpRequest браузера.

Основные определения MODX

Сегодня мы поговорим об основных определениях MODX, чтобы вы в дальнейшем не терялись во всяких чанках, телевизорах и тому подобном.

Add-on (аддон/дополнение/плагин/модуль) — сторонний компонент (3PC), который не изменяет, но обеспечивает дополнительную функциональность ядру MODx.

Asset (актив) — любой тип ресурса файла, который обычно находится в каталоге /assets, расположение зависит от того как это определено в постоянной MODX_ASSETS_PATH. Может включать в себя компоненты (файлы изображений, CSS, JavaScript, классов, библиотеки и т.д.) сторонних производителей.

Back-end (админ панель) — синоним слова интерфейс менеджера MODx.

Category (категория) — необязательное имя классификации, которое можно присоединить к любому элементу, чтобы отделить его от других подобных объектов.

Chunk (чанк) — кусок html без исполняемых кодов, который можно использовать для встраивания в шаблоны, другие чанки, либо вызвать в снипете (TV). Чанк можно вызвать при помощи метки в виде [[$ChunkName]].

Component (компонент) — также называется 3PC или «Сторонний компонент». Как правило, обеспечивает дополнительную функциональность для MODx  в виде надстроек, шаблонов и дополнений.

Content Type (тип контента/ содержимого) — задает MIME-тип, расширение, и двоичный (бинарный) параметр для любого ресурса.

Context (контекст) – хранилище (разделитель) ресурсов и настроек, которые можно использовать для решения множества задач; обычно используется для создания нескольких контекстных сайтов, многоязычных сайтов и т.д.

Context Setting (настройка контекста) — создает новую установку или отменяет системные установки.

Document (Документ) — Конкретный тип ресурса, который может быть контейнером для четырех видов ресурсов: Документов, Web-ссылок, статических ресурсов и символических ссылок (в большинстве случаев это обычная веб-страница).

Document Identifier (идентификатор документа) — смотрите идентификатор ресурса.

Element (элемент)— какой-либо элемент: шаблон, шаблон переменной, кусок, фрагмента, плагин, категория, или набор свойств в дереве элементов менеджера.

Extension (расширение) — компонент, который изменяет MODx ядро, например: механизмы кэширования, или манипуляции контекстных классов.

File Resolver (Файл распознаватель) — тип xPDOVehicle преобразователя, который копирует файлы с исходного расположения в целевое расположение.

Friendly URL (дружественный URL/ЧПУ) — URL адрес веб страницы без каких либо параметров, например http://сайт.ru/contact.html, в место http://имя-сайта.ru/index.php?id=1.

Language Tags (языковые метки/теги) — метки в виде [[%LanguageStringKey]], ссылающиеся на MODx лексикон.

Lexicon (словарь/лексикон) — это словарь слов и фраз, который используется для интернационализирования  админ панели и могут быть использованы для локализации дополнений и расширений ядра. Он заменяет устаревшие языковые файлы MODx и позволяет настраивать записи непосредственно из админ панели.

Lexicon Topic (тема) — набор лексикон записей, относящихся к конкретной теме. MODx только загружает лексикон записи, в случае необходимости, тем самым уменьшает время загрузки.

Link Tags (ссылки метки/теги) — метки вида [[~ ResourceId]], ссылающиеся на URL конкретного ресурса.

Manager (менеджер) — фоновый интерфейс MODx.

Namespace (пространство имен) — организационный тег для компонентов, используемый для идентификации лексикон записей настроук и других объектов, связанных с компонентами на сайте. Также определяет абсолютный путь, в котором компонент может быть найден.

Placeholder Tags (теги/метки заполнителя) — метки вида [[+ PlaceholderName]], ссылающиеся на MODx заполнители, обычно устанавливается с помощью вызова $MODx->setPlaceholder (‘placeholderName’, ‘ value ‘) в сниппете или плагине.

Resource Field (поле ресурса) — любе из полей таблицы site_content, таких как PageTitle, longtitle, introtext, alias, menuindex и другие, доступны только через documentObject.

Property (набор)используется для установки определенного параметра элемента.

Property Set (набор свойств) — коллекция переменных используется для определенной цели с элемента.

Resource (ресурс) — тип контейнера, что интерпретируется парсером для извлечения содержимого. Может иметь любое количество производных классов; наиболее распространенным является документ.

Resource Identifier (идентификатор ресурса) — так называемый идентификатор документа или ресурса. Это число в скобках в дереве ресурсов админ панели, который однозначно идентифицирует указанный ресурс.

Resource Tags (метки/ теги ресурсов) — метки вида [[*ResourceField / TV]], которые могут быть использованы для обозначения ресурсов полей или переменных шаблонов (TV).

Resolver for xPDOVehicles (резольвер для xPDOVehicles) — пост-процессор: сценарий или предопределенное действие, вычисляемое после удаления или установки транспортного класса (Vehicle). Арбитры всегда вызывается после объектов транспортного класса (после вызова метода save()) и может выполнять действия на MODx прежде чем что-нибудь еще произойдет в процессе Установка/Удаление.

Setting Tags (метки/теги настройки) — метки вида [[+ + SettingName]], ссылающиеся на системные настройки MODx, пользовательские настройки и настройки контекста.

Snippet (сниппет) — php код, исполняемый во время обработки шаблона.

Snippet Tags (метки/теги сниппетов) — метка вида [[SnippetName]], ссылающиеся на вызов фрагмента кода.

Static Resource (статический ресурс) — конкретный тип ресурса, который является прямой ссылкой на файл, расположенный на сайте MODx. Содержание заменяется содержимым этого файла.

Symlink (символьная ссылка) — тип ресурса, который ссылается на локальный MODx ресурс. Содержание ресурса замещает собой содержимое символьной ссылки.

System Setting (настройка системы) — переменная доступная в пределах всего сайта MODx. Может быть изменена при настройке контекста и пользовательских настроек.

Template Variables, сокращенно TV (переменные шаблона) — особый вид ресурса поля, привязанный к шаблону, который используются для расширения стандартных полей, созданных пользователем. Вызывается следующим тегом: [[*tv]].

Transport Package (транспортный пакет) — упакованная и сжатая коллекция механизмов переноса, которые могут быть легко распределены («транспортированы») с одного ядра рабочей области в другую.

Transport Provider (транспортный поставщик) — веб-сервис, который позволяет производить удаленную установку транспортных пакетов, непосредственно из админ панели MODx.

Transport Vehicles (механизмы переноса) — контейнер, который инкапсулирует любой объект, который может быть распределен с помощью транспортного пакета. Механизмы переноса хранят свои данные в переносимом формате.

User Setting (пользовательские настройки) — настройка конкретного пользователя, можно вносить новые настройки или переопределять подобные настройки контекста или системные настройки.

Weblink (веб-ссылка) — тип ресурса, который ссылается на конкретный URL или MODx ресурс, перенаправляющий посетителя на этом URL или ресурс.

Validator for xPDOVehicles (валидатор для xPDOVehicles) — сценарий или предопределенное действие, которое выполняется до установки или удаления транспортного класса. Если валидатор возвращает истину (true), то процесс установки/удаления будет происходить в обычном режиме. Если валидатор возвращает ложь (false), то MODx не будет удалять или устанавливать пакет.

Валидатор может использоваться для проверки существования директории и доступности ее для записи, а так же для определения наличия на сервере определённой версии MySQL и PHP.

xPDOVehicle — базовый класс механизма переноса «xPDOVehicle», который хранит экземпляры объекта xPDOObject (которые представляют собой строку данных в таблице), при их использовании, вместе с различными атрибутами, контролирующими процесс установки/удаления объекта в рабочем пространстве ядра (см. валидаторы xPDOVehicle и резольверы xPDOVehicle).

MODX файлы — структура каталогов

Каталог MODX Revo разбит на подкаталоги, каждый из которых имеет свой набор обязанностей и задач. Часть этих каталогов можно переименовать и переместить, и их расположение может быть сконфигурировано во время установки.

После установки MODX, если вы зайдете в дерево каталогов, то увидите следующую структуру:

Структура каталогов MODX Revo

рассмотрим их.

connectors/

Здесь содержаться точки входа для AJAX-запросов, которые в свою очередь не делают никаких манипуляций с базой данных; они просто загружают главный класс MODX, затем проверяют данные запроса, и обрабатывают запрос, указав на соответствующий файл процессора.

Например, когда мы создаем ресурс, мы спрашиваем connectors/resource/index.php?action=create. Файл index.php будет включать в себя базовый файл (connectors/index.php) , который инициализирует MODX, обрабатывать любые пользовательские переключения, и сканировать GET или POST запросы. connectors/resource/index.php будет «обрабатывать» запрос и вызывать нужный файл процессор.

Дополнительные файлы

connectors/index.php — данный файл полезен при создании собственных коннекторов. Для этого нужно включить этот файл в коннекторы, а затем обработать запрос , используя $modx->request->handleRequest();

core/

Является основой для всех библиотек MODX Revo. Практически все, что нужно, за исключением файлов менеджера и файлов установки, находятся в этом каталоге.

core/cache/ содержит все кэш-файлы MODX. Лексикон, элементы, ресурсы, RSS каналы, и данные Smarty генерируются по требованию MODX, а это значит, они кэшируются только после первого доступа.

core/cache/logs/ — здесь Вы найдете файл error.log, который содержит дату, время, ошибки, которые были зарегистрированы в MODX. Чтобы произвести запись в данный файл, вы можете использовать метод $modx->log().

core/cache/mgr/ — этот каталог содержит данные кэша контекста. Он кэширует любые настройки контекста, которые были определены по умолчанию в параметрах системы.

core/cache/rss/ — кэш-память каждого RSS Feed в MODX.

core/cache/web/ — кэш MODX Revolution разделен на несколько частей. В каждом контексте есть файл context.cache.php. Этот файл, как файл config.cache.php, за исключением того, что он только кэширует настройки, которые были переопределены в настройках системы по умолчанию. Любой контекст можно переопределить в настройках системы. Кроме того, кэш веб контекста будет содержать отдельные каталоги для ресурсов и элементов. Ресурс с идентификатором 5 будет находиться на cache/web/resources/5.cache.php. Этот новый механизм кэширования означает, что время загрузки будет уменьшаться, а предел на число кэшируемых ресурсов исчезнет.

core/components/ — при установке пакета с помощью диспетчера пакетов , core/components/ / Будет создан каталог для хранения любых файлов, необходимых для запуска установленный компонентов (контроллеры, данные модели / схемы, процессоры и файлы классов).

core/config/ — данный каталог содержит файл конфигурации для MODX Revo. Он устанавливает учетные данные базы данных и ряд MODX_ констант для правильной работы вашего сайта.

core/docs/ — данный каталог содержит файл changelog.txt, лицензию GPL, а также любые обучающие программы, которые были созданы для революции.

core/error/ -данный документ содержит шаблонизации по умолчанию для сообщений об ошибке. Эти страницы можно настроить.

core/export/ — в MODX Revo после запуска функции экспорта, там будут располагаться экспортируемые HTML файлы Вашего сайта.

core/import/ — для выполнения функции импорта в MODX Revo, необходимо переместить HTML файлы в этот каталог.

core/lexicon/ — здесь хранятся файлы лексикона (перевода), они разбиты на отдельные каталоги, в зависимости от их двузначного кода IANA (например, английские словари хранятся в /core/lexicon/en/). Внутри этих подкаталогов несколько файлов, в формате «topic.inc.php«. А «topic» это просто один файл лексикона. Распределение лексиконов на темы означает , что загружаются только необходимые строки языка, тем самым экономиться память и время загрузки. Так же, все лексиконы хранятся в базе данных MODX, а затем кэшируются по требованию. Это позволяет управлять лексиконом непосредственно из Менеджера, внутри области [Lexicon Management].

Чтобы загрузить лексикон, можно использовать такой формат:

$modx->lexicon->load('lang:namespace:topic');

# Lang — 2-х значный код IANA. Это не является обязательным, и по умолчанию ‘en’.
1. namespace — Каждый лексикон имеет свое собственное пространство имен . Встроенный в пространство имен для MODX является «ядром». Создатели пакета также будут иметь возможность создавать пользовательское пространство имен, а пользователи диспетчера также могут создавать свои собственные пространства имен.
2. topic — Конкретное тема / файл , который вы хотите загрузить.

core/model/ — этот каталог включает модели ядра. В парадигме MVC (модель-представление-контроллер), которая гласит, что должно быть по крайней мере три части приложения. Model (модель), которая содержит структуру базы данных и хуки; View (вид), который является частью GUI приложения, которая не содержит никакой логики — только представления; и Connector (контроллеры), которые соединяют модели. Модель содержит все PHP классы, в том числе процессоры, которые обрабатывают определенные функции — такие, как сохранение фрагментов, удаление чанка и т.д.

core/model/modx/  MODx Revolution использует xPDO для управления базами данных. xPDO использует идею ‘пакетов’ для различных подключений к различным моделям. Так что , если бы я хотел , чтобы создать свои собственные таблицы, я бы создать новый пакет xPDO, и добавить его в во время выполнения. Таким образом , я мог бы использовать карты и классы ,созданные без необходимости модифицировать ядро MODX. Из этого можно сделать вывод о том, что каталог core/model/modx связывает пакет «MODX» и если заглянуть в него, вы увидите огромное количество классов. Эти классы, являются либо xPDOObjects — которые являются PHP классами, представляющие таблицы в БД (т.е. modsnippet.class.php является PHP классом, который является объектом modx_site_snippets), или же они представляют собой функциональные классы, такие как modcachemanager.class.php.
Поддиректории в этой папке — не включают в себя MySQL или процессоры — они загружаются так: $modx->loadClass(‘transport.modPackageBuilder’); где «.» разделитель каталогов.

core/model/modx/mysql/ — этот каталог содержит файлы классов и карты для каждого объекта xPDO. Карты это PHP массивы, содержащие структуру таблицы базы данных. Другие платформы баз данных, такие как PGSQL, MSSQL, и другие будут появляться здесь.

core/model/modx/processors/ — этот каталог содержит отдельные файлы процессоров, используемых в манипуляции данными. Они никогда не обращались напрямую, а вместо этого доступны через коннекторы. Это позволяет заблокировать их для предотвращения несанкционированного доступа.

core/model/schema/ — XML схема — представление базы данных MODX. Используется в создании новых карт и классов, но фактически никогда не читается или анализируется , когда MODX работает. По большей части, вы можете игнорировать этот каталог, так как он используется в основном для работы в области развития.

core/model/smarty/ — здесь содержатся Smarty библиотеки. Это просто извлечение файлов Smarty, которые вы можете получить здесь http://smarty.php.net . Smarty является интеллектуальным, объектно-ориентированный шаблонным движком, который использует динамические, изменяемые заполнители. Большинство страниц видно в диспетчере MODX и во время установки шаблона, файлы с разрешением (.TPL) являются Smarty файлами, которые взаимодействует с MODX.

core/packages/ — здесь вы найдете любые транспортные пакеты, загруженные через Управление пакетами, такие как Ace, TinyMCE и т.д. Основной пакет также находится здесь. Это способствует легкой установке и удалению, а также удаленного обновления установленных пакетов. При создании пакета (например, после проверки из SVN), транспорт пакет будет храниться здесь.

core/xpdo/ — MODX Revolution был разработан для использования OpenExpedio (xPDO), расширение к PDO. Он обеспечивает единый интерфейс для работы с базами данных, а также позволяет MODX поддерживать различные платформы баз данных, кроме MySQL. Этот каталог содержит все файлы классов, необходимых xPDO, что позволяет сделать все от кэширования запросов, до построения транспортных пакетов и вывода данных в качестве удобного объекта JSON.

Дополнительные файлы

core/cache/config.cache.php — Это файл кэша для всех настроек системы в MODX. Их эквиваленты базы данных находятся в таблице _system_settings, и их эквиваленты xPDO modSystemSetting объекты.

core/cache/sitePublishing.idx.php —  этот файл отслеживает интервалы обновления кэша.

core/cache/mgr/actions.cache.php — отображает все объекты modAction.

manager/

Менеджер бэкенд или админка MODX для создания ресурсов, управления пользователями, а также выполнение общих задач по обслуживанию сайта.

manager/assets/ — этот каталог содержит библиотеки ExtJS, а также реализацию пользовательских ModExt. ModExt расширяет оригинальную библиотеку ExtJS, чтобы сделать процесс разработки более удобным для пользователей.

manager/controllers/ — контроллеры это PHP файлы, привязанные к modActions. Они просто извлекают данные и возвращают их, также служат для визуализации и отображения в браузере. Всякий раз, когда вы загрузите страницу в менеджере, вы в сущности говорите MODX, чтобы он загрузил конкретный контроллер, который просто загружает Smarty шаблон и выводил в браузере любые необходимые JavaScript.

manager/templates/ — этот каталог содержит файлы-шаблоны для каждой страницы менеджера. Они не содержат PHP код, а используются для организации HTML.

Дополнительные файлы

manager/assets/ext2/ext-all.js — Это основной файл библиотеки Ext, которая должна быть включена на всех страницах Manager (или любой страницы с помощью Ext). Это сжимаются для экономии места, что бы уменьшить время загрузки и скорость загрузки страниц. Тем не менее, если вы делаете много работы JavaScript, вы можете столкнутся с ошибками. Лучший способ избавиться от ошибок, просто переименовать этот файл, а затем переименовать ext-all.js файл и ext-all-debug.js, использовать несжатую версию в процессе разработки. Просто убедитесь , чтобы переключить их обратно после этого!

setup/

Этот каталог является «установочным». Он содержит файлы ,необходимые для запуска программы установки и выполнения новой установки или обновления .

_build/

Этот каталог присутствует только в версии MODx Revolution скачанной с GitHub. Он содержит упакованные MODX файлы, необходимые для установки MODX в базу данных.

Дополнительные файлы

_build/transport.core.php — Этот файл должен быть выполнен после загрузки MODX Revo, и перед запуском программы установки. После завершения, вы должны заметить «ядро» внутри каталога core/packages/, который будет содержать все необходимые файлы для установки MODX Revolution.

assets/

Этот каталог не присутствует в MODX Revolution по умолчанию, но он является общим для размещения изображений, CSS, JavaScript и других файлов.

assets/components/— при установке пакета с помощью диспетчера пакетов , здесь будет создан каталог для хранения любых необходимых компонентов файлы, такие как JavaScript или изображений.

В следующем произведем основные настройки MODX.

Поделиться с друзьями
Алексей

Веб-дизайнер и SEO оптимизатор. Занимаюсь созданием сайтов с 2010 года и их продвижение с 2012 года!

Оцените автора
( 4 оценки, среднее 4 из 5 )
Web-Revenue.ru
Добавить комментарий