Esempio n. 1
0
 public function execute()
 {
     $tp = SJB_System::getTemplateProcessor();
     $bannersObj = new SJB_Banners();
     $errors = array();
     $groupSID = SJB_Request::getVar('groupSID', false);
     $form_submitted = SJB_Request::getVar('submit');
     if (isset($_REQUEST['action'])) {
         $action_name = $_REQUEST['action'];
         $params = $_REQUEST;
         switch ($action_name) {
             case 'edit':
                 if ($params['groupID'] == '') {
                     $errors[] = 'GROUP_ID_MISMATCHED';
                 }
                 if ($groupSID === false) {
                     $errors[] = 'BANNER_GROUP_SID_NOT_DEFINED';
                 }
                 if ($errors) {
                     break;
                 }
                 $result = $bannersObj->updateBannerGroup($params['groupSID'], $params['groupID'], $params['number_banners_display_at_once']);
                 if ($result === false) {
                     $errors[] = 'ERROR_UPDATE_BANNER_GROUP';
                     break;
                 }
                 if ($form_submitted == 'save_banner') {
                     $site_url = SJB_System::getSystemsettings('SITE_URL') . '/manage-banner-groups/';
                     SJB_HelperFunctions::redirect($site_url);
                 }
                 break;
             case 'delete_banner':
                 if (!isset($params['bannerId'])) {
                     $banners_sids = SJB_Request::getVar('banners', false);
                     if (count($banners_sids) > 0) {
                         $keys = array_keys($banners_sids);
                         $groupSID = $bannersObj->getBannerGroupSIDByBannerSID($keys[0]);
                         foreach ($banners_sids as $b_sid => $keys) {
                             $deleteBanner = $bannersObj->deleteBanner($b_sid);
                             if ($deleteBanner === false) {
                                 $errors[] = $bannersObj->bannersError;
                             }
                         }
                     }
                 } else {
                     $groupSID = $bannersObj->getBannerGroupSIDByBannerSID($params['bannerId']);
                     $deleteBanner = $bannersObj->deleteBanner($params['bannerId']);
                     if ($deleteBanner === false) {
                         $errors[] = $bannersObj->bannersError;
                         break;
                     }
                 }
                 $site_url = SJB_System::getSystemsettings('SITE_URL') . '/edit-banner-group/?groupSID=' . $groupSID;
                 SJB_HelperFunctions::redirect($site_url);
                 break;
             case 'activate':
                 $banners_sids = SJB_Request::getVar('banners', false);
                 if ($banners_sids) {
                     $keys = array_keys($banners_sids);
                     $groupSID = $bannersObj->getBannerGroupSIDByBannerSID($keys[0]);
                     foreach ($banners_sids as $b_sid => $keys) {
                         $deleteBanner = $bannersObj->updateActiveStatus($b_sid, true);
                         if ($deleteBanner === false) {
                             $errors[] = 'Can\'t activate banner. ID: ' . $b_sid;
                         }
                     }
                 }
                 break;
             case 'deactivate':
                 $banners_sids = SJB_Request::getVar('banners', false);
                 if ($banners_sids) {
                     $keys = array_keys($banners_sids);
                     $groupSID = $bannersObj->getBannerGroupSIDByBannerSID($keys[0]);
                     foreach ($banners_sids as $b_sid => $keys) {
                         $deleteBanner = $bannersObj->updateActiveStatus($b_sid, false);
                         if ($deleteBanner === false) {
                             $errors[] = 'Can\'t deactivate banner. ID: ' . $b_sid;
                         }
                     }
                 }
                 break;
             case 'approve':
                 $banners_sids = SJB_Request::getVar('banners', false);
                 if ($banners_sids) {
                     $keys = array_keys($banners_sids);
                     $groupSID = $bannersObj->getBannerGroupSIDByBannerSID($keys[0]);
                     foreach ($banners_sids as $b_sid => $keys) {
                         $bannerInfo = $bannersObj->getBannerProperties($b_sid);
                         $contractSID = !empty($bannerInfo['contract_sid']) ? $bannerInfo['contract_sid'] : false;
                         $approveBanner = $bannersObj->updateStatus($b_sid, 'approved');
                         if ($approveBanner === false) {
                             $errors[] = 'Can\'t approved banner. ID: ' . $b_sid;
                         } else {
                             $bannersObj->updateActiveStatus($b_sid, true);
                             if ($contractSID) {
                                 SJB_ContractManager::updateExpirationPeriod($contractSID);
                             }
                         }
                     }
                 }
                 break;
             case 'reject':
                 $banners_sids = SJB_Request::getVar('banners', false);
                 if ($banners_sids) {
                     $keys = array_keys($banners_sids);
                     $groupSID = $bannersObj->getBannerGroupSIDByBannerSID($keys[0]);
                     $reject = SJB_Request::getVar('rejection_reason', '');
                     foreach ($banners_sids as $b_sid => $keys) {
                         $approveBanner = $bannersObj->updateStatus($b_sid, 'rejected');
                         if ($approveBanner === false) {
                             $errors[] = 'Can\'t rejected banner. ID: ' . $b_sid;
                         } else {
                             $bannersObj->updateActiveStatus($b_sid, false);
                             if ($bannersObj->getBannerUserSID($b_sid)) {
                                 $bannerInfo = $bannersObj->getBannerProperties($b_sid);
                                 SJB_Notifications::sendBannerRejectedLetter($bannerInfo, $bannersObj->getBannerUserSID($b_sid), $reject);
                             }
                         }
                     }
                 }
                 break;
         }
     }
     $bannerGroup = $bannersObj->getBannerGroupBySID($groupSID);
     $banners = $bannersObj->getBannersByGroupSID($groupSID);
     $tp->assign('form_submitted', $form_submitted);
     $tp->assign('bannerGroup', $bannerGroup);
     $tp->assign('errors', $errors);
     $tp->display('edit_banner_group.tpl');
     $tp->assign('banners', $banners);
     $tp->assign('bannersPath', SJB_Banners::getSiteUrl());
     $tp->display('manage_banners.tpl');
 }