Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在插件中定义JPATH_基?_Php_Joomla_Joomla Extensions - Fatal编程技术网

Php 如何在插件中定义JPATH_基?

Php 如何在插件中定义JPATH_基?,php,joomla,joomla-extensions,Php,Joomla,Joomla Extensions,我想在我的插件中访问joomla环境,并添加了以下代码行(我的源代码:): 但是,在编写插件(更具体地说,是授权插件)时,我如何才能定义JPATH_BASE变量呢 我正在使用Joomla 1.7。您的插件由Joomla应用程序执行。因此,您不需要定义,只需使用它们。我将其用于单元测试Joomla组件,因此我的文件将始终位于components文件夹中,我通过以下操作获得: define('JPATH_BASE', dirname( substr(__FILE__, 0, strpos(__FIL

我想在我的插件中访问joomla环境,并添加了以下代码行(我的源代码:):

但是,在编写插件(更具体地说,是授权插件)时,我如何才能定义JPATH_BASE变量呢


我正在使用Joomla 1.7。

您的插件由Joomla应用程序执行。因此,您不需要定义,只需使用它们。

我将其用于单元测试Joomla组件,因此我的文件将始终位于components文件夹中,我通过以下操作获得:

define('JPATH_BASE', dirname( substr(__FILE__, 0, strpos(__FILE__, 'components') )));
下面是我在测试类顶部添加的内容,用于加载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();

请注意,Joomla将启用输出缓冲,因此如果您的测试似乎没有输出,请等待几分钟。

我想在Joomla之外调用插件。我想这就是我必须定义的原因。也许这毫无意义,我实现了一个“Joomla插件”,它从不从Joomla使用,而是直接从Web服务调用,对吗?
//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();