Skip to content
  1. Готовые решения
  2. ZoomX
  3. Перенос директории разработки

Перенос директории разработки

Разберём на примере, как перенести контроллеры, плагины, сниппеты и шаблоны zoomx в папку core/elements/zoomx/.

Добавление кастомных контроллеров

В папке core/config/ создаём файл elements.php и добавляем в него следующий код:

php
<?php
zoomx()->getLoader()->addPsr4('App\\Controllers\\', MODX_CORE_PATH . 'elements/zoomx/controllers/');

Для примера добавим новый контроллер HelloController.

В папке core/elements/zoomx/controllers/ создаём файл HelloController.php, добавляем в него код:

php
<?php
namespace App\Controllers;
use Zoomx\Controllers;

class HelloController extends \Zoomx\Controllers\Controller {
  public function hello() {
    zoomx()->autoloadResource(false);

    $site_name = $this->modx->getObject('modSystemSetting', ['key' => 'site_name']);
    return "hello {$site_name->get('value')}!";
  }
}

Открываем файл core/config/routes.php и добавляем обработку роутера:

php
// ---
$router->get('api/test', ['\App\Controllers\HelloController', 'hello']);
// ---

Теперь открыв сайт по адресу https://site_name/api/test получим ответ от сервера.

Перенос папки плагинов, сниппетов и шаблонов

В директории core/elements/zoomx/ создаём папки templates, snippets, plugins.

Копируем содержимое папки core/components/zoomx/templates/ в папку core/elements/zoomx/templates/.

Открываем системные настройки в панели управления сайтом и изменяем значения ключей:

КлючЗначение
zoomx_file_snippets_path{core_path}elements/zoomx/snippets/
zoomx_smarty_custom_plugin_dir{core_path}elements/zoomx/plugins/
zoomx_template_dir{core_path}elements/zoomx/templates/