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'); }
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"); }