public function init() { parent::init(); $this->setTitle('Edit Package'); $this->setDescription(""); $this->submit->setLabel('Edit Package'); }
public function createAction() { $this->view->form = $form = new Ynsocialads_Form_Admin_Packages_Create(); $arr_modules = Engine_Api::_()->getItemTable('ynsocialads_module')->getModules(); $arr = array(); foreach ($arr_modules as $item) { $arr[$item->module_name] = $item->module_title; } $form->modules->setMultiOptions($arr); $AdBlockTable = Engine_Api::_()->getItemTable('ynsocialads_adblock'); $blocks = $AdBlockTable->fetchAll($AdBlockTable->select()->where('enable = 1')->where('deleted = 0')); $arr_block = array(); foreach ($blocks as $item) { $arr_block[$item->adblock_id] = $item->title; } $form->blocks->setMultiOptions($arr_block); // Check stuff if (!$this->getRequest()->isPost()) { return; } if (!$form->isValid($this->getRequest()->getPost())) { return; } $db = Engine_Api::_()->getItemTable('ynsocialads_package')->getAdapter(); $db->beginTransaction(); $viewer = Engine_Api::_()->user()->getViewer(); try { $package = Engine_Api::_()->getItemTable('ynsocialads_package')->createRow(); $values = $form->getValues(); $package->title = $values['title']; $package->price = $values['price']; $package->currency = Engine_Api::_()->getApi('settings', 'core')->getSetting('payment.currency', 'USD'); $package->benefit_amount = $values['benefit_amount']; $package->benefit_type = $values['benefit_type']; $package->description = $values['description']; $package->modules = $values['modules']; $package->allowed_ad_types = $values['allowed_ad_types']; $package->show = $values['show']; $package->user_id = $viewer->getIdentity(); $package->save(); foreach ($values['blocks'] as $block_id) { $packageblock = Engine_Api::_()->getItemTable('ynsocialads_packageblock')->createRow(); $packageblock->package_id = $package->getIdentity(); $packageblock->block_id = $block_id; $packageblock->save(); } $db->commit(); $levels = Engine_Api::_()->getDbtable('levels', 'authorization')->fetchAll(); $auth = Engine_Api::_()->authorization()->context; $auth->setAllowed($package, 'everyone', 'view', false); foreach ($levels as $level) { $auth->setAllowed($package, $level, 'view', false); } // Add permissions view package if (count($values['levels']) == 0 || count($values['levels']) == count($form->getElement('levels')->options)) { $auth->setAllowed($package, 'everyone', 'view', true); } else { foreach ($values['levels'] as $levelIdentity) { $level = Engine_Api::_()->getItem('authorization_level', $levelIdentity); $auth->setAllowed($package, $level, 'view', true); } } } catch (Exception $e) { $db->rollBack(); throw $e; } $this->_helper->redirector->gotoRoute(array('module' => 'ynsocialads', 'controller' => 'packages', 'action' => 'index'), 'admin_default', true); }