Your IP : 216.73.216.240
<?php
/**
* @copyright Copyright (C) 2010 FalsinSoft. All rights reserved.
* @license GNU/GPL
* @website http://falsinsoft-joomla.blogspot.com
* @email falsinsoft@gmail.com
*
*/
defined('_JEXEC') or die( 'Restricted access' );
jimport( 'joomla.application.component.model' );
class MyRSSReaderModelRSS extends JModel
{
function _getCategorySelect($category_id, $table_suffix = '')
{
if($category_id == 0)
$category_select = $table_suffix."id NOT IN(SELECT rss_id FROM #__myrssreader_category_rss)";
else
$category_select = $table_suffix."id IN(SELECT rss_id FROM #__myrssreader_category_rss WHERE category_id=".$category_id.")";
return $category_select;
}
function getFullRSSListToCheck($category_id, $rss_check_time)
{
$db = $this->getDBO();
$query = "SELECT id, title FROM #__myrssreader "
."WHERE ".$this->_getCategorySelect($category_id)." "
."AND published = 1 "
."AND (last_check = '0000-00-00 00:00:00' OR HOUR(TIMEDIFF(NOW(), last_check)) >= ".$rss_check_time.") "
."ORDER BY title";
$db->setQuery($query);
return $db->loadObjectList();
}
function getDistributedRSSListToCheck($category_id, $rss_check_time, $distributed_check_delay, $max_rss_distributed_check)
{
$db = $this->getDBO();
$query = "SELECT last_check FROM #__myrssreader "
."WHERE ".$this->_getCategorySelect($category_id)." "
."AND published = 1 "
."ORDER BY last_check DESC LIMIT 1";
$db->setQuery($query);
$last_check_date = $db->loadResult();
if($last_check_date != null)
{
$last_check_delay = intval((time() - strtotime($last_check_date)) / 60);
if($last_check_delay >= $distributed_check_delay)
{
$query = "SELECT id, title FROM #__myrssreader "
."WHERE ".$this->_getCategorySelect($category_id)." "
."AND published = 1 "
."AND (last_check = '0000-00-00 00:00:00' OR HOUR(TIMEDIFF(NOW(), last_check)) >= ".$rss_check_time.") "
."ORDER BY last_check LIMIT ".$max_rss_distributed_check;
$db->setQuery($query);
return $db->loadObjectList();
}
}
return null;
}
function getRSSFeedsList($category_id, $check_date_order, $start_date_order, $feed_start, $feed_number)
{
$db = $this->getDBO();
$date_order = ($start_date_order == 0) ? 'DESC' : 'ASC';
if($check_date_order == 1)
$field_order = "ORDER BY feed.created ".$date_order.", feed.item_date ".$date_order;
else
$field_order = "ORDER BY feed.item_date ".$date_order;
$query = "SELECT feed.item_title AS title, feed.item_content AS content, feed.item_link AS link, "
."rss.web_url AS web_link, rss.title AS web_title, feed.item_date AS feed_date "
."FROM #__myrssreader AS rss, #__myrssreader_cache AS feed "
."WHERE feed.rss_id = rss.id AND rss.published = 1 AND ".$this->_getCategorySelect($category_id, 'rss.')." "
.$field_order." LIMIT ".$feed_start.",".$feed_number;
$db->setQuery($query);
return $db->loadObjectList();
}
function getRSSFeedsTotalNumber($category_id)
{
$db = $this->getDBO();
$query = "SELECT COUNT(feed.id) AS feeds_number "
."FROM #__myrssreader AS rss, #__myrssreader_cache AS feed "
."WHERE feed.rss_id = rss.id AND rss.published = 1 AND ".$this->_getCategorySelect($category_id, 'rss.');
$db->setQuery($query);
$feeds_number = $db->loadResult();
return $feeds_number;
}
function getCompleteRSSList()
{
$db = $this->getDBO();
$db->setQuery('SELECT id, title FROM #__myrssreader WHERE published = 1 ORDER BY last_check');
return $db->loadObjectList();
}
function getAdvertisementsHtmlCode($category_id)
{
$db = $this->getDBO();
$query = "SELECT html_code FROM #__myrssreader_advertisement WHERE published = 1 AND ";
if($category_id == 0)
$query .= "id NOT IN(SELECT advertisement_id FROM #__myrssreader_category_advertisement)";
else
$query .= "id IN(SELECT advertisement_id FROM #__myrssreader_category_advertisement WHERE category_id=".$category_id.")";
$db->setQuery($query);
$adv_html_code_list = $db->loadResultArray();
shuffle($adv_html_code_list);
return $adv_html_code_list;
}
}