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);
	}
	

	
}