Example #1
0
 public function networkAction()
 {
     $viewer = Engine_Api::_()->user()->getViewer();
     $this->view->available_networks = Network_Model_Network::getUserNetworks($viewer);
     $select = Engine_Api::_()->getDbtable('membership', 'network')->getMembershipsOfSelect($viewer)->order('engine4_network_networks.title ASC');
     $this->view->networks = Engine_Api::_()->getDbtable('networks', 'network')->fetchAll($select);
     // Get networks to suggest
     $network_suggestions = array();
     $table = Engine_Api::_()->getItemTable('network');
     $select = $table->select()->where('assignment = ?', 0)->order('title ASC');
     if (null !== ($text = $this->_getParam('text', $this->_getParam('text')))) {
         $select->where('`' . $table->info('name') . '`.`title` LIKE ?', '%' . $text . '%');
     }
     $data = array();
     foreach ($table->fetchAll($select) as $network) {
         if (!$network->membership()->isMember($viewer)) {
             $network_suggestions[] = $network;
         }
     }
     $this->view->network_suggestions = $network_suggestions;
     $this->view->form = $form = new User_Form_Settings_Network();
     if (!$this->getRequest()->isPost()) {
         return;
     }
     if (!$form->isValid($this->getRequest()->getPost())) {
         return;
     }
     // Process
     $viewer = Engine_Api::_()->user()->getViewer();
     if ($form->getValue('join_id')) {
         $network = Engine_Api::_()->getItem('network', $form->getValue('join_id'));
         if (null === $network) {
             $form->addError(Zend_Registry::get('Zend_Translate')->_('Network not found'));
         } else {
             if ($network->assignment != 0) {
                 $form->addError(Zend_Registry::get('Zend_Translate')->_('Network not found'));
             } else {
                 $network->membership()->addMember($viewer)->setUserApproved($viewer)->setResourceApproved($viewer);
                 if (!$network->hide) {
                     // Activity feed item
                     Engine_Api::_()->getDbtable('actions', 'activity')->addActivity($viewer, $network, 'network_join');
                 }
             }
         }
     } else {
         if ($form->getValue('leave_id')) {
             $network = Engine_Api::_()->getItem('network', $form->getValue('leave_id'));
             if (null === $network) {
                 $form->addError(Zend_Registry::get('Zend_Translate')->_('Network not found'));
             } else {
                 if ($network->assignment != 0) {
                     $form->addError(Zend_Registry::get('Zend_Translate')->_('Network not found'));
                 } else {
                     $network->membership()->removeMember($viewer);
                 }
             }
         }
     }
     $this->_helper->redirector->gotoRoute(array());
 }
Example #2
0
 public function networkAction()
 {
     $this->view->navigation = $navigation = $this->_helper->api()->getApi('menus', 'core')->getNavigation('user_settings');
     $viewer = $this->_helper->api()->user()->getViewer();
     $select = Engine_Api::_()->getDbtable('membership', 'network')->getMembershipsOfSelect($viewer)->where('hide = ?', 0);
     $this->view->networks = Engine_Api::_()->getDbtable('networks', 'network')->fetchAll($select);
     $this->view->form = $form = new User_Form_Settings_Network();
     if (!$this->getRequest()->isPost()) {
         return;
     }
     if (!$form->isValid($this->getRequest()->getPost())) {
         return;
     }
     // Process
     $viewer = Engine_Api::_()->user()->getViewer();
     if ($form->getValue('join_id')) {
         $network = Engine_Api::_()->getItem('network', $form->getValue('join_id'));
         if (null === $network) {
             $form->addError(Zend_Registry::get('Zend_Translate')->_('Network not found'));
         } else {
             if ($network->assignment != 0) {
                 $form->addError(Zend_Registry::get('Zend_Translate')->_('Network not found'));
             } else {
                 $network->membership()->addMember($viewer)->setUserApproved($viewer)->setResourceApproved($viewer);
                 // Activity feed item
                 Engine_Api::_()->getDbtable('actions', 'activity')->addActivity($viewer, $network, 'network_join');
             }
         }
     } else {
         if ($form->getValue('leave_id')) {
             $network = Engine_Api::_()->getItem('network', $form->getValue('leave_id'));
             if (null === $network) {
                 $form->addError(Zend_Registry::get('Zend_Translate')->_('Network not found'));
             } else {
                 if ($network->assignment != 0) {
                     $form->addError(Zend_Registry::get('Zend_Translate')->_('Network not found'));
                 } else {
                     $network->membership()->removeMember($viewer);
                 }
             }
         }
     }
     $this->_helper->redirector->gotoRoute(array());
 }