Я использую Joomla 3.
Я хотел бы добавить один из моих модулей joomla на отдельную (от joomla) страницу PHP. Это возможно?
Из того, что я мог найти в Интернете, мне нужно вызвать фреймворк Joomla, а затем ??????? и тогда это работает.
<?php define( '_JEXEC', 1 );
define('JPATH_BASE', dirname(__FILE__));
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
<jdoc:include type="modules" name="position-22" style="none" />
</body>
</html>
Да, это возможно
Инициализировать Joomla Framework (из Joomla 3.4.1 index.php)
define('_JEXEC', 1);
if (file_exists(__DIR__ . '/defines.php'))
{
include_once __DIR__ . '/defines.php';
}
if (!defined('_JDEFINES'))
{
define('JPATH_BASE', __DIR__);
require_once JPATH_BASE . '/includes/defines.php';
}
require_once JPATH_BASE . '/includes/framework.php';
$app = JFactory::getApplication('site');
$app->initialise();
После инициализации вы можете вызвать позицию вашего модуля, используя JHtml
echo JHtml::_('content.prepare', '{loadposition position-22}');
Других решений пока нет …