Я против ужасной войны! Я выражаю свой протест. Я русский. Нам всем пиздец из-за всего лишь одного человека.

Подключить MODX в стороннем PHP файле

// Подключаем
define('MODX_API_MODE', true);
require $_SERVER['DOCUMENT_ROOT'].'/index.php';

// Включаем обработку ошибок
$modx->getService('error','error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_INFO);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');

//Проверяем работу:
if ($res = $modx->getObject('modResource', 1)) {
    print_r($res->toArray());
}

Теперь можно использовать все инструменты, словно вы работаете в сниппете.

Обработка чанков в стороннем файле

Для того чтобы просто выводить чанки без сниппетов, и так чтобы обрабатывался синтаксис fastFields мне потребовалось немного потанцевать с бубном и взять решение из pdoTools. Я добавил нижеследующий код после подключения MODX. А для вывода чанка использовал вот такую конструкцию: echo $pdoFetch->getChunk($chank_name, $script_props);

/** @var pdoFetch $pdoFetch */
$fqn = $modx->getOption('pdoFetch.class', null, 'pdotools.pdofetch', true);
$path = $modx->getOption('pdofetch_class_path', null, MODX_CORE_PATH . 'components/pdotools/model/', true);
if ($pdoClass = $modx->loadClass($fqn, $path, false, true)) {
  $pdoFetch = new $pdoClass($modx, array());
} else {
  return false;
}
$pdoFetch->addTime('pdoTools loaded');
$output = $pdoFetch->run();

$log = '';
if ($modx->user->hasSessionContext('mgr') && !empty($showLog)) {
    $log .= '<pre class="pdoResourcesLog">' . print_r($pdoFetch->getTime(), 1) . '</pre>';
}

Комментарии (1)

  1. Amsterdam 31 мая 2019, 18:16 # 0
    Авторизоваться то как?
    *Комментарий будет опубликован после проверки модератором

    Комментарии easyComm

    Станислав 17 марта 2018, 22:34

    Мне кажется в этоv куске строке что то не так!? -->...нужно заменить return на echo в тех...

    Похожие статьи

    Наш сайт использует куки, нажмите «ОК» если вы не против
    OK