Мне нужно создать экземпляр 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
Загрузите Джумлу! Фреймворк 5.2 из внешнего файла ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1736935170
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());
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79309388/load-joomla-5-2-framework-from-external-file[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия