0

我有一个使用 Joomla 2.5 构建的站点,并且该站点必须与在其他框架中构建的另一个应用程序集成(这不是我们关心的问题)。

Joomla 站点/前端可通过以下 URL http://www.server.com/ 访问

该应用程序保存在http://wwww.server.com/app/下

我正在尝试使用以下代码片段将 Joomla Admin 中定义的菜单重新创建到应用程序侧边栏中

define( '_JEXEC', 1 );
define('JPATH_BASE', realpath(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');
jimport( 'joomla.application.module.helper' );
$module = JModuleHelper::getModules('left');
echo JModuleHelper::renderModule($module[0]);

这会在非 Joomla 页面上完美生成菜单,但是为 HREF 属性生成的 URL/app/包含在其中,不应该存在

4

1 回答 1

0

在对路由、uri 等文件进行了大量研究之后,我在上面提到的代码中添加了一个脏修复/hack 以生成正确的菜单 URL:

define( '_JEXEC', 1 );
define('JPATH_BASE', realpath(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');
$JConfig=JFactory::getConfig();
$JConfig->set('live_site','http://www.server.com/');
jimport( 'joomla.application.module.helper' );
$module = JModuleHelper::getModules('left');
echo JModuleHelper::renderModule($module[0]);

在我的例子中,我在这里尝试将“live_site”配置设置为站点的基本 url。

我希望这对某人有所帮助。

于 2012-08-21T12:24:41.333 回答