public function postPaginate($where, $perPage = null, $group = 'default', $page = null, $segment = 0){
$pager = Services::pager(null, null, false);
$query = $this->db->table('cms_property')
->select('cms_property.*')
->select('cms_property_category.name as c_name, cms_property_category.slug as c_slug')
->select('cms_property_type.name as t_name')
->select('cms_property_area.name as a_name')
->select('cms_property_direction.name as d_name')
->where($where)
->join('cms_property_category', 'cms_property_category.id = cms_property.typeofhouse', 'left')
->join('cms_property_type', 'cms_property_type.id = cms_property.p_type', 'left')
->join('cms_property_area', 'cms_property_area.id = cms_property.location_area', 'left')
->join('cms_property_direction', 'cms_property_direction.id = cms_property.direction', 'left');
if ($segment)
{
$pager->setSegment($segment);
}
$page = $page >= 1 ? $page : $pager->getCurrentPage($group);
$this->pager = $pager->store($group, $page, $perPage, $query->get()->getNumRows(), $segment);
$perPage = $this->pager->getPerPage($group);
$offset = ($page - 1) * $perPage;
return $this->limit($perPage, $offset)->get()->getResultArray();
}