Current File : /home/users/barii/public_html/finansenl.com.pl/wodki/application/classes/Controller/Profile.php
<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Profile extends Controller_Frontend {

	public function action_index()
	{
	
		$page = !empty($_GET['page']) ? addslashes($_GET['page']) : 1;
		$page = ($page-1)*Kohana::$config->load('site.itemPerPage');
		$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']) : 'username';
		$direct = !empty($_GET['direct']) ? addslashes($_GET['direct']) : 'asc';
		
		$categories_id = !empty($_GET['categories_id']) ? addslashes($_GET['categories_id']) : '';
		$topics_id = !empty($_GET['topics_id']) ? addslashes($_GET['topics_id']) : '';
		$techniques_id = !empty($_GET['techniques_id']) ? addslashes($_GET['techniques_id']) : '';
		
			$techniques = ORM::Factory('item_technique')
				->join('items','LEFT')
				->on('items.techniques_id','=', 'item_technique.id')
				
				->join('item_topic_links','LEFT')
					->on('item_topic_links.id', '=', 'items.topics_id');
				
				if( !empty( $keyword ) ) {
				
				$techniques = $techniques
					->join('item_categories','LEFT')
					->on('item_categories.id', '=', 'items.categories_id')
					->join('item_techniques','LEFT')
					->on('item_techniques.id', '=', 'items.techniques_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')
					//->join('item_topic_links','LEFT')
					//->on('item_topic_links.id', '=', 'items.topics_id')
					->join('item_topics','LEFT')
					->on('item_topics.id', '=', 'item_topic_links.topics_id')
					
					->and_where_open()
					->where('item_categories.title','LIKE', '%'.$keyword.'%')
					->or_where('item_techniques.title','LIKE', '%'.$keyword.'%')
					->or_where('item_topics.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();
					
				//$techniques = $techniques->where('items.tags','LIKE', '%'.$keyword.'%');
				}
				if( !empty( $categories_id ) ) 
				$techniques = $techniques->where('items.categories_id','=', $categories_id);
				if( !empty( $topics_id ) ) {
					//$techniques = $techniques->where('items.topics_id','=', $topics_id);
					$techniques = $techniques
					->join('item_topics','LEFT')
					->on('item_topics.id', '=', 'item_topic_links.topics_id')
					->where('item_topic_links.topics_id','=', $topics_id);
				}
				$techniques = $techniques->group_by('item_technique.id')
				->order_by('order','asc')
				->find_all();
				
			$topics = ORM::Factory('item_topic')
					->join('item_topic_links','LEFT')
					->on('item_topic_links.topics_id', '=', 'item_topic.id')
					->join('items','LEFT')
					->on('items.topics_id','=', 'item_topic_links.id');
				//->join('items','LEFT')
				//->on('items.topics_id','=', 'item_topic.id');
				
				if( !empty( $keyword ) ) {
				
				$topics = $topics
					->join('item_categories','LEFT')
					->on('item_categories.id', '=', 'items.categories_id')
					->join('item_techniques','LEFT')
					->on('item_techniques.id', '=', 'items.techniques_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')
					//->join('item_topic_links','LEFT')
					//->on('item_topic_links.id', '=', 'items.topics_id')
					->join('item_topics','LEFT')
					->on('item_topics.id', '=', 'item_topic_links.topics_id')
					
					->and_where_open()
					->where('item_categories.title','LIKE', '%'.$keyword.'%')
					->or_where('item_techniques.title','LIKE', '%'.$keyword.'%')
					->or_where('item_topics.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();
					
				//$topics = $topics->where('items.tags','LIKE', '%'.$keyword.'%');
				}
				
				if( !empty( $categories_id ) ) 
				$topics = $topics->where('items.categories_id','=', $categories_id);
				if( !empty( $techniques_id ) ) 
				$topics = $topics->where('items.techniques_id','=', $techniques_id);
				
				$topics = $topics->order_by('order','asc')->group_by('item_topic.id')->find_all();
				
			$categories = ORM::Factory('item_category')
				->join('items','LEFT')
				->on('items.categories_id','=', 'item_category.id')
				->join('item_topic_links','LEFT')
					->on('item_topic_links.id', '=', 'items.topics_id')
					->join('item_topics','LEFT')
					->on('item_topics.id', '=', 'item_topic_links.topics_id');
				
				if( !empty( $topics_id ) ) {
					//$categories = $categories->where('items.topics_id','=', $topics_id);
					$categories = $categories
					//->join('item_topic_links','LEFT')
					//->on('item_topic_links.id', '=', 'items.topics_id')
					//->join('item_topics','LEFT')
					//->on('item_topics.id', '=', 'item_topic_links.topics_id')
					->where('item_topic_links.topics_id','=', $topics_id);
				}
				
				if( !empty( $keyword ) ) {
				
				$categories = $categories
					->join('item_categories','LEFT')
					->on('item_categories.id', '=', 'items.categories_id')
					->join('item_techniques','LEFT')
					->on('item_techniques.id', '=', 'items.techniques_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')
					//->join('item_topic_links','LEFT')
					//->on('item_topic_links.id', '=', 'items.topics_id')
				//	->join('item_topics','LEFT')
				//	->on('item_topics.id', '=', 'item_topic_links.topics_id')
					
					->and_where_open()
					->where('item_categories.title','LIKE', '%'.$keyword.'%')
					->or_where('item_techniques.title','LIKE', '%'.$keyword.'%')
					->or_where('item_topics.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();
					
				//$categories = $categories->where('items.tags','LIKE', '%'.$keyword.'%');
				}
				if( !empty( $techniques_id ) ) 
				$categories = $categories->where('items.techniques_id','=', $techniques_id);
				
				$categories = $categories->order_by('order','asc')->group_by('item_category.id')->find_all();
		
		
			$this->template->title = __t('Użytkownicy');
			$artists = ORM::Factory('User')
							->join('items','LEFT')
							->on('items.user_id', '=', 'user.id')
							->join('item_topic_links','LEFT')
							->on('item_topic_links.id', '=', 'items.topics_id')
							->join('item_topics','LEFT')
							->on('item_topics.id', '=', 'item_topic_links.topics_id');

			if( !empty( $filtr ) ) {
				$artists = $artists
							->where('items.'.$filtr,'=', $filtr_value);
			}
			
			if( !empty( $categories_id ) ) {
				$artists = $artists
					//		->join('items','LEFT')
					//		->on('items.user_id', '=', 'user.id')
							->where('items.categories_id','=', $categories_id);
			}
			
			if( !empty( $techniques_id ) ) {
				$artists = $artists
					//		->join('items','LEFT')
					//		->on('items.user_id', '=', 'user.id')
							->where('items.techniques_id','=', $techniques_id);
			}
			
			if( !empty( $topics_id ) ) {
				$artists = $artists
					//		->join('items','LEFT')
					//		->on('items.user_id', '=', 'user.id')
							->where('item_topic_links.topics_id','=', $topics_id);
							//->where('items.topics_id','=', $topics_id);
			}
			
			
			if( !empty( $keyword ) ) {
				$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()
							
							->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')
							->join('item_categories','LEFT')
					->on('item_categories.id', '=', 'items.categories_id')
					->join('item_techniques','LEFT')
					->on('item_techniques.id', '=', 'items.techniques_id')
					
					//
					//->and_where_open()
					->where('item_categories.title','LIKE', '%'.$keyword.'%')
					->or_where('item_techniques.title','LIKE', '%'.$keyword.'%')
					->or_where('item_topics.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();
							
			}
		
		$artists = $artists->where('items.can_own_photo','=', 0)->where('user.profile_id','=', 1)->where('user.status','=', 1)->group_by('user.username');		
		$users_test = clone $artists;
		$users_test = $users_test->find_all();
		//var_dump($users_test);
		//exit;
		$artists = $artists
			->limit(Kohana::$config->load('site.itemPerPage'))
			->order_by($sort, $direct)
			->offset($page)
			->find_all();
		
		
		$this->pagination = new Pagination(array(
			'items_per_page' => Kohana::$config->load('site.itemPerPage'), 
			'style' => 'kogio',
			'total_items' => $users_test->count()
		));
		
        $this->template->content = View::factory('artist/index')
									->bind('artists', $artists)
									->bind('techniques', $techniques)
									->bind('categories', $categories)
									->bind('topics', $topics)
									->bind('keyword', $keyword)
									->bind('sort', $sort)
									->bind('filtr', $filtr)
									->bind('techniques_id', $techniques_id)
									->bind('categories_id', $categories_id)
									->bind('topics_id', $topics_id)
									->bind('pagination', $this->pagination)
									->bind('page', $page);
	}
	
	public function action_show()
	{
		$id = Request::current()->param('id');
		
		$page = !empty($_GET['page']) ? addslashes($_GET['page']) : 1;
		$page = ($page-1)*Kohana::$config->load('site.itemPerPageArtistShow');
		$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';
		
		$categories_id = !empty($_GET['categories_id']) ? addslashes($_GET['categories_id']) : '';
		$topics_id = !empty($_GET['topics_id']) ? addslashes($_GET['topics_id']) : '';
		$techniques_id = !empty($_GET['techniques_id']) ? addslashes($_GET['techniques_id']) : '';
		
		$techniques = ORM::Factory('item_technique')
				->join('items','LEFT')
				->on('items.techniques_id','=', 'item_technique.id')
				->and_where_open()
				->where('items.owner_id','=', $id)
				->or_where('items.user_id','=', $id)
				->and_where_close();
								
				if( !empty( $categories_id ) ) 
				$techniques = $techniques->where('items.categories_id','=', $categories_id);
				
				if( !empty( $keyword ) ) {
				
				$techniques = $techniques
					->join('item_categories','LEFT')
					->on('item_categories.id', '=', 'items.categories_id')
					->join('item_techniques','LEFT')
					->on('item_techniques.id', '=', 'items.techniques_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')
					->join('item_topic_links','LEFT')
					->on('item_topic_links.id', '=', 'items.topics_id')
					->join('item_topics','LEFT')
					->on('item_topics.id', '=', 'item_topic_links.topics_id')
					
					->and_where_open()
					->where('item_categories.title','LIKE', '%'.$keyword.'%')
					->or_where('item_techniques.title','LIKE', '%'.$keyword.'%')
					->or_where('item_topics.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();
					
				//$techniques = $techniques->where('items.title','LIKE', $keyword.'%');
				}
				
				if( !empty( $topics_id ) ) {
					//$techniques = $techniques->where('items.topics_id','=', $topics_id);
					$techniques = $techniques->join('item_topic_links','LEFT')
					->on('item_topic_links.id', '=', 'items.topics_id')
					->join('item_topics','LEFT')
					->on('item_topics.id', '=', 'item_topic_links.topics_id')
					->where('item_topic_links.topics_id','=', $topics_id);
				}
				$techniques = $techniques->group_by('item_technique.id')
				->order_by('order','asc')
				->find_all();
				
			$topics = ORM::Factory('item_topic')
					->join('item_topic_links','LEFT')
					->on('item_topic_links.topics_id', '=', 'item_topic.id')
					->join('items','LEFT')
					->on('items.topics_id','=', 'item_topic_links.id')
					->and_where_open()
					->where('items.owner_id','=', $id)
					->or_where('items.user_id','=', $id)
					->and_where_close();		
				//->join('items','LEFT')
				//->on('items.topics_id','=', 'item_topic.id');
				
				if( !empty( $keyword ) )  {
					
					$topics = $topics
					->join('item_categories','LEFT')
					->on('item_categories.id', '=', 'items.categories_id')
					->join('item_techniques','LEFT')
					->on('item_techniques.id', '=', 'items.techniques_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')
					->join('item_topics','LEFT')
					->on('item_topics.id', '=', 'item_topic_links.topics_id')
					
					->and_where_open()
					->where('item_categories.title','LIKE', '%'.$keyword.'%')
					->or_where('item_techniques.title','LIKE', '%'.$keyword.'%')
					->or_where('item_topics.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();
					
					//$topics = $topics->where('items.tags','LIKE', '%'.$keyword.'%');
				
				}
				if( !empty( $categories_id ) ) 
				$topics = $topics->where('items.categories_id','=', $categories_id);
				if( !empty( $techniques_id ) ) 
				$topics = $topics->where('items.techniques_id','=', $techniques_id);
				
				$topics = $topics->order_by('order','asc')->group_by('item_topic.id')->find_all();
				
			$categories = ORM::Factory('item_category')
				->join('items','LEFT')
				->on('items.categories_id','=', 'item_category.id')
				->and_where_open()
				->where('items.owner_id','=', $id)
				->or_where('items.user_id','=', $id)
				->and_where_close();
				
				if( !empty( $topics_id ) ) {
					//$categories = $categories->where('items.topics_id','=', $topics_id);
					$categories = $categories->join('item_topic_links','LEFT')
					->on('item_topic_links.id', '=', 'items.topics_id')
					->join('item_topics','LEFT')
					->on('item_topics.id', '=', 'item_topic_links.topics_id')
					->where('item_topic_links.topics_id','=', $topics_id);
				}
				
				if( !empty( $keyword ) ) {
					
					$categories = $categories
					->join('item_categories','LEFT')
					->on('item_categories.id', '=', 'items.categories_id')
					->join('item_techniques','LEFT')
					->on('item_techniques.id', '=', 'items.techniques_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')
					->join('item_topic_links','LEFT')
					->on('item_topic_links.id', '=', 'items.topics_id')
					->join('item_topics','LEFT')
					->on('item_topics.id', '=', 'item_topic_links.topics_id')
					
					->and_where_open()
					->where('item_categories.title','LIKE', '%'.$keyword.'%')
					->or_where('item_techniques.title','LIKE', '%'.$keyword.'%')
					->or_where('item_topics.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();
					
				}
				//$categories = $categories->where('items.tags','LIKE', '%'.$keyword.'%');
				if( !empty( $techniques_id ) ) 
				$categories = $categories->where('items.techniques_id','=', $techniques_id);
				
				$categories = $categories->order_by('order','asc')->group_by('item_category.id')->find_all();
		
		
		$artist = ORM::Factory('User', $id);
		$artist->viewed += 1;
		$artist->save();

		$products = ORM::Factory('item')->where('item.status','=', 1)
					->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')
					->join('item_topic_links','LEFT')
					->on('item_topic_links.id', '=', 'item.topics_id')
					->join('item_topics','LEFT')
					->on('item_topics.id', '=', 'item_topic_links.topics_id');
			if( !empty( $categories_id ) ) {
				$products = $products
							->where('item.categories_id','=', $categories_id);
			}
			
			if( !empty( $techniques_id ) ) {
				$products = $products
							->where('item.techniques_id','=', $techniques_id);
			}
			
			if( !empty( $topics_id ) ) {
				$products = $products
							//->where('item.topics_id','=', $topics_id);
							->where('item_topic_links.topics_id','=', $topics_id);
			}
			
			if( !empty( $keyword ) ) {
				$products = $products
				->join('item_categories','LEFT')
					->on('item_categories.id', '=', 'item.categories_id')
					->join('item_techniques','LEFT')
					->on('item_techniques.id', '=', 'item.techniques_id')
					
					->where('item.can_own_photo','=', 0)
					->and_where_open()
					->where('item_categories.title','LIKE', '%'.$keyword.'%')
					->or_where('item_techniques.title','LIKE', '%'.$keyword.'%')
					->or_where('item_topics.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();
					
				
						
			}
			
			$products = $products
								->and_where_open()
								->where('owner_id','=', $artist->id)
								->or_where('user_id','=', $artist->parent)
								->or_where('user_id','=', $artist->id)
								->and_where_close();
								
			$users_test = clone $products;
			$users_test = $users_test->find_all();
			
			$products = $products
								->limit(Kohana::$config->load('site.itemPerPageArtistShow'))
								->order_by($sort, $direct)
								->offset($page)
								->group_by('item.id')
								->find_all();
								
		$this->pagination = new Pagination(array(
			'items_per_page' => Kohana::$config->load('site.itemPerPageArtistShow'), 
			'style' => 'kogio',
			'total_items' => $users_test->count()
		));
					
		$this->template->title = __t('Profil użytkownika');
        $this->template->content = View::factory('artist/show')
									->bind('keyword', $keyword)
									->bind('pagination', $this->pagination)
									->bind('techniques', $techniques)
									->bind('categories', $categories)
									->bind('topics', $topics)
									->bind('page', $page)
									->bind('products', $products)
									->bind('artist', $artist);
	}
	
	
}