Ejemplo n.º 1
0
 /**
  * Returns an array containing the URLs for each avatar size available for
  * the given user
  *
  * @param array $socialForum
  *
  * @return array [$sizeCode => $url, $sizeCode => $url...]
  */
 public static function getAvatarUrls(array $socialForum)
 {
     $urls = array();
     foreach (ThemeHouse_SocialGroups_Model_SocialForumAvatar::getSizes() as $sizeCode => $maxDimensions) {
         $urls[$sizeCode] = self::getAvatarUrl($socialForum, $sizeCode);
     }
     return $urls;
 }
Ejemplo n.º 2
0
 public function actionAvatarUpload()
 {
     $this->_assertPostOnly();
     $socialForum = ThemeHouse_SocialGroups_SocialForum::getInstance()->toArray();
     $forumId = $this->_input->filterSingle('node_id', XenForo_Input::UINT);
     $ftpHelper = $this->getHelper('ForumThreadPost');
     $forum = $this->getHelper('ForumThreadPost')->assertForumValidAndViewable($forumId, $this->_getForumFetchOptions());
     $this->_assertCanEditSocialForum($socialForum);
     $avatar = XenForo_Upload::getUploadedFile('avatar');
     /* @var $avatarModel ThemeHouse_SocialGroups_Model_SocialForumAvatar */
     $avatarModel = $this->getModelFromCache('ThemeHouse_SocialGroups_Model_SocialForumAvatar');
     $inputData = $this->_input->filter(array('delete' => XenForo_Input::UINT));
     $inputData['logo_crop_x'] = $this->_input->filterSingle('avatar_crop_x', XenForo_Input::UINT);
     $inputData['logo_crop_y'] = $this->_input->filterSingle('avatar_crop_y', XenForo_Input::UINT);
     // upload new avatar
     if ($avatar) {
         $avatarData = $avatarModel->uploadAvatar($avatar, $socialForum['social_forum_id'], XenForo_Visitor::getInstance()->getNodePermissions($socialForum['node_id']));
     } elseif ($inputData['delete']) {
         $avatarData = $avatarModel->deleteAvatar($socialForum['social_forum_id']);
     } elseif ($inputData['logo_crop_x'] != $socialForum['logo_crop_x'] || $inputData['logo_crop_y'] != $socialForum['logo_crop_y']) {
         $avatarData = $avatarModel->recropAvatar($socialForum['social_forum_id'], $inputData['logo_crop_x'], $inputData['logo_crop_y']);
     }
     // merge new data into $socialForum, if there is any
     if (isset($avatarData) && is_array($avatarData)) {
         foreach ($avatarData as $key => $val) {
             $socialForum[$key] = $val;
         }
     }
     $message = new XenForo_Phrase('upload_completed_successfully');
     // return a view if noredirect has been requested and we are not
     // deleting
     if ($this->_noRedirect()) {
         return $this->responseView('ThemeHouse_SocialGroups_ViewPublic_SocialForum_AvatarUpload', '', array('socialForum' => $socialForum, 'sizeCode' => 'm', 'maxWidth' => ThemeHouse_SocialGroups_Model_SocialForumAvatar::getSizeFromCode('m'), 'maxDimension' => $socialForum['logo_width'] > $socialForum['logo_height'] ? 'height' : 'width', 'width' => $socialForum['logo_width'], 'height' => $socialForum['logo_height'], 'cropX' => $socialForum['logo_crop_x'], 'cropY' => $socialForum['logo_crop_y'], 'social_forum_id' => $socialForum['social_forum_id'], 'logo_date' => $socialForum['logo_date'], 'message' => $message));
     } else {
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildPublicLink('account/personal-details'), $message);
     }
 }