Esempio n. 1
0
 public function init()
 {
     parent::init();
     $this->setTitle('Edit Package');
     $this->setDescription("");
     $this->submit->setLabel('Edit Package');
 }
Esempio n. 2
0
 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);
 }