Ejemplo n.º 1
0
 private function addUserList(EVENT_BOL_Event $event, $status)
 {
     $configs = $this->eventService->getConfigs();
     $language = OW::getLanguage();
     $listTypes = $this->eventService->getUserListsArray();
     $serviceConfigs = $this->eventService->getConfigs();
     $userList = $this->eventService->findEventUsers($event->getId(), $status, null, $configs[EVENT_BOL_EventService::CONF_EVENT_USERS_COUNT]);
     $usersCount = $this->eventService->findEventUsersCount($event->getId(), $status);
     $idList = array();
     /* @var $eventUser EVENT_BOL_EventUser */
     foreach ($userList as $eventUser) {
         $idList[] = $eventUser->getUserId();
     }
     $usersCmp = new BASE_CMP_AvatarUserList($idList);
     $linkId = UTIL_HtmlTag::generateAutoId('link');
     $contId = UTIL_HtmlTag::generateAutoId('cont');
     $this->userLists[] = array('contId' => $contId, 'cmp' => $usersCmp->render(), 'bottomLinkEnable' => $usersCount > $serviceConfigs[EVENT_BOL_EventService::CONF_EVENT_USERS_COUNT], 'toolbarArray' => array(array('label' => $language->text('event', 'avatar_user_list_bottom_link_label', array('count' => $usersCount)), 'href' => OW::getRouter()->urlForRoute('event.user_list', array('eventId' => $event->getId(), 'list' => $listTypes[(int) $status])))));
     $this->userListMenu[] = array('label' => $language->text('event', 'avatar_user_list_link_label_' . $status), 'id' => $linkId, 'contId' => $contId, 'active' => sizeof($this->userListMenu) < 1 ? true : false);
 }
Ejemplo n.º 2
0
 /**
  * Add new event controller
  */
 public function add()
 {
     $language = OW::getLanguage();
     $this->setPageTitle($language->text('event', 'add_page_title'));
     $this->setPageHeading($language->text('event', 'add_page_heading'));
     $this->setPageHeadingIconClass('ow_ic_add');
     OW::getDocument()->setDescription(OW::getLanguage()->text('event', 'add_event_meta_description'));
     OW::getNavigation()->activateMenuItem(OW_Navigation::MAIN, 'event', 'main_menu_item');
     // check permissions for this page
     if (!OW::getUser()->isAuthenticated() || !OW::getUser()->isAuthorized('event', 'add_event')) {
         $status = BOL_AuthorizationService::getInstance()->getActionStatus('event', 'add_event');
         throw new AuthorizationException($status['msg']);
     }
     $form = new EventAddForm('event_add');
     if (date('n', time()) == 12 && date('j', time()) == 31) {
         $defaultDate = date('Y', time()) + 1 . '/1/1';
     } else {
         if (date('j', time()) + 1 > date('t')) {
             $defaultDate = date('Y', time()) . '/' . (date('n', time()) + 1) . '/1';
         } else {
             $defaultDate = date('Y', time()) . '/' . date('n', time()) . '/' . (date('j', time()) + 1);
         }
     }
     $form->getElement('start_date')->setValue($defaultDate);
     $form->getElement('end_date')->setValue($defaultDate);
     $form->getElement('start_time')->setValue('all_day');
     $form->getElement('end_time')->setValue('all_day');
     $checkboxId = UTIL_HtmlTag::generateAutoId('chk');
     $tdId = UTIL_HtmlTag::generateAutoId('td');
     $this->assign('tdId', $tdId);
     $this->assign('chId', $checkboxId);
     OW::getDocument()->addScript(OW::getPluginManager()->getPlugin("event")->getStaticJsUrl() . 'event.js');
     OW::getDocument()->addOnloadScript("new eventAddForm(" . json_encode(array('checkbox_id' => $checkboxId, 'end_date_id' => $form->getElement('end_date')->getId(), 'tdId' => $tdId)) . ")");
     if (OW::getRequest()->isPost()) {
         if (!empty($_POST['endDateFlag'])) {
             $this->assign('endDateFlag', true);
         }
         if ($form->isValid($_POST)) {
             $data = $form->getValues();
             $serviceEvent = new OW_Event(EVENT_BOL_EventService::EVENT_BEFORE_EVENT_CREATE, array(), $data);
             OW::getEventManager()->trigger($serviceEvent);
             $data = $serviceEvent->getData();
             $dateArray = explode('/', $data['start_date']);
             $startStamp = mktime(0, 0, 0, $dateArray[1], $dateArray[2], $dateArray[0]);
             if ($data['start_time'] != 'all_day') {
                 $startStamp = mktime($data['start_time']['hour'], $data['start_time']['minute'], 0, $dateArray[1], $dateArray[2], $dateArray[0]);
             }
             if (!empty($_POST['endDateFlag']) && !empty($data['end_date'])) {
                 $dateArray = explode('/', $data['end_date']);
                 $endStamp = mktime(0, 0, 0, $dateArray[1], $dateArray[2], $dateArray[0]);
                 $endStamp = strtotime("+1 day", $endStamp);
                 if ($data['end_time'] != 'all_day') {
                     $hour = 0;
                     $min = 0;
                     if ($data['end_time'] != 'all_day') {
                         $hour = $data['end_time']['hour'];
                         $min = $data['end_time']['minute'];
                     }
                     $dateArray = explode('/', $data['end_date']);
                     $endStamp = mktime($hour, $min, 0, $dateArray[1], $dateArray[2], $dateArray[0]);
                 }
             }
             $imageValid = true;
             $datesAreValid = true;
             $imagePosted = false;
             if (!empty($_FILES['image']['name'])) {
                 if ((int) $_FILES['image']['error'] !== 0 || !is_uploaded_file($_FILES['image']['tmp_name']) || !UTIL_File::validateImage($_FILES['image']['name'])) {
                     $imageValid = false;
                     OW::getFeedback()->error($language->text('base', 'not_valid_image'));
                 } else {
                     $imagePosted = true;
                 }
             }
             if (empty($endStamp)) {
                 $endStamp = strtotime("+1 day", $startStamp);
                 $endStamp = mktime(0, 0, 0, date('n', $endStamp), date('j', $endStamp), date('Y', $endStamp));
             }
             if (!empty($endStamp) && $endStamp < $startStamp) {
                 $datesAreValid = false;
                 OW::getFeedback()->error($language->text('event', 'add_form_invalid_end_date_error_message'));
             }
             if ($imageValid && $datesAreValid) {
                 $event = new EVENT_BOL_Event();
                 $event->setStartTimeStamp($startStamp);
                 $event->setEndTimeStamp($endStamp);
                 $event->setCreateTimeStamp(time());
                 $event->setTitle(htmlspecialchars($data['title']));
                 $event->setLocation(UTIL_HtmlTag::autoLink(strip_tags($data['location'])));
                 $event->setWhoCanView((int) $data['who_can_view']);
                 $event->setWhoCanInvite((int) $data['who_can_invite']);
                 $event->setDescription($data['desc']);
                 $event->setUserId(OW::getUser()->getId());
                 $event->setEndDateFlag(!empty($_POST['endDateFlag']));
                 $event->setStartTimeDisable($data['start_time'] == 'all_day');
                 $event->setEndTimeDisable($data['end_time'] == 'all_day');
                 if ($imagePosted) {
                     $event->setImage(uniqid());
                 }
                 $serviceEvent = new OW_Event(EVENT_BOL_EventService::EVENT_ON_CREATE_EVENT, array('eventDto' => $event, "imageValid" => $imageValid, "imageTmpPath" => $_FILES['image']['tmp_name']));
                 OW::getEventManager()->trigger($serviceEvent);
                 $this->eventService->saveEvent($event);
                 if ($imagePosted) {
                     $this->eventService->saveEventImage($_FILES['image']['tmp_name'], $event->getImage());
                 }
                 $eventUser = new EVENT_BOL_EventUser();
                 $eventUser->setEventId($event->getId());
                 $eventUser->setUserId(OW::getUser()->getId());
                 $eventUser->setTimeStamp(time());
                 $eventUser->setStatus(EVENT_BOL_EventService::USER_STATUS_YES);
                 $this->eventService->saveEventUser($eventUser);
                 OW::getFeedback()->info($language->text('event', 'add_form_success_message'));
                 //                    if ( $event->getWhoCanView() == EVENT_BOL_EventService::CAN_VIEW_ANYBODY )
                 //                    {
                 //                        $eventObj = new OW_Event('feed.action', array(
                 //                                'pluginKey' => 'event',
                 //                                'entityType' => 'event',
                 //                                'entityId' => $event->getId(),
                 //                                'userId' => $event->getUserId()
                 //                            ));
                 //                        OW::getEventManager()->trigger($eventObj);
                 //                    }
                 BOL_AuthorizationService::getInstance()->trackAction('event', 'add_event');
                 $serviceEvent = new OW_Event(EVENT_BOL_EventService::EVENT_AFTER_CREATE_EVENT, array('eventId' => $event->id, 'eventDto' => $event), array());
                 OW::getEventManager()->trigger($serviceEvent);
                 $this->redirect(OW::getRouter()->urlForRoute('event.view', array('eventId' => $event->getId())));
             }
         }
     }
     if (empty($_POST['endDateFlag'])) {
         //$form->getElement('start_time')->addAttribute('disabled', 'disabled');
         //$form->getElement('start_time')->addAttribute('style', 'display:none;');
         $form->getElement('end_date')->addAttribute('disabled', 'disabled');
         $form->getElement('end_date')->addAttribute('style', 'display:none;');
         $form->getElement('end_time')->addAttribute('disabled', 'disabled');
         $form->getElement('end_time')->addAttribute('style', 'display:none;');
     }
     $this->addForm($form);
 }