primo commit
This commit is contained in:
		| @ -0,0 +1,157 @@ | ||||
| <?php | ||||
| /* @package Joomla | ||||
|  * @copyright Copyright (C) Open Source Matters. All rights reserved. | ||||
|  * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php | ||||
|  * @extension Phoca Extension | ||||
|  * @copyright Copyright (C) Jan Pavelka www.phoca.cz | ||||
|  * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL | ||||
|  */ | ||||
| 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 PhocaDownloadCpModelPhocaDownloadLics extends ListModel | ||||
| { | ||||
| 	protected	$option 		= 'com_phocadownload'; | ||||
|  | ||||
| 	public function __construct($config = array()) | ||||
| 	{ | ||||
| 		if (empty($config['filter_fields'])) { | ||||
| 			$config['filter_fields'] = array( | ||||
| 				'id', 'a.id', | ||||
| 				'title', 'a.title', | ||||
| 				'alias', 'a.alias', | ||||
| 				'checked_out', 'a.checked_out', | ||||
| 				'checked_out_time', 'a.checked_out_time', | ||||
|  | ||||
| 				'state', 'a.state', | ||||
|  | ||||
| 				'ordering', 'a.ordering', | ||||
| 				'language', 'a.language', | ||||
| 				'hits', 'a.hits', | ||||
|  | ||||
| 				'published','a.published', | ||||
|  | ||||
|  | ||||
| 			); | ||||
| 		} | ||||
|  | ||||
| 		parent::__construct($config); | ||||
| 	} | ||||
|  | ||||
| 	protected function populateState($ordering = 'a.title', $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_phocadownload'); | ||||
| 		$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.lic_id'); | ||||
|  | ||||
|  | ||||
| 		return parent::getStoreId($id); | ||||
| 	} | ||||
|  | ||||
| 	protected function getListQuery() | ||||
| 	{ | ||||
| 		/* | ||||
| 		$query = ' SELECT a.*, u.name AS editor ' | ||||
| 			. ' FROM #__phocadownload_licenses AS a ' | ||||
| 			. ' LEFT JOIN #__users AS u ON u.id = a.checked_out ' | ||||
| 		*/ | ||||
| 		// 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('`#__phocadownload_licenses` 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'); | ||||
|  | ||||
| 		// Join over the users for the checked out user. | ||||
| 		$query->select('uc.name AS editor'); | ||||
| 		$query->join('LEFT', '#__users AS uc ON uc.id=a.checked_out'); | ||||
|  | ||||
|  | ||||
| 		// 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.title LIKE '.$search.' OR a.alias LIKE '.$search.')'); | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		//$orderCol	= $this->state->get('list.ordering'); | ||||
| 		//$orderDirn	= $this->state->get('list.direction'); | ||||
| 		$orderCol	= $this->state->get('list.ordering', 'title'); | ||||
| 		$orderDirn	= $this->state->get('list.direction', 'asc'); | ||||
| 		$query->order($db->escape($orderCol.' '.$orderDirn)); | ||||
|  | ||||
| 		//echo nl2br(str_replace('#__', 'jos_', $query->__toString())); | ||||
| 		return $query; | ||||
|  | ||||
| 	} | ||||
|  | ||||
|  | ||||
| } | ||||
| ?> | ||||
		Reference in New Issue
	
	Block a user