Загрузите Джумлу! Фреймворк 5.2 из внешнего файлаPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Загрузите Джумлу! Фреймворк 5.2 из внешнего файла

Сообщение Anonymous »

Мне нужно создать экземпляр Joomla! 5.2 из внешнего файла, но не могу заставить его работать.
В Joomla! 3 я создал метод, который будет использоваться вызовами AJAX для возврата содержимого модуля. Во-первых, Joomla! Framework был создан, как показано здесь: Загрузите фреймворк Joomla 3.x и модули во внешний файл PHP. После этого модуль отрендерился и вернулся.
Однако в Joomla! 5.2, я не могу создать экземпляр фреймворка. Изначально язык не был установлен. Я принудительно загрузил язык, но теперь столкнулся с проблемой с компонентом шаблона.
Есть ли у кого-нибудь какие-нибудь советы?
defined('_JEXEC') or die;

use Joomla\CMS\Factory;
use Joomla\CMS\Application\SiteApplication;
use Joomla\Session\SessionInterface;

if (!defined('JPATH_BASE')) {
define('JPATH_BASE', '/home/myinstallation'); // Path to Joomla
}

require_once JPATH_BASE . '/includes/defines.php';
require_once JPATH_BASE . '/includes/framework.php';

try {
// DI-Container
$container = Factory::getContainer();

// Register alias for session
if (!$container->has(SessionInterface::class)) {
$container->alias(SessionInterface::class, 'session.web.site');
}

// Load the application
$app = $container->get(SiteApplication::class);
Factory::$application = $app;

// start session
$session = $app->getSession();
if (!$session->isActive()) {
$session->start();
}

// Get the menu
$input = $app->input;
$menu = $app->getMenu();

// Get menu default item ID
$defaultMenuItem = $menu->getDefault();
if ($defaultMenuItem !== null) {
$menu->setActive($defaultMenuItem->id); // ID des Standard-Menüpunkts setzen
} else {
echo "Can't find default menu item." . PHP_EOL;
}

// Instantiate language manually
$language = new Joomla\CMS\Language\Language('en-EN', JPATH_BASE);

// Load language files
$loaded = $language->load('joomla', JPATH_BASE, 'en-EN');
if (!$loaded) {
throw new \RuntimeException("Can't load language files.");
}

// Set language manually
Factory::$application->loadLanguage($language);

// Debug output
echo 'Language loaded successfully: ' . $language->getTag() . PHP_EOL;

} catch (\Exception $e) {
die('Error starting Joomla: ' . $e->getMessage());
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... ernal-file
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»