示例#1
0
文件: groups.php 项目: vazahat/dudex
 public function view($params)
 {
     $groupId = (int) $params['groupId'];
     if (empty($groupId)) {
         throw new Redirect404Exception();
     }
     $groupDto = $this->service->findGroupById($groupId);
     if ($groupDto === null) {
         throw new Redirect404Exception();
     }
     OW::getDocument()->addMetaInfo('og:title', htmlspecialchars($groupDto->title), 'property');
     OW::getDocument()->addMetaInfo('og:description', htmlspecialchars($groupDto->description), 'property');
     OW::getDocument()->addMetaInfo('og:url', OW_URL_HOME . OW::getRequest()->getRequestUri(), 'property');
     OW::getDocument()->addMetaInfo('og:site_name', OW::getConfig()->getValue('base', 'site_name'), 'property');
     $language = OW::getLanguage();
     if (!$this->service->isCurrentUserCanView($groupDto->userId)) {
         $this->assign('permissionMessage', $language->text('groups', 'view_no_permission'));
         return;
     }
     $invite = $this->service->findInvite($groupDto->id, OW::getUser()->getId());
     if ($invite !== null) {
         OW::getRegistry()->set('groups.hide_console_invite_item', true);
         $this->service->markInviteAsViewed($groupDto->id, OW::getUser()->getId());
     }
     if ($groupDto->whoCanView == GROUPS_BOL_Service::WCV_INVITE && !OW::getUser()->isAuthorized('groups')) {
         if (!OW::getUser()->isAuthenticated()) {
             $this->redirect(OW::getRouter()->urlForRoute('groups-private-group', array('groupId' => $groupDto->id)));
         }
         $user = $this->service->findUser($groupDto->id, OW::getUser()->getId());
         if ($groupDto->whoCanView == GROUPS_BOL_Service::WCV_INVITE && $invite === null && $user === null) {
             $this->redirect(OW::getRouter()->urlForRoute('groups-private-group', array('groupId' => $groupDto->id)));
         }
     }
     OW::getDocument()->setTitle($language->text('groups', 'view_page_title', array('group_name' => strip_tags($groupDto->title))));
     OW::getDocument()->setDescription($language->text('groups', 'view_page_description', array('description' => UTIL_String::truncate(strip_tags($groupDto->description), 200))));
     $place = 'group';
     $customizeUrls = array('customize' => OW::getRouter()->urlForRoute('groups-customize', array('mode' => 'customize', 'groupId' => $groupId)), 'normal' => OW::getRouter()->urlForRoute('groups-view', array('groupId' => $groupId)));
     $componentAdminService = BOL_ComponentAdminService::getInstance();
     $componentEntityService = BOL_ComponentEntityService::getInstance();
     $userCustomizeAllowed = $componentAdminService->findPlace($place)->editableByUser;
     $ownerMode = $groupDto->userId == OW::getUser()->getId();
     $customize = !empty($params['mode']) && $params['mode'] == 'customize';
     if (!($userCustomizeAllowed && $ownerMode) && $customize) {
         $this->redirect($customizeUrls['normal']);
     }
     $template = $customize ? 'drag_and_drop_entity_panel_customize' : 'drag_and_drop_entity_panel';
     $schemeList = $componentAdminService->findSchemeList();
     $defaultScheme = $componentAdminService->findSchemeByPlace($place);
     if (empty($defaultScheme) && !empty($schemeList)) {
         $defaultScheme = reset($schemeList);
     }
     if (!$componentAdminService->isCacheExists($place)) {
         $state = array();
         $state['defaultComponents'] = $componentAdminService->findPlaceComponentList($place);
         $state['defaultPositions'] = $componentAdminService->findAllPositionList($place);
         $state['defaultSettings'] = $componentAdminService->findAllSettingList();
         $state['defaultScheme'] = $defaultScheme;
         $componentAdminService->saveCache($place, $state);
     }
     $state = $componentAdminService->findCache($place);
     $defaultComponents = $state['defaultComponents'];
     $defaultPositions = $state['defaultPositions'];
     $defaultSettings = $state['defaultSettings'];
     $defaultScheme = $state['defaultScheme'];
     if ($userCustomizeAllowed) {
         if (!$componentEntityService->isEntityCacheExists($place, $groupId)) {
             $entityCache = array();
             $entityCache['entityComponents'] = $componentEntityService->findPlaceComponentList($place, $groupId);
             $entityCache['entitySettings'] = $componentEntityService->findAllSettingList($groupId);
             $entityCache['entityPositions'] = $componentEntityService->findAllPositionList($place, $groupId);
             $componentEntityService->saveEntityCache($place, $groupId, $entityCache);
         }
         $entityCache = $componentEntityService->findEntityCache($place, $groupId);
         $entityComponents = $entityCache['entityComponents'];
         $entitySettings = $entityCache['entitySettings'];
         $entityPositions = $entityCache['entityPositions'];
     } else {
         $entityComponents = array();
         $entitySettings = array();
         $entityPositions = array();
     }
     $componentPanel = new BASE_CMP_DragAndDropEntityPanel($place, $groupId, $defaultComponents, $customize, $template);
     $componentPanel->setAdditionalSettingList(array('entityId' => $groupId, 'entity' => 'groups'));
     if ($ownerMode) {
         $componentPanel->allowCustomize($userCustomizeAllowed);
         $componentPanel->customizeControlCunfigure($customizeUrls['customize'], $customizeUrls['normal']);
     }
     $componentPanel->setSchemeList($schemeList);
     $componentPanel->setPositionList($defaultPositions);
     $componentPanel->setSettingList($defaultSettings);
     $componentPanel->setScheme($defaultScheme);
     /*
              * This feature was disabled for users
              * if ( !empty($userScheme) )
               {
               $componentPanel->setUserScheme($userScheme);
               } */
     if (!empty($entityComponents)) {
         $componentPanel->setEntityComponentList($entityComponents);
     }
     if (!empty($entityPositions)) {
         $componentPanel->setEntityPositionList($entityPositions);
     }
     if (!empty($entitySettings)) {
         $componentPanel->setEntitySettingList($entitySettings);
     }
     $this->assign('componentPanel', $componentPanel->render());
 }
示例#2
0
 private function action($place, $userId, $customizeMode, $customizeRouts, $componentTemplate, $responderController = null)
 {
     $userCustomizeAllowed = (bool) $this->componentAdminService->findPlace($place)->editableByUser;
     if (!$userCustomizeAllowed && $customizeMode) {
         $this->redirect($customizeRouts['normal']);
     }
     $schemeList = $this->componentAdminService->findSchemeList();
     $state = $this->componentAdminService->findCache($place);
     if (empty($state)) {
         $state = array();
         $state['defaultComponents'] = $this->componentAdminService->findPlaceComponentList($place);
         $state['defaultPositions'] = $this->componentAdminService->findAllPositionList($place);
         $state['defaultSettings'] = $this->componentAdminService->findAllSettingList();
         $state['defaultScheme'] = (array) $this->componentAdminService->findSchemeByPlace($place);
         $this->componentAdminService->saveCache($place, $state);
     }
     $defaultComponents = $state['defaultComponents'];
     $defaultPositions = $state['defaultPositions'];
     $defaultSettings = $state['defaultSettings'];
     $defaultScheme = $state['defaultScheme'];
     if ($userCustomizeAllowed) {
         $userCache = $this->componentEntityService->findEntityCache($place, $userId);
         if (empty($userCache)) {
             $userCache = array();
             $userCache['userComponents'] = $this->componentEntityService->findPlaceComponentList($place, $userId);
             $userCache['userSettings'] = $this->componentEntityService->findAllSettingList($userId);
             $userCache['userPositions'] = $this->componentEntityService->findAllPositionList($place, $userId);
             $this->componentEntityService->saveEntityCache($place, $userId, $userCache);
         }
         $userComponents = $userCache['userComponents'];
         $userSettings = $userCache['userSettings'];
         $userPositions = $userCache['userPositions'];
     } else {
         $userComponents = array();
         $userSettings = array();
         $userPositions = array();
     }
     if (empty($defaultScheme) && !empty($schemeList)) {
         $defaultScheme = reset($schemeList);
     }
     $componentPanel = new BASE_CMP_DragAndDropEntityPanel($place, $userId, $defaultComponents, $customizeMode, $componentTemplate, $responderController);
     $componentPanel->setAdditionalSettingList(array('entityId' => $userId, 'entity' => 'user'));
     if (!empty($customizeRouts)) {
         $componentPanel->allowCustomize($userCustomizeAllowed);
         $componentPanel->customizeControlCunfigure($customizeRouts['customize'], $customizeRouts['normal']);
     }
     $componentPanel->setSchemeList($schemeList);
     $componentPanel->setPositionList($defaultPositions);
     $componentPanel->setSettingList($defaultSettings);
     $componentPanel->setScheme($defaultScheme);
     /*
              * This feature was disabled for users
              * if ( !empty($userScheme) )
               {
               $componentPanel->setEntityScheme($userScheme);
               } */
     if (!empty($userComponents)) {
         $componentPanel->setEntityComponentList($userComponents);
     }
     if (!empty($userPositions)) {
         $componentPanel->setEntityPositionList($userPositions);
     }
     if (!empty($userSettings)) {
         $componentPanel->setEntitySettingList($userSettings);
     }
     $this->assign('componentPanel', $componentPanel->render());
 }