最近、カスタム Joomla コンポーネントに取り組んでいます。また、いくつかの外部スクリプト (Joomla フレームワークの一部ではない) で Joomla コア関数が必要です。
Joomla構造の一部ではないコンポーネントとそのカスタムクラスがあるとしましょう。
www.url.com/components/com_customcomp/custom_classes/some_class.php
そこで、Joomla クラスをロードします。
if (!defined('JPATH_COMPONENT') or !constant('JPATH_COMPONENT')){
define( '_JEXEC', 1 ); //let direct access
define( 'JPATH', $_SERVER['DOCUMENT_ROOT']);
define( 'JPATH_BASE', $_SERVER['DOCUMENT_ROOT'] . '/administrator' );
define( 'DS', DIRECTORY_SEPARATOR );
define('JPATH_COMPONENT', JPATH_BASE.DS.'components'.DS.'com_customcomp');
//load joomla framework
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php');
require_once( JPATH_LIBRARIES .DS.'joomla'.DS.'factory.php');
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
}
JURI::root(); のような一部の Joomla コア関数を除いて、すべて正常に動作します。戻り値:
www.url.com/components/com_customcomp/custom_classes
それ以外の:
www.url.com/
また、JRoute::_() などの奇妙な結果が得られることもあります。
何が問題ですか ?その機能を正しく動作させるにはどうすればよいですか?
あなたの助けをいただければ幸いです。