/** * Prepare profile for cover view */ public function prepareProfile($profile) { if (Zend_Auth::getInstance()->hasIdentity()) { $current_user = (int) Zend_Auth::getInstance()->getIdentity()->id; } else { $current_user = 0; } $Images = new Application_Model_Images(); $Connections = new Application_Model_Connections(); $Reports = new Application_Model_Reports(); $ProfilesMeta = new Application_Model_ProfilesMeta(); $meta_values = $ProfilesMeta->getMetaValues($profile->id); // user's data, object style $this->view->profile_data = $profile; $this->view->profile_data->meta_values = $meta_values; // attach sidebar box Zend_Registry::get('hooks')->attach('hook_view_sidebar', 5, function () { echo Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->view->render('/_sidebar/profileinfo.phtml'); }); $limit = (int) Zend_Registry::get('config')->get('sidebar_max_users'); $is_following = $Connections->isFollowing($current_user, $profile->id); $is_friend = $Connections->areFriends($profile->id, $current_user); $is_reported = $Reports->isReported($profile->id, $profile->type); // @formatter:off // check privacy if (isset($profile) && (Zend_Auth::getInstance()->hasIdentity() && (Zend_Auth::getInstance()->getIdentity()->role == 'admin' || Zend_Auth::getInstance()->getIdentity()->role == 'reviewer') || Zend_Auth::getInstance()->hasIdentity() && Zend_Auth::getInstance()->getIdentity()->id == $profile->id || $profile->profile_privacy === 'friends' && $is_friend || $profile->profile_privacy === 'followers' && $is_following || $profile->profile_privacy === 'everyone' && Zend_Auth::getInstance()->hasIdentity() || $profile->profile_privacy === 'public')) { if ($profile->type === 'group') { $this->view->sidebar_members = $Connections->getFriends($profile->id, $limit, false, 'user'); $this->view->sidebar_members_count = $Connections->getFriends($profile->id, false, true); // attach sidebar box Zend_Registry::get('hooks')->attach('hook_view_sidebar', 10, function () { echo Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->view->render('/_sidebar/members.phtml'); }); // check if secret group and this is a group owner if ($current_user > 0 && $current_user == $profile->owner && $profile->profile_privacy === 'friends') { $Connections->mix_friends = false; $this->view->sidebar_approve_members = $Connections->getFollowers($profile->id); $this->view->sidebar_approve_members_count = $Connections->getFollowers($profile->id, false, true); // attach sidebar box Zend_Registry::get('hooks')->attach('hook_view_sidebar', 10, function () { echo Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->view->render('/_sidebar/approvemembers.phtml'); }); } } elseif ($profile->type === 'user') { // TODO: optiomize this to a single join call $this->view->sidebar_followers = $Connections->getFollowers($profile->id, $limit); $this->view->sidebar_following = $Connections->getFollowing($profile->id, $limit); $this->view->sidebar_friends = $Connections->getFriends($profile->id, $limit, false, 'user'); $this->view->sidebar_followers_count = $Connections->getFollowers($profile->id, false, true); $this->view->sidebar_following_count = $Connections->getFollowing($profile->id, false, true); $this->view->sidebar_friends_count = $Connections->getFriends($profile->id, false, true); $this->view->sidebar_groups = $Connections->getFriends($profile->id, $limit, false, 'group'); $this->view->sidebar_groups_count = $Connections->getFriends($profile->id, $limit, true, 'group'); // attach sidebar box Zend_Registry::get('hooks')->attach('hook_view_sidebar', 10, function () { echo Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->view->render('/_sidebar/followers.phtml'); echo Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->view->render('/_sidebar/following.phtml'); echo Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->view->render('/_sidebar/friends.phtml'); echo Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->view->render('/_sidebar/groups.phtml'); }); } elseif ($profile->type === 'page') { } // put images to sidebar // $this->view->sidebar_images_count = $Images->getImages($profile->id, false, true); // $this->view->sidebar_images = $Images->getImages($profile->id, false, false, $limit); Zend_Registry::get('hooks')->attach('hook_view_sidebar', 10, function () { echo Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->view->render('/_sidebar/images.phtml'); }); } // @formatter:on // set view params $this->view->user_cover = true; $this->view->is_following = $is_following; $this->view->is_friend = $is_friend; $this->view->is_reported = $is_reported; // override <head> for profile pages if (Zend_Registry::get('config')->get('profiles_head')) { $content = Zend_Registry::get('config')->get('profiles_head'); $this->view->custom_head = Application_Plugin_Common::parseProfileTags($content, $profile); } // view perspective $this->view->view_perspective = 'profile_view'; return; }