Your IP : 216.73.216.240


Current Path : /home/j/u/v/juvelize/www/components/com_myrssreader/models/
Upload File :
Current File : /home/j/u/v/juvelize/www/components/com_myrssreader/models/rss.php

<?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;
	}
}