Дата публикации
15 Апреля 2019
Дата изменения
4 Июля 2020
Уникальных просмотров
4.135

Оглавление

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

connectors/

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

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

Описание известных файлов:
  • connectors/index.php — Этот файл особенно полезен при создании собственных коннекторов. Просто включите этот файл в свои коннекторы, а затем обработайте запрос с помощью $modx -> request -> handleRequest();.

core/

Core — это то, что делает Модэкс — Модексом. Это основа для всех библиотек системы. Все, что вам нужно, за исключением файлов менеджера и файлов установки, находится в этом каталоге.

core/cache/

Каталог кэша содержит все файлы кэша, созданные MODx. Кэш лексиконов, элементов, ресурсов, RSS, данных Smarty и т. д. Они генерируются по требованию MODx. Кэширование происходит после первого обращения к сайту.

core/cache/action_map/

Содержит массив всех идентификаторов контроллеров и пространств имён, доступных в менеджере. Когда включено, actions (или controller maps) будут кэшироваться, чтобы значительно сократить время загрузки страницы менеджера.

core/cache/auto_publish/

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

core/cache/context_settings/

Этот каталог используется для хранения настроек контекстов. Каждый контекст в этом разделе имеет свою категория, а в ней файл настроек. В нем содержится карта ресурсов (идентификаторы родителей и детей), карта псевдонимов, плагины, используемые в контексте и политика доступа.

core/cache/includes/

Данный раздел используется для хранения исходных данных php файлов сниппетов и плагинов. Используются во время их выполнения. Файлы имеют формат: 10.include.cache.php, где 10 — это id сниппета или плагина.

core/cache/lexicon_topics/

Раздел содержит в себе кэш папок и файлов лексиконов. Сначала вы встретите папки языков (en, ru, ua и т. д.). Внутри них лежат файлы и папки с кэшированными данными лексиконов, как сторонних компонентов, так и самого MODx.

core/cache/logs/

Все log файлы системы располагаются здесь. Например тут вы найдете файл error.log, который содержит дату, время, файл и ошибку, которая была зарегистрирована в MODx. Чтобы записать логи в этот файл, вы можете использовать метод $modx->log ().

Пример ниже, выведет в лог надпись «Сообщение в логе».

<?php
$modx->log(1, 'Сообщение в логе');

core/cache/menu/

Этот каталог содержит кэш меню Back-end панели.

core/cache/mgr/

Данный каталог использует шаблонизатор Smarty в качестве своего хранилища и записи в него временных файлов.

core/cache/namespaces/

В каталоге лежит кэш пространства имён, представляющий из себя массивы с некоторыми связующими данными компонентов.

core/cache/resource/

Каталог хранит кэш ресурсов с учетом контекста. При обращении к ресурсу на фронте сайте, появляется папка с названием контекста ресурса, и в ней лежат файлы кэша ресурса, к которому произошло обращение. Файлы имеют формат: 7.cache, где 7 — это id ресурса.

core/cache/rss/

Кэш для RSS-каналов в MODx.

core/cache/scripts/

Каталог содержит исходные коды сниппетов и плагинов, которые впоследствии будут записаны в кэш директорию includes.

core/cache/system_settings/

Каталог содержит глобальную конфигурацию и системные настройки MODx. Этот раздел загружается первым. Он не может быть загружен из другого обработчика кэша, всегда используется только xPDOFileCache.

core/components/

При установке пакета с помощью Package Manager, будет создан каталог core/components/ для хранения файлов, необходимых для запуска установленного компонента.Как правило, любые файлы, необходимые для запуска в Back-end панели, такие как контроллеры, данные модели/схемы, процессоры и файлы классов, должны храниться здесь.

core/config/

Этот каталог содержит файл changelog.txt, файл-лиценизию the GPL license и любые учебные пособия, созданные для MODx Revolution.

Напоминаем, что для большей безопасности вашего сайта, необходимо удалить файл changelog.txt после установки системы.

core/error/

Это каталог содержит шаблоны страниц сообщений об ошибках в интерфейсе MODx Revolution. Вы можете настроить эти страницы здесь.

core/import/

Чтобы запустить функцию импорта в MODx Revolution, вам нужно разместить ваши HTML-файлы в этот каталог. После чего перейти к функции импорта в Back-end панели.

core/lexicon/

В MODx Revolution файлы лексиконов разделяются на отдельные каталоги в зависимости от их двузначного кода IANA (например, английские лексиконы хранятся в /core/lexicon/en/, а русские в /core/lexicon/ru/). Внутри этих подкаталогов находятся файлы в формате topic.inc.php.

Все лексиконы хранятся в базе данных MODx, а затем кэшируются по требованию. Это позволяет управлять лексиконами непосредственно из менеджера, внутри области «Управление словарями».

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

<?php
$modx->lexicon->load('lang:namespace:topic');
  1. lang — двузначный код IANA. Необязательная часть, по умолчанию будет использоваться en.
  2. namespace — У каждого лексикона есть свое пространство имен. Встроенное пространство имен для MODx — «Core». Свои собственные пространства имен могут создавать как разработчики пакетов, так и пользователи Back-end панели MODx.
  3. topic — Тема/файл, который вы хотите загрузить.

Например так можно получить русскоязычное значение темы welcome, которая в свою очередь находится в пространстве имён core.

<?php
$res = $modx->lexicon->load('ru:core:welcome');
$res = $modx->lexicon('modx_news');
return $res;

core/model/

Это модель из схемы MVC (model-view-controller), это означает что в приложении должно быть как минимум три части:

  1. Model — содержит структуру базы данных.
  2. View — является частью графического интерфейса приложения (GUI), не содержит никакой логики — только представление.
  3. Controllers — соединяют модель с представлением.

Работа модели в MODx похожа на работу модели в MVC. Фактически мы создаем схему MVC/C, в которой мы добавляем точку доступа коннектора и процессоров к модели. Мы разберем этот момент чуть позже. Важно знать, что модель содержит все классы PHP, которые запускают MODx Revolution, включая процессоры, которые обрабатывают определенные функции — такие как сохранение сниппетов, удаление чанков и т. д.

core/model/modx/

Очередной подкаталог MODx? Да! MODx Revolution использует xPDO для управления базами данных. xPDO использует идею «пакетов» для различных подключений к различным моделям. Поэтому, если бы мы захотели создать свои пользовательские таблицы, правильней было бы создать пакет xPDO и добавить его во время выполнения. Таким образом, мы могли бы использовать и создавать карты и классы, без необходимости изменять ядро MODX. Именно так создаются пакеты для MODx.

Таким образом, можно сделать вывод, что каталог core/model/modx ссылается на пакет «modx». Зайдите внутрь этого каталога и вы увидите множество классов. Эти классы являются объектами xPDOObjects — которые в свою очередь являются классами PHP. Они отражают таблицы в БД (т. е. modsnippet.class.php — это класс PHP, который является объектом modx_site_snippets) или они являются функциональными классами, такими как modcachemanager.class.php.

Подкаталоги в этой папке — не включая mysql или processors — являются подкатегориями классов, которые загружаются следующим образом:

<?php
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, которые можно получить отсюда smarty.net — В этой папке ничего не настроено для работы с MODx — это происходит в другом месте. Smarty — это интеллектуальный объектно-ориентированный механизм шаблонов, который использует динамические изменяемые плейсхолдеры. Большинство страниц, которые вы увидите в менеджере и во время установки системы, являются шаблоном Smarty. Шаблоны имеют формат (.tpl), с ними взаимодействует MODx.

Например, при редактировании ресурса (документа) в менеджере вы просматриваете страницу, сгенерированную контроллером в manager/controllers/resource/staticresource/update.php. После установки характеристик ресурса в массиве $resource этот код отобразит страницу:

$modx->smarty->assign('resource',$resource); return $modx->smarty->fetch('resource/staticresource/update.tpl');

Плейсхолдеры Smarty в update.tpl заполняются данными, хранящимися в массиве $resource.

core/packages/

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

core/xpdo/

MODx Revolution был разработан для использования OpenExpedio (xPDO), расширения для PDO. Он обеспечивает единый интерфейс для управления базами данных и позволяет MODx поддерживать различные платформы баз данных помимо MySQL.

В этом каталоге содержатся все файлы классов, необходимые xPDO для выполнения всего: от кэширования запросов до создания транспортных пакетов и вывода данных в виде удобного объекта JSON.

Эти классы используются самим MODx, и разработчикам никогда не нужно работать с ними напрямую.


manager/

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

manager/assets/

Этот каталог содержит библиотеки ExtJS, а также пользовательскую реализацию ModExt. ModExt расширяет оригинальную библиотеку ExtJS, чтобы сделать разработку более удобной для пользователей.

manager/controllers/

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

manager/templates/

Этот каталог содержит файлы шаблонов для каждой страницы менеджера. Они не содержат PHP кода и используются для организации HTML. Если вы ищете Smarty.tpl-файл для определенной страницы менеджера, проверьте каталог manager/templates/default/.

assets/

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

assets/components/

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

setup/

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

_build/

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

Благодарность автору

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

Один из самых популярных способов поблагодарить автора, воспользоваться сервисом Яндекс.Деньги.

Время работы: 0,1424 s
Время запросов: 0,1424 s
Количество запросов: 24
Источник: cache