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