Самозагрузка C5 из внешнего скрипта

Я пишу скрипт импорта для добавления внешнего содержимого в установку C5.

Я не уверен, какие файлы мне нужно включить, чтобы получить доступ к C5 API (без каких-либо действий, таких как загрузка страницы)?

/concrete/dispatcher.php выполняет загрузку инициализаций, но я не уверен, какие из них требуются. Просто в том числе dispatcher.php заставляет скрипт перейти к диалоговому окну установки.

Есть ли канонический способ инициализации C5 во внешнем инструменте? Я не могу найти ничего в документации для разработчиков.

2 ответа

Решение

E сть C5_ENVIRONMENT_ONLY константу, которую вы можете определить, после чего вы можете включить файл "index.php", чтобы получить систему c5, не позволяя ей обслуживать определенную страницу или тему.

<?php
define('C5_ENVIRONMENT_ONLY', true);
include("index.php");

//C5 should be loaded now, so you can interact with the API...

Я только что проверил это на последней версии (5.6.1), и она работала просто отлично - я смог запросить базу данных через Loader::db() и мог взаимодействовать с вошедшим в систему пользовательским объектом (global $u). Поэтому я предполагаю, что если эти две вещи сработают, то все будет работать.

Я нашел эти 2 темы форума некоторое время назад:

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

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

Другие вопросы по тегам