Current File : /home/pacjaorg/public_html/kmm/administrator/components/com_djclassifieds/models/offers.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('Restricted access');
class DjClassifiedsModelOffers extends JModelList
{
public function __construct($config = array())
{
if (empty($config['filter_fields'])) {
$config['filter_fields'] = array(
'o.id', 'i.name',
'id', 'u.name','u.email',
'i.ui_name', 'i.ui_email',
'o.price','o.date',
'status'
);
}
parent::__construct($config);
}
protected function populateState($ordering = null, $direction = null)
{
// Initialise variables.
// List state information.
parent::populateState('o.id', 'desc');
$app = JFactory::getApplication();
$search = $this->getUserStateFromRequest($this->context.'.filter.search', 'filter_search');
$this->setState('filter.search', $search);
$status = $this->getUserStateFromRequest($this->context.'.filter.status', 'filter_status', '');
$this->setState('filter.status', $status);
}
protected function getStoreId($id = '')
{
// Compile the store id.
$id .= ':'.$this->getState('filter.search');
$id .= ':'.$this->getState('filter.status');
return parent::getStoreId($id);
}
public function _buildWhere()
{
$app = JFactory::getApplication();
$where= '';
$status = $this->getState('filter.status');
if (is_numeric($status)) {
if($status>-1 && $status<3){
$where .= " AND o.status = '".$status."' AND o.paid = 0 ";
}else if($status == 3){
$where .= " AND o.paid = 1 AND o.confirmed = 0 ";
}else if($status == 4){
$where .= " AND o.confirmed = 1 AND o.request = 0 ";
}else if($status == 5){
$where .= " AND o.request = 1 ";
}else if($status == 6){
$where .= " AND o.admin_paid = 1 ";
}
}
$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).'%');
$where .= " AND (i.name LIKE ".$search." OR u.name LIKE ".$search." OR u.email LIKE ".$search." OR i.ui_name LIKE ".$search." OR i.ui_email LIKE ".$search." OR o.id=".$search_id." OR o.item_id=".$search_id.")";
}
return $where;
}
public function getListQuery()
{
$orderCol = $this->state->get('list.ordering');
$orderDirn = $this->state->get('list.direction');
$query = "SELECT o.*, i.name as i_name, u.name as u_name, u.email as u_email, i.ui_name, i.ui_email, ui_id FROM #__djcf_offers o "
."LEFT JOIN (SELECT i.*, u.name as ui_name, u.email as ui_email, u.id as ui_id FROM #__djcf_items i, #__users u
WHERE u.id=i.user_id ) i ON i.id=o.item_id "
."LEFT JOIN #__users u ON u.id=o.user_id "
." WHERE 1 ".$this->_buildWhere()." ORDER BY ".$orderCol." ".$orderDirn;
return $query;
}
}
?>