我为joomla 2.5编写了一个cron来创建sitemap xml文件。我已经为它准备了以下代码,但是我收到错误消息“JError:Application Instantiation Error”。这个错误是由于我使用了 JRoute :: _
以下代码中是否缺少任何joomla库?
define( '_JEXEC', 1 );
define('DS', DIRECTORY_SEPARATOR); // Only for Joomla! 2.5
if (file_exists(dirname(__FILE__).'/defines.php'))
{
dirname(__FILE__).'/defines.php';
}
if (!defined('_JDEFINES'))
{
define('JPATH_BASE', dirname(__FILE__).'/../');
require_once JPATH_BASE.'/includes/defines.php';
}
include_once JPATH_LIBRARIES.'/import.php';
if(file_exists(JPATH_BASE.'/includes/version.php'))
{
require_once JPATH_BASE.'/includes/version.php';
}
else
{
require_once JPATH_LIBRARIES.'/cms.php';
}
jimport( 'joomla.application.cli' );
class MyCLIApp extends JApplicationCli
{
public function execute()
{
// Set all errors to output the messages to the console, in order to
// avoid infinite loops in JError ;)
restore_error_handler();
JError::setErrorHandling(E_ERROR, 'die');
JError::setErrorHandling(E_WARNING, 'echo'); // or use 'ignore' to not report warnings
JError::setErrorHandling(E_NOTICE, 'echo'); // or use 'ignore' to not report notices
// Required by Joomla!
jimport('joomla.environment.request');
// Load FOF
jimport('fof.include');
// Not really required, but a good idea - override time limits if possible
$safe_mode = true;
if(function_exists('ini_get')) {
$safe_mode = ini_get('safe_mode');
}
if(!$safe_mode && function_exists('set_time_limit')) {
@set_time_limit(0);
}
$db = &JFactory::getDBO();
$query = "SELECT id, name FROM #__community_events_category ORDER BY id";
$db->setQuery($query);
$eventcats = $db->loadObjectList();
$data = '';
foreach ($eventcats as $key => $eventcat)
{
$eventcat_links = **JRoute::_**('index.php?option=com_community&view=events&categoryid='.$eventcat->id);
$data = $data."<a href=".$eventcat_links.">".$eventcat->name."</a>";
}
}
}
JApplicationCli::getInstance( 'MyCLIApp' )->execute( );