Current File : /home/users/barii/public_html/finansenl.com.pl/wodki/modules/sort/classes/Sort/Core.php
<?php defined('SYSPATH') or die('No direct script access.');
/**
 * Message is a class that lets you easily send messages
 * in your application (aka Flash Messages)
 *
 * @package	Message
 * @author	Dave Widmer
 * @see	http://github.com/daveWid/message
 * @see	http://www.davewidmer.net
 * @copyright	2010 © Dave Widmer
 */
class Sort_Core
{
	
	public function __construct()
	{
	
	}

	/**
	 * Displays the message
	 *
	 * @return	string	Message to string
	 */
	public static function display()
	{
		$categories_id = !empty($_GET['categories_id']) ? addslashes($_GET['categories_id']) : '';
		
		$types_id = !empty($_GET['types_id']) ? addslashes($_GET['types_id']) : '';
		$keyword = !empty($_GET['keyword']) ? addslashes($_GET['keyword']) : '';
		$tags_key = !empty($_GET['tags']) ? addslashes($_GET['tags']) : '';
		
				
		$categories = ORM::Factory('item_category')
				->join('items','LEFT')
				->on('items.categories_id','=', 'item_category.id')
				->join('item_type_links','LEFT')
					->on('item_type_links.id', '=', 'items.types_id')
			
					->join('item_types','LEFT')
					->on('item_types.id', '=', 'item_type_links.types_id');
			
				if( !empty( $keyword ) ) {
				$categories = $categories->join('item_categories','LEFT')
					->on('item_categories.id', '=', 'items.categories_id')
					
					->and_where_open()
					->where('item_categories.title','LIKE', '%'.$keyword.'%')
					
					->or_where('item_types.title','LIKE', $keyword.'%')
					->or_where('items.tags','LIKE', '%'.$keyword.'%')
					->or_where('items.title','LIKE', '%'.$keyword.'%')
					->and_where_close();
					
					//->where('items.tags','LIKE', '%'.$keyword.'%');
				
				}
				
				
				if( !empty( $types_id ) ) {
					$categories = $categories
					->where('item_type_links.types_id','=', $types_id);
					//$categories = $categories->where('items.types_id','=', $types_id);
				}
				
				$categories = $categories->order_by('order','asc')->group_by('item_category.id')->find_all();
			
	
		$tags = array();
		$tag_tmp = array();
		$tags_list = '';
		$i=0;
		$items = ORM::Factory('item')->join('item_type_links','LEFT')
									->on('item_type_links.id', '=', 'item.types_id')
									->join('item_types','LEFT')
									->on('item_types.id', '=', 'item_type_links.types_id');
								
		
		
		if( !empty( $categories_id ) ) 
			$items = $items->where('categories_id','=', $categories_id);
		if( !empty( $types_id ) ) {
			//$items = $items->where('types_id','=', $types_id);
			$items = $items
					
					->where('item_type_links.types_id','=', $types_id);
		}
		if( !empty( $tags_key ) ) {
				$items = $items
						->where('item.tags','LIKE', '%'.$tags_key.'%');
			}
		
		if( !empty( $keyword ) ) {
									$items = $items
									
									->join('item_categories','LEFT')
									->on('item_categories.id', '=', 'item.categories_id')
									
										->where(DB::expr('DATE_FORMAT(`items.lifetime_date`,"%Y-%m-%d %H-%i-%s")'),'>=', date('Y-m-d H:i:s'))
										->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();
													
								}
		
		$items_test = clone $items;
		$items_test = $items_test->find_all();
		
		$sizes = $items->group_by('size')->find_all();
		
		if( empty( $keyword ) ) {
			$items_tags_temp = ORM::Factory('item')->where('status','=', 1)->find_all();
			foreach( $items_tags_temp as $tg ) {
				//if( $i > 0 )
				$tags_list .= trim($tg->tags).",";
			}
		}
		
		$types_arr = array();
		foreach( $items_test as $tg ) {
			//if( $i > 0 )
			if( !empty( $keyword ) ) {
			$tags_list .= trim($tg->tags).",";
			}
			// TODO ITEM TYPES
			$t_tmp = ORM::Factory('item_type_link')->where('id','=', $tg->types_id)->find();
			$types_arr[] = $t_tmp->types_id;
			//
			//echo $tg->id."::".$t_tmp->types_id."<br/>";
			$i++;
			
		}
		$types_arr_ = array_unique($types_arr);
		$types = ORM::Factory('item_type');
		if( !empty( $types_arr_) ) 
		$types = $types->where('id','IN', $types_arr_);
		
		$types = $types->find_all();
		
		$tags_list = substr( $tags_list, 0, -1);
		$tags = explode(",", $tags_list);
		foreach( $tags as $t ) {
			$tag_tmp[] = trim($t);
		}
		
		
		$tags = array_unique( $tag_tmp );
		sort( $tags );
		
		return View::factory('sort/basic')
						->set('categories', $categories)
						->set('types', $types)
						->set('tags', $tags)
						->set('sizes', $sizes)
						->set('keyword', $keyword)
						->render();
		
	}

	/**
	 * The same as display - used to mold to Kohana standards
	 *
	 * @return	string	HTML for message
	 */
	public static function render()
	{
		return self::display();
	}

	public static function get()
	{
		return 1;
		
	}
}