예제 #1
0
 public function indexAction()
 {
     // Get paginator
     // Don't render this if not authorized
     if (!Engine_Api::_()->core()->hasSubject()) {
         return $this->setNoRender();
     }
     $this->view->group = $group = Engine_Api::_()->core()->getSubject();
     $viewer = Engine_Api::_()->user()->getViewer();
     $this->view->user_id = $user_id = $viewer->getIdentity();
     if ($group->is_subgroup && !$group->isParentGroupOwner($viewer)) {
         $parent_group = $group->getParentGroup();
         if (!$parent_group->authorization()->isAllowed($viewer, "view")) {
             return $this->setNoRender();
         } else {
             if (!$group->authorization()->isAllowed($viewer, "view")) {
                 return $this->setNoRender();
             }
         }
     } else {
         if (!$group->authorization()->isAllowed($viewer, 'view')) {
             return $this->setNoRender();
         }
     }
     //get marked announcements of current user
     $tableMark = Engine_Api::_()->getDbtable('marks', 'advgroup');
     $ids = array();
     $select = $tableMark->select()->where('user_id  = ?', $user_id);
     foreach ($tableMark->fetchAll($select) as $row) {
         $ids[] = $row->announcement_id;
     }
     $table = Engine_Api::_()->getDbtable('announcements', 'advgroup');
     $select = $table->select()->where('group_id = ?', $group->group_id)->order('modified_date DESC');
     if (!empty($ids)) {
         $select->where('announcement_id NOT IN (?)', $ids);
     }
     $announcements = $table->fetchAll($select);
     // Hide if nothing to show
     if (!$announcements) {
     }
     $this->view->announcements = $announcements;
     if (count($announcements) <= 0) {
     }
     $menu = new Advgroup_Plugin_Menus();
     $viewer = Engine_Api::_()->user()->getViewer();
     $subject = Engine_Api::_()->core()->getSubject();
     $canManage = $subject->authorization()->isAllowed(null, 'announcement');
     $allow_manage = "";
     $levelManage = Engine_Api::_()->authorization()->getAdapter('levels')->getAllowed('group', $viewer, 'announcement');
     if ($canManage && $levelManage) {
         $allow_manage = true;
     } else {
         $allow_manage = false;
     }
     $this->view->allow_manage = $allow_manage;
     $aManageAnnouncementButton = $menu->onMenuInitialize_AdvgroupManageAnnouncement();
     $this->view->aManageAnnouncementButton = $aManageAnnouncementButton;
 }