用于在joomla中创建xml站点地图的cron

时间:2014-10-20 15:48:45

标签: joomla2.5 sitemap

我为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( );

0 个答案:

没有答案