Php 从外部脚本引导joomla 2.5
这曾经在1.5中起作用。。。我可以设置以下代码:Php 从外部脚本引导joomla 2.5,php,joomla,cron,joomla2.5,joomla1.5,Php,Joomla,Cron,Joomla2.5,Joomla1.5,这曾经在1.5中起作用。。。我可以设置以下代码: function startJoomla() { define('_JEXEC', true); define( 'DS', DIRECTORY_SEPARATOR ); $dir= dirname(__FILE__); define('JPATH_BASE', $dir); // load joomla libraries require_once JPATH_BASE . DS . 'inclu
function startJoomla() {
define('_JEXEC', true);
define( 'DS', DIRECTORY_SEPARATOR );
$dir= dirname(__FILE__);
define('JPATH_BASE', $dir);
// load joomla libraries
require_once JPATH_BASE . DS . 'includes' . DS . 'defines.php';
require_once JPATH_LIBRARIES . DS . 'loader.php';
jimport('joomla.base.object');
jimport('joomla.factory');
jimport('joomla.filter.filterinput');
jimport('joomla.error.error');
jimport('joomla.event.dispatcher');
jimport('joomla.event.plugin');
jimport('joomla.plugin.helper');
jimport( 'joomla.utilities.utility' );
jimport('joomla.utilities.arrayhelper');
jimport('joomla.environment.uri');
jimport('joomla.environment.request');
jimport('joomla.user.user');
// JText cannot be loaded with jimport since it's not in a file called text.php but in methods
JLoader::register('JText', JPATH_BASE . DS . 'libraries' . DS . 'joomla' . DS . 'methods.php');
JLoader::register('JRoute', JPATH_BASE . DS . 'libraries' . DS . 'joomla' . DS . 'methods.php');
$mainframe = & JFactory::getApplication('site');
$GLOBALS['mainframe'] = & $mainframe;
return $mainframe;
}
$mainframe = startJoomla();
jimport('joomla.filesystem.folder');
jimport('joomla.filesystem.file');
然后,当我想给Joomla打电话时,我可以做以下事情:
$custom = new CustomController(); // assuming there's a com_custom somewhere
这在1.5年内奏效。但在2.5中,上述方法根本不起作用。我找到了加载脚本的修订版本:
function startJoomla() {
define('_JEXEC', 1);
define( 'DS', DIRECTORY_SEPARATOR );
$dir = dirname(__FILE__);
define('JPATH_BASE', $dir);
// load joomla libraries
require_once JPATH_BASE.'/includes/defines.php';
require_once JPATH_BASE.'/includes/framework.php';
require_once JPATH_BASE . DS . 'libraries' . DS . 'joomla' . DS . 'factory.php';
// Instantiate the application.
$app = JFactory::getApplication('site');
// Initialise the application.
return $app->initialise();
}
$mainframe = startJoomla();
这将启用类似“JFactory::getUser();”的功能但将不再允许我使用诸如“new MycustomcomponentController();”之类的命令为我提供了“核心”Joomla功能,但跳过了我安装的所有内容。是否有一个适当的新修订的jimport指令汇编,或者JComponent的一个不同函数,允许我调用自定义函数以及其他组件和模型,以便在外部php文件中使用?假设这将从CRON或类似程序运行。是否为CRON作业创建了外部脚本?请注册Mycustomcomponent前缀。此外,您还需要加载任何不自动加载的类。