예제 #1
0
 public function indexAction()
 {
     $viewer = Engine_Api::_()->user()->getViewer();
     $request = Zend_Controller_Front::getInstance()->getRequest();
     $p = $request->getParams();
     $filter = !empty($p['filter']) ? $p['filter'] : 'future';
     if ($filter != 'past' && $filter != 'future') {
         $filter = 'future';
     }
     $this->view->filter = $filter;
     // Create form
     if ($request->getModuleName() == 'event' && $request->getControllerName() == 'index' && $request->getActionName() == 'manage') {
         $this->view->form = $formFilter = new Event_Form_Filter_Manage();
         $defaultValues = $formFilter->getValues();
     } else {
         $this->view->form = $formFilter = new Event_Form_Filter_Browse();
         $defaultValues = $formFilter->getValues();
         if (!$viewer || !$viewer->getIdentity()) {
             $formFilter->removeElement('view');
         }
         // Populate options
         foreach (Engine_Api::_()->getDbtable('categories', 'event')->select()->order('title ASC')->query()->fetchAll() as $row) {
             $formFilter->category_id->addMultiOption($row['category_id'], $row['title']);
         }
         if (count($formFilter->category_id->getMultiOptions()) <= 1) {
             $formFilter->removeElement('category_id');
         }
     }
     // Populate form data
     if ($formFilter->isValid($p)) {
         $this->view->formValues = $values = $formFilter->getValues();
     } else {
         $formFilter->populate($defaultValues);
         $this->view->formValues = $values = array();
     }
     // Prepare data
     $this->view->formValues = $values = $formFilter->getValues();
     if ($formFilter instanceof Event_Form_Filter_Browse) {
         if ($viewer->getIdentity() && @$values['view'] == 1) {
             $values['users'] = array();
             foreach ($viewer->membership()->getMembersInfo(true) as $memberinfo) {
                 $values['users'][] = $memberinfo->user_id;
             }
         }
         $values['search'] = 1;
         if ($filter == "past") {
             $values['past'] = 1;
         } else {
             $values['future'] = 1;
         }
         // check to see if request is for specific user's listings
         if ($user_id = $this->_getParam('user')) {
             $values['user_id'] = $user_id;
         }
     }
 }
예제 #2
0
 public function browseAction()
 {
     // Prepare
     $viewer = Engine_Api::_()->user()->getViewer();
     $this->view->canCreate = Engine_Api::_()->authorization()->isAllowed('event', null, 'create');
     $filter = $this->_getParam('filter', 'future');
     if ($filter != 'past' && $filter != 'future') {
         $filter = 'future';
     }
     $this->view->filter = $filter;
     // Create form
     $this->view->formFilter = $formFilter = new Event_Form_Filter_Browse();
     $defaultValues = $formFilter->getValues();
     if (!$viewer || !$viewer->getIdentity()) {
         $formFilter->removeElement('view');
     }
     // Populate options
     foreach (Engine_Api::_()->getDbtable('categories', 'event')->select()->order('title ASC')->query()->fetchAll() as $row) {
         $formFilter->category_id->addMultiOption($row['category_id'], $row['title']);
     }
     if (count($formFilter->category_id->getMultiOptions()) <= 1) {
         $formFilter->removeElement('category_id');
     }
     // Populate form data
     if ($formFilter->isValid($this->_getAllParams())) {
         $this->view->formValues = $values = $formFilter->getValues();
     } else {
         $formFilter->populate($defaultValues);
         $this->view->formValues = $values = array();
     }
     // Prepare data
     $this->view->formValues = $values = $formFilter->getValues();
     if ($viewer->getIdentity() && @$values['view'] == 1) {
         $values['users'] = array();
         foreach ($viewer->membership()->getMembersInfo(true) as $memberinfo) {
             $values['users'][] = $memberinfo->user_id;
         }
     }
     $values['search'] = 1;
     if ($filter == "past") {
         $values['past'] = 1;
     } else {
         $values['future'] = 1;
     }
     // check to see if request is for specific user's listings
     if ($user_id = $this->_getParam('user')) {
         $values['user_id'] = $user_id;
     }
     // Get paginator
     $this->view->paginator = $paginator = Engine_Api::_()->getItemTable('event')->getEventPaginator($values);
     $paginator->setCurrentPageNumber($this->_getParam('page'));
     // Render
     $this->_helper->content->setEnabled();
 }
예제 #3
0
 public function browseAction()
 {
     $filter = $this->_getParam('filter', 'future');
     if ($filter != 'past' && $filter != 'future') {
         $filter = 'future';
     }
     $this->view->filter = $filter;
     $navigation = $this->getNavigation();
     foreach ($navigation->getPages() as $page) {
         if ($page->label == "Upcoming Events" && $filter == "future" || $page->route == "event_past" && $filter == "past") {
             $page->active = true;
         }
     }
     // Create form
     $this->view->formFilter = $formFilter = new Event_Form_Filter_Browse();
     $defaultValues = $formFilter->getValues();
     $viewer = Engine_Api::_()->user()->getViewer();
     if (!$viewer || !$viewer->getIdentity()) {
         $formFilter->removeElement('view');
     }
     // Populate form options
     $categoryTable = Engine_Api::_()->getDbtable('categories', 'event');
     $select = $categoryTable->select()->order('title ASC');
     foreach ($categoryTable->fetchAll($select) as $category) {
         $formFilter->category_id->addMultiOption($category->category_id, $category->title);
     }
     // Populate form data
     if ($formFilter->isValid($this->_getAllParams())) {
         $this->view->formValues = $values = $formFilter->getValues();
     } else {
         $formFilter->populate($defaultValues);
         $this->view->formValues = $values = array();
     }
     // Prepare data
     $table = Engine_Api::_()->getItemTable('event');
     $select = $table->select()->where("search = 1");
     // Do friends only
     if ($viewer->getIdentity() && @$values['view'] == 'friends') {
         $user_list = array();
         foreach ($viewer->membership()->getMembersInfo(true) as $memberinfo) {
             $user_list[] = $memberinfo->user_id;
         }
         $select->where('user_id IN(\'' . join("', '", $user_list) . '\')');
     }
     // Do query stuff
     if (!empty($values['category_id'])) {
         $select->where('category_id = ?', $values['category_id']);
     }
     if (!empty($values['order'])) {
         $select->order($values['order']);
     } else {
         $select->order('starttime ASC');
     }
     if ($filter == "past") {
         $select->where("endtime < FROM_UNIXTIME(?)", time());
     } else {
         $select->where("endtime > FROM_UNIXTIME(?)", time());
     }
     // check to see if request is for specific user's listings
     $user_id = $this->_getParam('user');
     if ($user_id) {
         $params = array('user' => $user_id);
     }
     // Other stuff
     $this->view->page = $page = $this->_getParam('page', 1);
     $paginator = $this->view->paginator = Zend_Paginator::factory($select);
     $paginator->setItemCountPerPage(20);
     $paginator->setCurrentPageNumber($page);
     $this->view->canCreate = Engine_Api::_()->authorization()->isAllowed('event', null, 'create');
 }