2011-08-08 26 views
4

は私が私のプラグインjoomlaの環境にアクセスすると、コードのこれらの行を追加しました(私のソース:http://www.diademblogs.com/content-management-systems/two-ways-to-add-joomla-users-using-your-custom-code):プラグインでJPATH_BASEを定義するにはどうすればよいですか?

define('_JEXEC', 1); 
define('JPATH_BASE', dirname(__FILE__));//this is when we are in the root 
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(); 

しかし、私は巧みに、私はプラグインをプログラミングしていたときに(よりJPATH_BASE変数を定義する方法特定の:承認プラグイン)?

私はJoomla 1.7を使用しています。

答えて

2

あなたのプラグインはjoomlaアプリケーションによって実行されます。だから、定義する必要はありません、ただそれらを使用します。

+0

Joomlaの外でプラグインを呼びたいと思っています。私はそれが私が定義しなければならない理由だと思います。たぶんそれは意味がない、私はJoomlaから使用されることはありませんが、Webサービスから直接呼び出される "Joomlaのプラグイン"を実装する権利ですか? –

1

私のファイルはいつも私がやっによって取得され、コンポーネントのフォルダになりますので、私は、ユニットテストJoomlaのコンポーネントのためにこれを使用します。

define('JPATH_BASE', dirname(substr(__FILE__, 0, strpos(__FILE__, 'components')))); 

は、ここで私はロードするために私のテストクラスの最上部に置くものですJoomlaの環境:あなたのテストはわずか数分待って何も出力されないように見えるので、もしJoomlaのは、出力バッファリングを有効にすることを

//Load Joomla environment 
if (! defined('_JEXEC')) 
    define('_JEXEC', 1); 
$DS=DIRECTORY_SEPARATOR; 
define('DS', $DS); 

//Get component path 
preg_match("/\\{$DS}components\\{$DS}com_.*?\\{$DS}/", __FILE__, $matches, PREG_OFFSET_CAPTURE); 
$component_path = substr(__FILE__, 0, strlen($matches[0][0]) + $matches[0][1]); 
define('JPATH_COMPONENT', $component_path); 

define('JPATH_BASE', substr(__FILE__, 0, strpos(__FILE__, DS.'components'.DS))); 
require_once (JPATH_BASE .DS.'includes'.DS.'defines.php'); 
require_once JPATH_BASE .DS.'includes'.DS.'framework.php'; 
jimport('joomla.environment.request'); 
$mainframe =& JFactory::getApplication('site'); 
$mainframe->initialise(); 

注意。

関連する問題