public function viewAction() { if (Zend_Controller_Action_HelperBroker::hasHelper('redirector')) { $redirector = Zend_Controller_Action_HelperBroker::getExistingHelper('redirector'); } $hometargeturl = $this->_urlHelper->url(array('controller' => 'index', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); // Get user identity $auth = Zend_Auth::getInstance(); // Disable edit profile by default $userEdit = false; // Get params $params = $this->getRequest()->getParams(); if (isset($params['user'])) { // Get username from params $username = $params['user']; } else { $redirector->gotoUrl($hometargeturl); } // Get content types $contentTypes = new Default_Model_ContentTypes(); $this->view->content_types = $contentTypes->getAllNamesAndIds(); // Get user data from User Model $user = new Default_Model_User(); $data = $user->getUserByName($username); if ($data == null) { $redirector->gotoUrl($hometargeturl); } $this->view->user = $data; $id = $data['id_usr']; // Get public user data from UserProfiles Model $userProfile = new Default_Model_UserProfiles(); $dataa = $userProfile->getPublicData($id); // $dataa is an array with key=>val like firstname => "Joel Peeloten" // This was replaced with get public data and the foreach above // Kept here just in case for the future /* $dataa['gender'] = $userprofile->getUserProfileValue($id, 'gender'); $dataa['surname'] = $userprofile->getUserProfileValue($id, 'surname'); $dataa['firstname'] = $userprofile->getUserProfileValue($id, 'firstname'); $dataa['category'] = $userprofile->getUserProfileValue($id, 'user category'); $dataa['profession'] = $userprofile->getUserProfileValue($id, 'profession'); $dataa['company'] = $userprofile->getUserProfileValue($id, 'company'); $dataa['biography'] = $userprofile->getUserProfileValue($id, 'biography'); $dataa['city'] = $userprofile->getUserProfileValue($id, 'city'); $dataa['phone'] = $userprofile->getUserProfileValue($id, 'phone'); $dataa['birthday'] = $userprofile->getUserProfileValue($id, 'birthday'); */ // No countries in countries_ctr and not very good table at all? // This would be better: http://snipplr.com/view/6636/mysql-table--iso-country-list-with-abbreviations/ /* $dataa['country'] = $userProfile->getUserProfileValue($id, 'country'); $userCountry = new Default_Model_UserCountry(); $dataa['country'] = $userCountry->getCountryNameById( $dataa['country']['profile_value_usp'] ); */ // Get content user has released $type = isset($params['type']) ? $params['type'] : 0; $contentList = $user->getUserContent($data['id_usr']); $temp = array(); // Initialize content counts $dataa['contentCounts']['all'] = 0; $dataa['contentCounts']['user_edit'] = 0; $dataa['contentCounts']['problem'] = 0; $dataa['contentCounts']['finfo'] = 0; $dataa['contentCounts']['idea'] = 0; // Count amount of content user has published // and check unpublished so only owner can see it. foreach ($contentList as $k => $c) { // If user not logged in and content not published, // remove content from list if (!$auth->hasIdentity() && $c['published_cnt'] == 0) { unset($contentList[$k]); // Else if user logged in and not owner of unpublished content, // remove content from list } else { if ($auth->hasIdentity() && $c['id_usr'] != $auth->getIdentity()->user_id && $c['published_cnt'] == 0) { unset($contentList[$k]); // Else increase content counts and sort content by content type } else { if (isset($c['key_cty'])) { // Set content to array by its content type //$temp[$c['key_cty']][] = $c; //$temp[] = $c; // Increase total count $dataa['contentCounts']['all']++; // Set content type count to 0 if count is not set if (!isset($dataa['contentCounts'][$c['key_cty']])) { $dataa['contentCounts'][$c['key_cty']] = 0; } // Increase content type count $dataa['contentCounts'][$c['key_cty']]++; } } } if ($c['published_cnt'] == 0) { $dataa['contentCounts']['user_edit']++; } } // end foreach // If user is logged in, and viewing self; allow edit if ($auth->hasIdentity()) { $identity = $auth->getIdentity(); if ($data['id_usr'] == $identity->user_id) { $userEdit = true; } } if ($auth->hasIdentity() && $data['id_usr'] == $auth->getIdentity()->user_id) { $favouriteModel = new Default_Model_UserHasFavourites(); $favouriteType = isset($params['favourite']) ? $params['favourite'] : 0; $favouriteList = $user->getUserFavouriteContent($data['id_usr']); // Initialize Favourite counts $dataa['favouriteCounts']['totalCount'] = 0; $dataa['favouriteCounts']['problem'] = 0; $dataa['favouriteCounts']['finfo'] = 0; $dataa['favouriteCounts']['idea'] = 0; foreach ($favouriteList as $k => $favourite) { /* * If content Id doesn't exist anymore: * unset from Favouritelist and remove all lines from user_has_favourites table that * refers to this content id */ if ($favourite['id_cnt'] == '') { unset($favouriteList[$k]); $favouriteModel->removeAllContentFromFavouritesByContentId($favourite['id_cnt_fvr']); } if (isset($favourite['key_cty'])) { // Increase total count $dataa['favouriteCounts']['totalCount']++; // Set content type count to 0 if count is not set if (!isset($dataa['favouriteCounts'][$favourite['key_cty']])) { $dataa['favouriteCounts'][$favourite['key_cty']] = 0; } // Increase content type count $dataa['favouriteCounts'][$favourite['key_cty']]++; } } //print_r($dataa);print_r($favouriteList);die; } //Zend_Debug::dump("" === null); //Zend_Debug::dump($dataa['contentCounts']['idea']); //Zend_Debug::dump($dataa['contentCounts']['idea'] == ""); //die; // My Posts box data $box = new Oibs_Controller_Plugin_AccountViewBox(); $box->setHeader("My Posts")->setClass("right")->setName("my-posts")->addTab("All", "all", "all selected", $dataa['contentCounts']['all'])->addTab("Challenges", "problem", "challenges", $dataa['contentCounts']['problem'])->addTab("Ideas", "idea", "ideas", $dataa['contentCounts']['idea'])->addTab("Visions", "finfo", "visions", $dataa['contentCounts']['finfo']); if ($dataa['contentCounts']['user_edit'] && $userEdit) { $box->addTab("Saved", "user_edit", "saved", $dataa['contentCounts']['user_edit']); } $boxes[] = $box; $views = new Default_Model_ContentViews(); $myViews = $views->getUserViewedContents($data['id_usr']); $box = new Oibs_Controller_Plugin_AccountViewBox(); $box->setHeader("My Views")->setName("my-views")->setClass("right")->addTab("Views", "views", "all selected"); //$boxes[] = $box; $myReaders = $user->getUsersViewers($data['id_usr']); $box = new Oibs_Controller_Plugin_AccountViewBox(); $box->setHeader("My Reads")->setClass("right")->setName("my-reads")->addTab("Readers", "readers", "all selected"); //$boxes[] = $box; // Set to view $this->view->user_has_image = $user->userHasProfileImage($data['id_usr']); $this->view->userprofile = $dataa; $this->view->authorContents = $contentList; /*$temp*/ $this->view->boxes = $boxes; $this->view->myViews = $myViews; $this->view->myReaders = $myReaders; //$this->view->authorFavourites = $favouriteList; $this->view->user_edit = $userEdit; $this->view->type = $type; /* Waiting for layout that is maybe coming // MyViews $viewsModel = new Default_Model_ContentViews(); Zend_Debug::dump($viewsModel->getUserViewedContents($data['id_usr'])); // MyReaders Zend_Debug::dump($user->getUsersViewers($data['id_usr'])); die;*/ $group_model = new Default_Model_UserHasGroup(); $usergroups = $group_model->getGroupsByUserId($id); $this->view->usergroups = $usergroups; }
private function getFavouriteRows($id_usr) { $favouriteModel = new Default_Model_UserHasFavourites(); $contentHasTagModel = new Default_Model_ContentHasTag(); $user = new Default_Model_User(); $favouriteList = $user->getUserFavouriteContent($id_usr); // Initialize Favourite counts $dataa['favouriteCounts'] = null; $dataa['favouriteCounts']['totalCount'] = 0; $dataa['favouriteCounts']['updated'] = 0; $dataa['favouriteCounts']['problem'] = 0; $dataa['favouriteCounts']['finfo'] = 0; $dataa['favouriteCounts']['idea'] = 0; foreach ($favouriteList as $k => $favourite) { /* * If content Id doesn't exist anymore: * unset from Favouritelist and remove all lines from user_has_favourites table that * refers to this content id */ if (isset($favourite['id_cnt_fvr']) && $favourite['id_cnt'] == '') { unset($favouriteList[$k]); $favouriteModel->removeAllContentFromFavouritesByContentId($favourite['id_cnt_fvr']); continue; } if (isset($favourite['key_cty'])) { $dataa['favouriteCounts']['totalCount']++; // Increase total count $dataa['favouriteCounts'][$favourite['key_cty']]++; // Increase content type count } if (isset($favourite['last_checked']) && isset($favourite['modified_cnt'])) { if (strtotime($favourite['last_checked']) < strtotime($favourite['modified_cnt'])) { $dataa['favouriteCounts']['updated']++; $favouriteList[$k] = array_merge($favourite, array('updated' => '1')); } else { $favouriteList[$k] = array_merge($favourite, array('updated' => '0')); } } } $newList = array('counts' => array('total' => $dataa['favouriteCounts']['totalCount'], 'updated' => $dataa['favouriteCounts']['updated'], 'problem' => $dataa['favouriteCounts']['problem'], 'finfo' => $dataa['favouriteCounts']['finfo'], 'idea' => $dataa['favouriteCounts']['idea']), 'contents' => array()); $k = 0; foreach ($favouriteList as $key => $favourite) { //print_r($favourite);die; $tags = $contentHasTagModel->getContentTags($favourite['id_cnt']); // Action helper for define is tag running number divisible by two $tags = $this->_helper->tagsizes->isTagDivisibleByTwo($tags); $this->gtranslate->setLangFrom($favourite['language_cnt']); $translang = $this->gtranslate->getLangPair(); $newList['contents'][$k]['class'] = "fvr_" . $favourite['key_cty']; if ($favourite['updated'] === "1") { $newList['contents'][$k]['class'] = "fvr_updated " . $newList['contents'][$k]['class']; } $newList['contents'][$k]['original'] = $favourite; $newList['contents'][$k]['translated'] = $this->gtranslate->translateContent($favourite); $newList['contents'][$k]['original']['tags'] = $tags; $newList['contents'][$k]['translated']['tags'] = $tags; $newList['contents'][$k]['original']['translang'] = $translang; $newList['contents'][$k]['translated']['translang'] = $translang; $k++; } return $newList; }