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()); }
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()); }