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