0

Joomla 2.5で構築されているサイトがあり、このサイトは他のフレームワークで構築された別のアプリケーションと統合する必要があります(これは私たちの関心事ではありません)。

Joomlaサイト/フロントエンドには次のURLからアクセスできますhttp://wwww.server.com/

アプリケーションはhttp://wwww.server.com/app/の下に保持されます

次のコードスニペットを使用して、JoomlaAdminで定義されたメニューをアプリケーションサイドバーに再作成しようとしています。

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/、そこに含まれているはずのURLが含まれています。

4

1 に答える 1

0

ルートやuriなどのファイルをかなり掘り下げた後、上記のコードにダーティフィックス/ハックを追加して、正しいメニュー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 に答える