Example #1
0
 public function __construct($ownerMode, $album)
 {
     parent::__construct();
     $language = OW::getLanguage();
     $handler = OW::getRequestHandler()->getHandlerAttributes();
     $isAuthenticated = OW::getUser()->isAuthenticated();
     $canUpload = !OW::getRequest()->isAjax() && OW::getUser()->isAuthorized('photo', 'upload');
     if ($isAuthenticated && $canUpload) {
         $language->addKeyForJs('photo', 'album_name');
         $language->addKeyForJs('photo', 'album_desc');
         $language->addKeyForJs('photo', 'create_album');
         $language->addKeyForJs('photo', 'newsfeed_album');
         $language->addKeyForJs('photo', 'newsfeed_album_error_msg');
         $language->addKeyForJs('photo', 'upload_photos');
         $language->addKeyForJs('photo', 'close_alert');
     } else {
         $status = BOL_AuthorizationService::getInstance()->getActionStatus('photo', 'upload');
         if ($status['status'] != BOL_AuthorizationService::STATUS_DISABLED) {
             $this->assign('isPromo', true);
             $this->assign('promoMsg', json_encode($status['msg']));
         }
     }
     $this->assign('isAuthenticated', $isAuthenticated);
     $this->assign('canUpload', $canUpload);
     $this->assign('url', OW::getEventManager()->call('photo.getAddPhotoURL', array('albumId' => !empty($ownerMode) && !empty($album) ? $album->id : 0)));
     $menu = new BASE_CMP_SortControl();
     $menu->setTemplate(OW::getPluginManager()->getPlugin('photo')->getCmpViewDir() . 'sort_control.html');
     if (in_array($handler[OW_RequestHandler::ATTRS_KEY_ACTION], array('viewList', 'viewTaggedList'))) {
         $menu->addItem('latest', $language->text('photo', 'menu_latest'), OW::getRouter()->urlForRoute('view_photo_list', array('listType' => 'latest')));
         if (PHOTO_BOL_PhotoService::getInstance()->countPhotos('featured', PHOTO_BOL_PhotoService::getInstance()->countPhotos('featured'))) {
             $menu->addItem('featured', $language->text('photo', 'menu_featured'), OW::getRouter()->urlForRoute('view_photo_list', array('listType' => 'featured')));
         }
         $menu->addItem('toprated', $language->text('photo', 'menu_toprated'), OW::getRouter()->urlForRoute('view_photo_list', array('listType' => 'toprated')));
         $menu->addItem('most_discussed', $language->text('photo', 'menu_most_discussed'), OW::getRouter()->urlForRoute('view_photo_list', array('listType' => 'most_discussed')));
         if ($handler[OW_RequestHandler::ATTRS_KEY_ACTION] != 'viewTaggedList') {
             $menu->setActive(!empty($handler[OW_RequestHandler::ATTRS_KEY_VARLIST]['listType']) ? $handler[OW_RequestHandler::ATTRS_KEY_VARLIST]['listType'] : 'latest');
         }
         $menu->assign('initSearchEngine', TRUE);
     } else {
         if (!$ownerMode) {
             $user = BOL_UserService::getInstance()->findByUsername($handler[OW_RequestHandler::ATTRS_KEY_VARLIST]['user']);
             $this->assign('user', $user);
             $avatar = BOL_AvatarService::getInstance()->getDataForUserAvatars(array($user->id));
             $this->assign('avatar', $avatar[$user->id]);
             $onlineStatus = BOL_UserService::getInstance()->findOnlineStatusForUserList(array($user->id));
             $this->assign('onlineStatus', $onlineStatus[$user->id]);
         }
         $menu->addItem('userPhotos', $language->text('photo', 'menu_photos'), OW::getRouter()->urlForRoute('photo.user_photos', array('user' => $handler[OW_RequestHandler::ATTRS_KEY_VARLIST]['user'])));
         $menu->addItem('userAlbums', $language->text('photo', 'menu_albums'), OW::getRouter()->urlForRoute('photo_user_albums', array('user' => $handler[OW_RequestHandler::ATTRS_KEY_VARLIST]['user'])));
         if (in_array($handler[OW_RequestHandler::ATTRS_KEY_ACTION], array('userAlbums', 'userAlbum'))) {
             $menu->setActive('userAlbums');
         } else {
             $menu->setActive('userPhotos');
         }
     }
     $event = new BASE_CLASS_EventCollector(PHOTO_CLASS_EventHandler::EVENT_COLLECT_PHOTO_SUB_MENU);
     OW::getEventManager()->trigger($event);
     foreach ($event->getData() as $menuItem) {
         $menu->addItem($menuItem['sortOrder'], $menuItem['label'], $menuItem['url'], !empty($menuItem['isActive']) ? (bool) $menuItem['isActive'] : FALSE);
     }
     $this->addComponent('subMenu', $menu);
     if (OW::getUser()->isAuthenticated()) {
         $userObj = OW::getUser()->getUserObject();
         if (in_array($handler[OW_RequestHandler::ATTRS_KEY_ACTION], array('viewList', 'viewTaggedList')) || !empty($handler[OW_RequestHandler::ATTRS_KEY_VARLIST]['user']) && $handler[OW_RequestHandler::ATTRS_KEY_VARLIST]['user'] == $userObj->username) {
             $menuItems = array();
             $item = new BASE_MenuItem();
             $item->setKey('menu_explore');
             $item->setLabel($language->text('photo', 'menu_explore'));
             $item->setUrl(OW::getRouter()->urlForRoute('view_photo_list'));
             $item->setIconClass('ow_ic_lens');
             $item->setOrder(0);
             $item->setActive(in_array($handler[OW_RequestHandler::ATTRS_KEY_ACTION], array('viewList', 'viewTaggedList')));
             array_push($menuItems, $item);
             $item = new BASE_MenuItem();
             $item->setKey('menu_my_photos');
             $item->setLabel($language->text('photo', 'menu_my_photos'));
             $item->setUrl(OW::getRouter()->urlForRoute('photo.user_photos', array('user' => $userObj->username)));
             $item->setIconClass('ow_ic_picture');
             $item->setOrder(1);
             $item->setActive($ownerMode);
             array_push($menuItems, $item);
             $this->addComponent('photoMenu', new BASE_CMP_ContentMenu($menuItems));
         }
     }
 }