Esempio n. 1
0
 public function execute()
 {
     $bannersObj = new SJB_Banners();
     $params = $_REQUEST;
     $bannerId = SJB_Request::getVar('bannerId', 0, null, 'int');
     $banner = $bannersObj->getBannerProperties($bannerId);
     // get link of banner
     $link = $banner['link'];
     // increment CLICK counter
     $bannersObj->incrementClickCounter($bannerId);
     header("Location: {$link}");
     exit;
 }
Esempio n. 2
0
 public function execute()
 {
     $groupID = SJB_Request::getVar("group", false);
     $tp = SJB_System::getTemplateProcessor();
     $bannersObj = new SJB_Banners();
     $bannersIDs = $bannersObj->getActiveBannerIdByGroupID($groupID);
     if ($bannersIDs !== false && $groupID !== false) {
         $banners = array();
         $ids = array();
         foreach ($bannersIDs as $key => $bannerId) {
             $bannerId = $bannerId['id'];
             $banner = $bannersObj->getBannerProperties($bannerId);
             // must get all banner params, assign it to template, and - show it!
             $banner['image_path'] = preg_replace("|\\.\\./|u", "/", $banner['image_path']);
             $banners[$key] = $banner;
             $ids[] = $bannerId;
         }
         $tp->assign('current_banners', $banners);
         $tp->display('banners_template.tpl');
         $bannersObj->incrementShowCounter($ids);
     }
 }
Esempio n. 3
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');
 }
Esempio n. 4
0
 public function execute()
 {
     $bannersObj = new SJB_Banners();
     $params = $_REQUEST;
     $bannerId = $params['bannerId'];
     if (SJB_Request::isAjax()) {
         $response = array('success' => $bannersObj->deleteBannerImage($bannerId), 'error' => SJB_I18N::getInstance()->gettext('Backend', $bannersObj->bannersError));
         die(json_encode($response));
     }
     $tp = SJB_System::getTemplateProcessor();
     $errors = array();
     $banner = array_merge($bannersObj->getBannerProperties($bannerId), $params);
     $form_submitted = SJB_Request::getVar('submit');
     $filesDir = SJB_System::getSystemSettings('FILES_DIR');
     if (isset($_REQUEST['action'])) {
         $action_name = $_REQUEST['action'];
         switch ($action_name) {
             case 'edit':
                 // ERRORS
                 if ($params['title'] == '') {
                     $errors[] = 'Banner Title is empty.';
                 }
                 if ($params['link'] == '' && $params['bannerType'] != 'code') {
                     $errors[] = 'Banner link mismatched!';
                 }
                 if ($params['bannerType'] == 'code' && $params['code'] == '') {
                     $errors[] = 'Banner code is empty.';
                 }
                 if ($params['bannerType'] == 'file' && $_FILES['image']['name'] == '' && empty($params['imagePath'])) {
                     $errors[] = 'No image attached!';
                 }
                 if ($_FILES['image']['name'] && $_FILES['image']['error']) {
                     $errors[SJB_UploadFileManager::getErrorId($_FILES['image']['error'])] = 1;
                 }
                 if ($errors) {
                     break;
                 }
                 // if image changed - save it
                 if ($_FILES['image']['name'] != '' && $_FILES['image']['tmp_name'] != '') {
                     $hashName = md5(time() * $_FILES['image']['size'] . "_" . $_FILES['image']['name']);
                     $ext = preg_match("|\\.(\\w{3})\\b|", $_FILES['image']['name'], $arr);
                     $bannerFilePath = $filesDir . "banners/" . $hashName . "." . $arr[1];
                     // move file from temporary folder, and fill banner info to DB
                     $copy = copy($_FILES['image']['tmp_name'], $bannerFilePath);
                     if (!$copy) {
                         $errors = 'Cannot copy file from TMP dir to Banners Dir';
                         break;
                     }
                     if ($_FILES['image']['type'] != 'application/x-shockwave-flash') {
                         // array of bannerInfo
                         // [0] - width
                         // [1] - height
                         // [2] - ??
                         // [3] - width & height in next view: width="104" height="150"
                         // [bits] - bit size of image
                         // [channels]
                         // [mime] - type, (image/jpeg, image/gif, image/png )
                         $bannerInfo = getimagesize($bannerFilePath);
                         if ($params['width'] != '' && $params['height'] != '') {
                             $sx = $params['width'];
                             $sy = $params['height'];
                         } else {
                             $sx = $bannerInfo[0];
                             $sy = $bannerInfo[1];
                         }
                         $type = $bannerInfo['mime'];
                     } else {
                         if ($params['width'] == '' || $params['height'] == '') {
                             $errors[] = 'SIZE_PARAMETER_MISMATCHED';
                             break;
                         }
                         $sx = $params['width'];
                         $sy = $params['height'];
                         $type = $_FILES['image']['type'];
                     }
                     $bannerFilePath = "/" . str_replace("../", "/", str_replace(SJB_BASE_DIR, '', $bannerFilePath));
                     // now delete old banner image
                     $bannersObj->deleteBannerImage($bannerId);
                 } else {
                     // if image not changed - leave it as is
                     $bannerOldInfo = $bannersObj->getBannerProperties($params['bannerId']);
                     $sx = $bannerOldInfo['width'];
                     $sy = $bannerOldInfo['height'];
                     if ($params['width'] != '' && $params['height'] != '') {
                         if ($params['width'] != $sx || $params['height'] != $sy) {
                             $sx = $params['width'];
                             $sy = $params['height'];
                         }
                     }
                     $type = $bannerOldInfo['type'];
                     $bannerFilePath = $bannerOldInfo['image_path'];
                 }
                 $title = $params['title'];
                 $link = $params['link'];
                 $active = $params['active'];
                 $group = $params['groupSID'];
                 // check 'link' for correct. If it hasn't 'http://' or 'https://' - add them
                 $expr = preg_match("/^(https?:\\/\\/)/", $link);
                 if ($expr != true && $params['bannerType'] != 'code') {
                     $link = "http://" . $link;
                 }
                 if ($params['bannerType'] == 'code') {
                     $bannersObj->deleteBannerImage($bannerId);
                 }
                 $result = $bannersObj->updateBanner($params['bannerId'], $title, $link, $bannerFilePath, $sx, $sy, $type, $active, $group, $params);
                 if ($form_submitted == 'save_banner') {
                     $site_url = SJB_System::getSystemsettings('SITE_URL') . "/edit-banner-group/?groupSID={$group}";
                 } else {
                     $site_url = SJB_System::getSystemsettings('SITE_URL') . "/edit-banner/?bannerId=" . $bannerId;
                 }
                 SJB_HelperFunctions::redirect($site_url);
                 break;
         }
     }
     $banner_fields = $bannersObj->getBannersMeta();
     $tp->assign("banner_fields", $banner_fields);
     $tp->assign("banner", $banner);
     $tp->assign('errors', $errors);
     $tp->assign('bannersPath', SJB_Banners::getSiteUrl());
     $tp->assign("uploadMaxFilesize", SJB_UploadFileManager::getIniUploadMaxFilesize());
     $tp->display("edit_banner.tpl");
 }