| Server IP : 180.180.241.3 / Your IP : 216.73.216.35 Web Server : Microsoft-IIS/7.5 System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 User : IUSR ( 0) PHP Version : 5.3.28 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/AppServ/www/news/components/com_jevents/controllers/ |
Upload File : |
<?php
/**
* JEvents Component for Joomla 1.5.x
*
* @version $Id: modlatest.php 1431 2009-04-28 16:49:14Z geraint $
* @package JEvents
* @copyright Copyright (C) 2008-2009 GWE Systems Ltd
* @license GNU/GPLv2, see http://www.gnu.org/licenses/gpl-2.0.html
* @link http://www.jevents.net
*/
defined( 'JPATH_BASE' ) or die( 'Direct Access to this location is not allowed.' );
jimport('joomla.application.component.controller');
class ModLatestController extends JController {
function __construct($config = array())
{
if (!isset($config['base_path'])){
$config['base_path']=JEV_PATH;
}
parent::__construct($config);
// TODO get this from config
$this->registerDefaultTask( 'calendar' );
$cfg = & JEVConfig::getInstance();
$theme = ucfirst(JEV_CommonFunctions::getJEventsViewName());
JLoader::register('JEvents'.ucfirst($theme).'View',JEV_VIEWS."/".$theme."/abstract/abstract.php");
include_once(JEV_LIBS."/modfunctions.php");
}
function rss() {
$modid = intval((JRequest::getVar('modid', 0)));
if ($modid<0){
$modid = 0;
}
global $mainframe;
$cfg = & JEVConfig::getInstance();
$db =& JFactory::getDBO();
// setup for all required function and classes
$file = JPATH_SITE . '/components/com_jevents/mod.defines.php';
include_once($file);
// load language constants
JEVHelper::loadLanguage('modlatest');
// Check document type
$doc =& JFactory::getDocument();
if ($doc->getType() != 'feed') {
JError::raiseError('E999', 'Fatal error, document type: "' . $doc->getType() . '" not supported.');
}
$user =& JFactory::getUser();
$query = "SELECT id, params"
. "\n FROM #__modules AS m"
. "\n WHERE m.published = 1"
. "\n AND m.id = ". $modid
. "\n AND m.access <= ". (int) $user->aid
. "\n AND m.client_id != 1";
$db =& JFactory::getDBO();
$db->setQuery( $query );
$modules = $db->loadObjectList();
if (count($modules)<=0){
// fake module parameter
$params =& new JParameter('');
} else {
$params =& new JParameter( $modules[0]->params );
}
// parameter intialization
$info['link'] = str_replace('&', '&', JURI::root(true));
$info['imagelink'] = str_replace('&', '&', JURI::root());
$info['base'] = str_replace('&', '&', JURI::root());
$info['cache'] = $cfg->get( 'com_rss_cache', 1 );
$info['cache_time'] = $cfg->get( 'com_rss_cache_time', 3600 );
$info['count'] = $cfg->get( 'com_rss_count', 5 );
$info['title'] = $cfg->get( 'com_rss_title', 'Powered by JEvents!' );
$info['description'] = $cfg->get( 'com_rss_description', 'JEvents Syndication for Joomla' );
// get rss title from module param if requested and defined
$t_title = $params->get('modlatest_rss_title', null);
if (($params->get('modlatest_useLocalParam', 0) == 1) && (!empty($t_title))) {
$info['title'] = $t_title;
}
// get rss description from module param if requested and defined
$t_description = $params->get('modlatest_rss_description', null);
if (($params->get('modlatest_useLocalParam', 0) == 1) && (!empty($t_description))) {
$info['description'] = $t_description;
}
$info['image_url'] = htmlspecialchars(JURI::root() . 'components/' . JEV_COM_COMPONENT . '/images/logo.gif');
$info['image_alt'] = $info['title'];
$info['limit_text'] = $cfg->get( 'com_rss_limit_text', 1 );
$info['text_length'] = $cfg->get( 'com_rss_text_length', 20 );
// setup document
$doc->setLink($info['link']);
$doc->setBase($info['base']);
$doc->setTitle($info['title']);
$doc->setDescription($info['description']);
$docimage =& new JFeedImage();
$docimage->set('description', $info['description']);
$docimage->set('title', $info['title']);
$docimage->set('url', $info['image_url']);
$docimage->set('link', $info['imagelink']);
$doc->set('image', $docimage);
// include the appropraite VIEW - this should be based on config and/or URL?
$cfg = & JEVConfig::getInstance();
$theme = JEV_CommonFunctions::getJEventsViewName();
$viewclass = ucfirst($theme)."ModLatestView";
jimport('joomla.application.module.helper');
require_once(JModuleHelper::getLayoutPath('mod_jevents_latest',$theme.DS."latest"));
$jeventCalObject = new $viewclass($params);
$jeventCalObject->getLatestEventsData($info["count"]);
$eventsByRelDay =& $jeventCalObject->eventsByRelDay;
foreach ($eventsByRelDay as $relDay => $ebrd) {
foreach ($ebrd as $row) {
// title for particular item
$item_title = htmlspecialchars( $row->title() );
$item_title = html_entity_decode( $item_title );
// url link to article
$startDate = $row->publish_up();
$eventDate = mktime(substr($startDate,11,2),substr($startDate,14,2), substr($startDate,17,2),
$jeventCalObject->now_m,$jeventCalObject->now_d + $relDay,$jeventCalObject->now_Y);
$link = $row->viewDetailLink(date("Y", $eventDate),date("m", $eventDate),date("d", $eventDate),false);
$item_link = JRoute::_($link.$jeventCalObject->datamodel->getCatidsOutLink());
// removes all formating from the intro text for the description text
$item_description = $row->content();
$item_description = JFilterOutput::cleanText( $item_description );
if ( $info[ 'limit_text' ] ) {
if ( $info[ 'text_length' ] ) {
// limits description text to x words
$item_description_array = split( ' ', $item_description );
$count = count( $item_description_array );
if ( $count > $info[ 'text_length' ] ) {
$item_description = '';
for ( $a = 0; $a < $info[ 'text_length' ]; $a++ ) {
$item_description .= $item_description_array[$a]. ' ';
}
$item_description = trim( $item_description );
$item_description .= '...';
}
} else {
// do not include description when text_length = 0
$item_description = NULL;
}
}
// type for particular item - category name
$item_type = $row->getCategoryName();
// organizer for particular item
$item_organizer = htmlspecialchars( $row->contact_info() );
$item_organizer = html_entity_decode( $item_organizer );
// location for particular item
$item_location = htmlspecialchars( $row->location() );
$item_location = html_entity_decode( $item_location );
// start date for particular item
$item_startdate = htmlspecialchars( $row->publish_up());
// end date for particular item
$item_enddate = htmlspecialchars( $row->publish_down() );
// load individual item creator class
$item =& new JFeedItem();
// item info
if ($row->alldayevent()) {
$temptime = new JDate($eventDate);
$item->set('title', $temptime->toFormat(JText::_('JEV_RSS_DATE')) ." : " .$item_title);
} else {
$temptime = new JDate($eventDate);
$item->set('title', $temptime->toFormat(JText::_('JEV_RSS_DATETIME')) ." : " .$item_title);
}
$item->set('link', $item_link);
$item->set('description', $item_description);
$item->set('category', $item_type);
$t_datenow = JEVHelper::getNow();
$item->set('date', $t_datenow->toUnix(true));
// add item info to RSS document
$doc->addItem( $item );
}
}
}
}