Current File : /home/pacjaorg/public_html/km/administrator/components/com_djclassifieds/models/fieldsgroups.php |
<?php
/**
* @package DJ-Classifieds
* @copyright Copyright (C) DJ-Extensions.com, All rights reserved.
* @license http://www.gnu.org/licenses GNU/GPL
* @author url: http://dj-extensions.com
* @author email: contact@dj-extensions.com
*/
defined('_JEXEC') or die;
class DJClassifiedsModelFieldsgroups extends JModelList
{
public function __construct($config = array())
{
if (empty($config['filter_fields'])) {
$config['filter_fields'] = array(
'id', 'a.id',
'source', 'a.source',
'published', 'a.published',
'a.name', 'a.ordering',
);
}
parent::__construct($config);
}
protected function populateState($ordering = null, $direction = null)
{
// List state information.
parent::populateState('a.name', 'asc');
// Load the parameters.
$params = JComponentHelper::getParams('com_djclassifieds');
$this->setState('params', $params);
$search = $this->getUserStateFromRequest($this->context.'.filter.search', 'filter_search');
$this->setState('filter.search', $search);
$published = $this->getUserStateFromRequest($this->context.'.filter.published', 'filter_published', '');
$this->setState('filter.published', $published);
$source = $this->getUserStateFromRequest($this->context.'.filter.source', 'filter_source', '');
$this->setState('filter.source', $source);
$order = $this->getUserStateFromRequest($this->context.'.filter.order', 'filter_order');
if($order){
$this->setState('list.ordering', $order);
}
$order_dir = $this->getUserStateFromRequest($this->context.'.filter.order_Dir', 'filter_order_Dir');
if($order_dir){
$this->setState('list.direction', $order_dir);
}
}
protected function getStoreId($id = '')
{
// Compile the store id.
$id .= ':'.$this->getState('filter.search');
$id .= ':'.$this->getState('filter.published');
$id .= ':'.$this->getState('filter.source');
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('#__djcf_fields_groups AS a');
$search = $this->getState('filter.search');
if (!empty($search)) {
$db = JFactory::getDBO();
$search_id = $db->Quote($db->escape($search, true));
$search = $db->Quote('%'.$db->escape($search, true).'%');
$query->where('(a.name LIKE '.$search.' OR a.id='.$search_id.')');
}
$published = $this->getState('filter.published');
if (is_numeric($published)) {
$query->where('a.published = '.(int)$published);
}
$source = $this->getState('filter.source');
if (is_numeric($source)) {
$query->where('a.source = '.(int)$source);
}
// Add the list ordering clause.
$orderCol = $this->state->get('list.ordering');
$orderDirn = $this->state->get('list.direction');
if ($orderCol == 'a.ordering') {
$query->order('a.source asc, '.$db->escape($orderCol.' '.$orderDirn));
} else {
$query->order($db->escape($orderCol.' '.$orderDirn));
}
return $query;
}
}