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); }
/** * 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); }