primo commit
This commit is contained in:
		| @ -0,0 +1,155 @@ | ||||
| <?php | ||||
| /* | ||||
|  * @package		Joomla.Framework | ||||
|  * @copyright	Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved. | ||||
|  * @license		GNU General Public License version 2 or later; see LICENSE.txt | ||||
|  * | ||||
|  * @component Phoca Component | ||||
|  * @copyright Copyright (C) Jan Pavelka www.phoca.cz | ||||
|  * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License version 2 or later; | ||||
|  */ | ||||
|  | ||||
| defined('_JEXEC') or die(); | ||||
| use Joomla\CMS\MVC\Model\ListModel; | ||||
| use Joomla\CMS\Factory; | ||||
| use Joomla\CMS\Component\ComponentHelper; | ||||
| jimport('joomla.application.component.modellist'); | ||||
|  | ||||
| class PhocaGalleryCpModelPhocaGalleryFbs extends ListModel | ||||
| { | ||||
| 	protected	$option 		= 'com_phocagallery'; | ||||
| 	//public 		$context		= 'com_phocagallery.phocagallerycos'; | ||||
|  | ||||
| 	public function __construct($config = array()) | ||||
| 	{ | ||||
| 		if (empty($config['filter_fields'])) { | ||||
| 			$config['filter_fields'] = array( | ||||
| 				'id', 'a.id', | ||||
| 				'name', 'a.name', | ||||
| 				'uid', 'a.uid', | ||||
| 				'appid', 'a.appid', | ||||
| 				'checked_out', 'a.checked_out', | ||||
| 				'checked_out_time', 'a.checked_out_time', | ||||
| 				'category_id', 'category_id', | ||||
| 				'state', 'a.state', | ||||
| 				'access', 'a.access', 'access_level', | ||||
| 				'ordering', 'a.ordering', | ||||
| 				'language', 'a.language', | ||||
| 				'hits', 'a.hits', | ||||
| 				'average', 'v.average', | ||||
| 				'published','a.published' | ||||
| 			); | ||||
| 		} | ||||
|  | ||||
| 		parent::__construct($config); | ||||
| 	} | ||||
|  | ||||
| 	protected function populateState($ordering = 'a.name', $direction = 'ASC') | ||||
| 	{ | ||||
| 		// Initialise variables. | ||||
| 		$app = Factory::getApplication('administrator'); | ||||
|  | ||||
| 		// Load the filter state. | ||||
| 		$search = $app->getUserStateFromRequest($this->context.'.filter.search', 'filter_search'); | ||||
| 		$this->setState('filter.search', $search); | ||||
| /* | ||||
| 		$accessId = $app->getUserStateFromRequest($this->context.'.filter.access', 'filter_access', null, 'int'); | ||||
| 		$this->setState('filter.access', $accessId); | ||||
| */ | ||||
| 		$state = $app->getUserStateFromRequest($this->context.'.filter.published', 'filter_published', '', 'string'); | ||||
| 		$this->setState('filter.published', $state); | ||||
|  | ||||
|  | ||||
| 		$language = $app->getUserStateFromRequest($this->context.'.filter.language', 'filter_language', ''); | ||||
| 		$this->setState('filter.language', $language); | ||||
|  | ||||
| 		// Load the parameters. | ||||
| 		$params = ComponentHelper::getParams('com_phocagallery'); | ||||
| 		$this->setState('params', $params); | ||||
|  | ||||
| 		// List state information. | ||||
| 		parent::populateState($ordering, $direction); | ||||
| 	} | ||||
|  | ||||
| 	protected function getStoreId($id = '') | ||||
| 	{ | ||||
| 		// Compile the store id. | ||||
| 		$id	.= ':'.$this->getState('filter.search'); | ||||
| 		//$id	.= ':'.$this->getState('filter.access'); | ||||
| 		$id	.= ':'.$this->getState('filter.published'); | ||||
| 		$id	.= ':'.$this->getState('filter.fb_id'); | ||||
|  | ||||
| 		return parent::getStoreId($id); | ||||
| 	} | ||||
|  | ||||
| 	protected function getListQuery() | ||||
| 	{ | ||||
| 		// Create a new query object. | ||||
| 		$db		= $this->getDbo(); | ||||
| 		$query	= $db->getQuery(true); | ||||
|  | ||||
| 		// Select the required fields from the table. | ||||
| 		$query->select( | ||||
| 			$this->getState( | ||||
| 				'list.select', | ||||
| 				'a.*' | ||||
| 			) | ||||
| 		); | ||||
| 		$query->from('`#__phocagallery_fb_users` AS a'); | ||||
|  | ||||
| 		// Join over the language | ||||
| 		$query->select('l.title AS language_title'); | ||||
| 		$query->join('LEFT', '`#__languages` AS l ON l.lang_code = a.language'); | ||||
|  | ||||
|  | ||||
|  | ||||
| 		$query->select('uc.name AS editor'); | ||||
| 		$query->join('LEFT', '#__users AS uc ON uc.id=a.checked_out'); | ||||
|  | ||||
| /*		// Join over the asset groups. | ||||
| 		$query->select('ag.title AS access_level'); | ||||
| 		$query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); | ||||
| */ | ||||
|  | ||||
| 		// Filter by access level. | ||||
| 	/*	if ($access = $this->getState('filter.access')) { | ||||
| 			$query->where('a.access = '.(int) $access); | ||||
| 		}*/ | ||||
|  | ||||
| 		// Filter by published state. | ||||
| 		$published = $this->getState('filter.published'); | ||||
| 		if (is_numeric($published)) { | ||||
| 			$query->where('a.published = '.(int) $published); | ||||
| 		} | ||||
| 		else if ($published === '') { | ||||
| 			$query->where('(a.published IN (0, 1))'); | ||||
| 		} | ||||
|  | ||||
|  | ||||
| 		// Filter by search in title | ||||
| 		$search = $this->getState('filter.search'); | ||||
| 		if (!empty($search)) | ||||
| 		{ | ||||
| 			if (stripos($search, 'id:') === 0) { | ||||
| 				$query->where('a.id = '.(int) substr($search, 3)); | ||||
| 			} | ||||
| 			else | ||||
| 			{ | ||||
| 				$search = $db->Quote('%'.$db->escape($search, true).'%'); | ||||
| 				$query->where('( a.name LIKE '.$search.' )'); | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 	//	$query->group('a.id'); | ||||
|  | ||||
| 		// Add the list ordering clause. | ||||
| 		$orderCol	= $this->state->get('list.ordering'); | ||||
| 		$orderDirn	= $this->state->get('list.direction'); | ||||
|  | ||||
| 		$query->order($db->escape($orderCol.' '.$orderDirn)); | ||||
|  | ||||
|  | ||||
| 		return $query; | ||||
| 	} | ||||
| } | ||||
| ?> | ||||
		Reference in New Issue
	
	Block a user