?
Path : /home/admin/public_html/old/board/components/com_newsfeeds/models/ |
Current File : /home/admin/public_html/old/board/components/com_newsfeeds/models/category.php |
<?php /** * @version $Id: category.php 14401 2010-01-26 14:10:00Z louis $ * @package Joomla * @subpackage Content * @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant to the * GNU General Public License, and as distributed it includes or is derivative * of works licensed under the GNU General Public License or other free or open * source software licenses. See COPYRIGHT.php for copyright notices and * details. */ // Check to ensure this file is included in Joomla! defined('_JEXEC') or die( 'Restricted access' ); jimport('joomla.application.component.model'); /** * Newsfeeds Component Category Model * * @package Joomla * @subpackage Newsfeeds * @since 1.5 */ class NewsfeedsModelCategory extends JModel { /** * Category id * * @var int */ var $_id = null; /** * Category data array * * @var array */ var $_data = null; /** * Category total * * @var integer */ var $_total = null; /** * Category data * * @var object */ var $_category = null; /** * Constructor * * @since 1.5 */ function __construct() { global $mainframe; parent::__construct(); $config = JFactory::getConfig(); // Get the pagination request variables $this->setState('limit', $mainframe->getUserStateFromRequest('com_newsfeeds.limit', 'limit', $config->getValue('config.list_limit'), 'int')); $this->setState('limitstart', JRequest::getVar('limitstart', 0, '', 'int')); $id = JRequest::getVar('id', 0, '', 'int'); $this->setId((int)$id); } /** * Method to set the category id * * @access public * @param int Category ID number */ function setId($id) { // Set category ID and wipe data $this->_id = $id; $this->_category = null; } /** * Method to get newsfeed item data for the category * * @access public * @return array */ function getData() { // Lets load the content if it doesn't already exist if (empty($this->_data)) { $query = $this->_buildQuery(); $this->_data = $this->_getList($query, $this->getState('limitstart'), $this->getState('limit')); $total = count($this->_data); for($i = 0; $i < $total; $i++) { $item =& $this->_data[$i]; $item->slug = $item->id.'-'.$item->alias; } } return $this->_data; } /** * Method to get the total number of newsfeed items for the category * * @access public * @return integer */ function getTotal() { // Lets load the content if it doesn't already exist if (empty($this->_total)) { $query = $this->_buildQuery(); $this->_total = $this->_getListCount($query); } return $this->_total; } /** * Method to get a pagination object of the newsfeeds items for the category * * @access public * @return integer */ function getPagination() { // Lets load the content if it doesn't already exist if (empty($this->_pagination)) { jimport('joomla.html.pagination'); $this->_pagination = new JPagination( $this->getTotal(), $this->getState('limitstart'), $this->getState('limit') ); } return $this->_pagination; } /** * Method to get category data for the current category * * @since 1.5 */ function getCategory() { // Load the Category data if ($this->_loadCategory()) { // Initialize some variables $user = &JFactory::getUser(); // Make sure the category is published if (!$this->_category->published) { JError::raiseError(404, JText::_("Resource Not Found")); return false; } // check whether category access level allows access if ($this->_category->access > $user->get('aid', 0)) { JError::raiseError(403, JText::_("ALERTNOTAUTH")); return false; } } return $this->_category; } /** * Method to load category data if it doesn't exist. * * @access private * @return boolean True on success */ function _loadCategory() { if (empty($this->_category)) { // current category info $query = 'SELECT c.*,' . ' CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(\':\', c.id, c.alias) ELSE c.id END as slug '. ' FROM #__categories AS c' . ' WHERE c.id = '. (int) $this->_id . ' AND c.section = "com_newsfeeds"'; $this->_db->setQuery($query, 0, 1); $this->_category = $this->_db->loadObject(); } return true; } function _buildQuery() { // We need to get a list of all weblinks in the given category $query = 'SELECT *' . ' FROM #__newsfeeds' . ' WHERE catid = '.(int) $this->_id. ' AND published = 1' . ' ORDER BY ordering'; return $query; } } ?>