Current File : /home/users/barii/public_html/finansenl.com.pl/wodki/application/classes/Controller/Search.php |
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Search extends Controller_Frontend {
public function action_index()
{
$page = !empty($_GET['page']) ? addslashes($_GET['page']) : 1;
$page = ($page-1)*Kohana::$config->load('site.SearchitemPerPage');
//$range_search = !empty($_GET['range_search']) ? addslashes($_GET['range_search']) : '';
$keyword = !empty($_GET['keyword']) ? addslashes($_GET['keyword']) : '';
$filtr = !empty($_GET['filtr']) ? addslashes($_GET['filtr']) : '';
$filtr_value = !empty($_GET['filtr_value']) ? addslashes($_GET['filtr_value']) : 1;
$sort = !empty($_GET['sort']) ? addslashes($_GET['sort']) : 'order';
$direct = !empty($_GET['direct']) ? addslashes($_GET['direct']) : 'desc';
//$this->redirect(ucfirst($range_search).'?keyword='.$keyword);
//exit;
$this->template->title = __t('Search results');
$result_sum = 0;
if( !empty( $keyword ) AND strlen( $keyword ) > 1 ) {
// UŻYTKOWNICY
/*
$artists = ORM::Factory('User');
$artists = $artists->join('zones','LEFT')
->on('zones.id', '=', 'user.zone_id')
->and_where_open()
->where('user.firstname','LIKE', '%'.$keyword.'%')
->or_where('user.username','LIKE', '%'.$keyword.'%')
->or_where('user.lastname','LIKE', '%'.$keyword.'%')
->or_where('user.company','LIKE', '%'.$keyword.'%')
->or_where('user.description','LIKE', '%'.$keyword.'%')
->or_where('user.street','LIKE', $keyword.'%')
->or_where('user.city','LIKE', $keyword.'%')
->or_where('zones.title','LIKE', $keyword.'%')
->and_where_close();
$artists = $artists->where('user.profile_id','=', 1)->where('user.status','=', 1);
$users_test = clone $artists;
$users_test = $users_test->find_all();
$result_sum += $users_test->count();
$artists = $artists
->limit(Kohana::$config->load('site.SearchitemPerPage'))
->order_by($sort, $direct)
->offset($page)
->find_all();
$this->pagination = new Pagination(array(
'items_per_page' => Kohana::$config->load('site.SearchitemPerPage'),
'style' => 'kogio',
'total_items' => $users_test->count()
));
// GALERIE
$galleries = ORM::Factory('gallery')
->join('users','LEFT')
->on('users.id', '=', 'gallery.user_id')
->join('zones','LEFT')
->on('zones.id', '=', 'users.zone_id')
->where('users.status','=', 1)
->and_where_open()
->where('gallery.gallery_name','LIKE', '%'.$keyword.'%')
->or_where('gallery.gallery_content','LIKE', '%'.$keyword.'%')
->or_where('gallery.gallery_type','LIKE', $keyword.'%')
->or_where('users.firstname','LIKE', '%'.$keyword.'%')
->or_where('users.username','LIKE', '%'.$keyword.'%')
->or_where('users.lastname','LIKE', '%'.$keyword.'%')
->or_where('users.company','LIKE', '%'.$keyword.'%')
->or_where('users.description','LIKE', '%'.$keyword.'%')
->or_where('users.street','LIKE', $keyword.'%')
->or_where('users.city','LIKE', $keyword.'%')
->or_where('zones.title','LIKE', $keyword.'%')
->and_where_close();
$users_test = clone $galleries;
$users_test = $users_test->find_all();
$result_sum += $users_test->count();
$galleries = $galleries
->limit(Kohana::$config->load('site.SearchitemPerPage'))
->offset($page)
->order_by($sort, $direct)
->find_all();
*/
// PODSTRONY
$pages = ORM::Factory('page')
->and_where_open()
->where('page.title','LIKE', '%'.$keyword.'%')
->or_where('page.description','LIKE', '%'.$keyword.'%')
->and_where_close();
$users_test = clone $pages;
$users_test = $users_test->find_all();
$result_sum += $users_test->count();
$pages = $pages
->limit(Kohana::$config->load('site.SearchitemPerPage'))
->order_by($sort, $direct)
->offset($page)
->find_all();
$this->pagination = new Pagination(array(
'items_per_page' => Kohana::$config->load('site.SearchitemPerPage'),
'style' => 'kogio',
'total_items' => $users_test->count()
));
// PRACE/SKLEP
$items = ORM::Factory('item')
->join('item_categories','LEFT')
->on('item_categories.id', '=', 'item.categories_id')
->join('item_types','LEFT')
->on('item_types.id', '=', 'item.types_id')
//->where(DB::expr('DATE_FORMAT(`item.lifetime_date`,"%Y-%m-%d %H-%i-%s")'),'>=', date('Y-m-d H:i:s'))
->where('item.status','=', 1)
->and_where_open()
->where('item_categories.title','LIKE', $keyword.'%')
->or_where('item_types.title','LIKE', $keyword.'%')
->or_where('item.tags','LIKE', '%'.$keyword.'%')
->or_where('item.title','LIKE', '%'.$keyword.'%')
->and_where_close();
$users_test = clone $items;
$users_test = $users_test->find_all();
$result_sum += $users_test->count();
$items = $items
->limit(Kohana::$config->load('site.SearchitemPerPage'))
->offset($page)
->order_by($sort, $direct)
->find_all();
// NEWSY
$news = ORM::Factory('News')
->where('news.status','=', 1)
->and_where_open()
->where('news.title','LIKE', '%'.$keyword.'%')
->or_where('news.description','LIKE', '%'.$keyword.'%')
->and_where_close();
$users_test = clone $news;
$users_test = $users_test->find_all();
$result_sum += $users_test->count();
$news = $news
->limit(Kohana::$config->load('site.SearchitemPerPage'))
->order_by($sort, $direct)
->offset($page)
->find_all();
$this->pagination = new Pagination(array(
'items_per_page' => Kohana::$config->load('site.SearchitemPerPage'),
'style' => 'kogio',
'total_items' => $users_test->count()
));
if( $result_sum == 0 ) {
$error_info = __t('The search term was not found in our database. Try again by entering a different phrase.');
}
} else {
$error_info = __t('Please enter a search term or word is too short');
}
$this->template->content = View::factory('search/index')
->bind('pages', $pages)
->bind('items', $items)
->bind('articles', $articles)
->bind('news', $news)
->bind('keyword', $keyword)
->bind('error_info', $error_info)
->bind('sort', $sort)
->bind('filtr', $filtr)
->bind('pagination', $this->pagination)
->bind('page', $page);
}
}