Php 从外部脚本引导joomla 2.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

这曾经在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 . '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前缀。此外,您还需要加载任何不自动加载的类。