/* ############################################## # Bitrix: SiteManager # # Copyright (c) 2004 Bitrix # # http://www.bitrix.ru # # mailto:admin@bitrix.ru # ############################################## */ use Bitrix\Main\Loader; require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/advertising/prolog.php"); Loader::includeModule('advertising'); $isDemo = CAdvContract::IsDemo(); $isManager = CAdvContract::IsManager(); $isAdvertiser = CAdvContract::IsAdvertiser(); $isAdmin = CAdvContract::IsAdmin(); if(!$isAdmin && !$isDemo && !$isManager && !$isAdvertiser) $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); $DONT_USE_CONTRACT = COption::GetOptionString("advertising", "DONT_USE_CONTRACT", "N"); IncludeModuleLangFile(__FILE__); /*************************************************************************** Обработка GET | POST ****************************************************************************/ $sTableID = "tbl_adv_contract_list"; // инициализация сортировки $oSort = new CAdminSorting($sTableID, "s_sort", "asc"); // инициализация списка $lAdmin = new CAdminList($sTableID, $oSort); // массив доступов по всем контрактам для текущего пользователя $arrPERM = CAdvContract::GetUserPermissions(); // фильтр $FilterArr = Array( "find", "find_type", "find_id", "find_id_exact_match", "find_site", "find_date_modify_1", "find_date_modify_2", "find_name", "find_name_exact_match", "find_description", "find_description_exact_match", "find_lamp", "find_owner", "find_owner_exact_match", "find_banner_count_1", "find_banner_count_2", "find_show_count_1", "find_show_count_2", "find_click_count_1", "find_click_count_2", "find_visitor_count_1", "find_visitor_count_2", "find_ctr_1", "find_ctr_2", "find_admin_comments", "find_admin_comments_exact_match" ); $lAdmin->InitFilter($FilterArr); InitBVar($find_id_exact_match); InitBVar($find_name_exact_match); InitBVar($find_description_exact_match); InitBVar($find_owner_exact_match); InitBVar($find_admin_comments_exact_match); $arFilter = Array( "ID" => ($find!='' && $find_type == "id"? $find: $find_id), "ID_EXACT_MATCH" => $find_id_exact_match, "SITE" => $find_site, "DATE_MODIFY_1" => $find_date_modify_1, "DATE_MODIFY_2" => $find_date_modify_2, "NAME" => ($find!='' && $find_type == "name"? $find: $find_name), "NAME_EXACT_MATCH" => $find_name_exact_match, "DESCRIPTION" => ($find!='' && $find_type == "description"? $find: $find_description), "DESCRIPTION_EXACT_MATCH" => $find_description_exact_match, "LAMP" => $find_lamp, "OWNER" => $find_owner, "OWNER_EXACT_MATCH" => $find_owner_exact_match, "BANNER_COUNT_1" => $find_banner_count_1, "BANNER_COUNT_2" => $find_banner_count_2, "SHOW_COUNT_1" => $find_show_count_1, "SHOW_COUNT_2" => $find_show_count_2, "CLICK_COUNT_1" => $find_click_count_1, "CLICK_COUNT_2" => $find_click_count_2, "VISITOR_COUNT_1" => $find_visitor_count_1, "VISITOR_COUNT_2" => $find_visitor_count_2, "CTR_1" => $find_ctr_1, "CTR_2" => $find_ctr_2, "ADMIN_COMMENTS" => $find_admin_comments, "ADMIN_COMMENTS_EXACT_MATCH" => $find_admin_comments_exact_match ); if($lAdmin->EditAction() && $isAdmin) { foreach($FIELDS as $ID=>$arFields) { $DB->StartTransaction(); $ID = intval($ID); if(!$lAdmin->IsUpdated($ID)) continue; if(!CAdvContract::Set($arFields, $ID)) { $lAdmin->AddUpdateError(GetMessage("SAVE_ERROR").$ID.": ".$ob->LAST_ERROR, $ID); $DB->Rollback(); } $DB->Commit(); } } // обработка действий групповых и одиночных if(($arID = $lAdmin->GroupAction()) && $isAdmin) { if($_REQUEST['action_target']=='selected') { $arID = Array(); $rsData = CAdvContract::GetList('', '', $arFilter); while($arRes = $rsData->Fetch()) $arID[] = $arRes['ID']; } foreach($arID as $ID) { $ob = new CAdvContract; if(intval($ID)<=0) continue; $ID = intval($ID); switch($_REQUEST['action']) { case "delete": if(!CAdvContract::Delete($ID)) { $lAdmin->AddGroupError(GetMessage("DELETE_ERROR"), $ID); } break; case "activate": case "deactivate": $arFields = Array("ACTIVE"=>($_REQUEST['action']=="activate"?"Y":"N")); if(!$ob->Set($arFields, $ID)) $lAdmin->AddGroupError(GetMessage("MAIN_EDIT_ERROR").$ob->LAST_ERROR, $ID); break; } } } global $by, $order; $rsContracts = CAdvContract::GetList($by, $order, $arFilter); $rsData = new CAdminResult($rsContracts, $sTableID); $rsData->NavStart(); $lAdmin->NavText($rsData->GetNavPrint(GetMessage("AD_PAGES"))); $Headers = Array( array("id"=>"ID", "content"=>"ID", "sort"=>"s_id", "default"=>true, "align"=>"right"), array("id"=>"LAMP", "content"=>GetMessage("AD_LAMP"), "sort"=>"s_lamp", "default"=>true, "align" => "center", "default"=>true), array("id"=>"DATE_MODIFY", "content"=>GetMessage("AD_DATE_MODIFY"), "sort"=>"s_date_modify", "default"=>true), array("id"=>"SITE", "content"=>GetMessage("AD_SITE"), "sort"=>"", "default"=>true) ); if($isAdmin || $isDemo) $Headers[] = array("id"=>"SORT", "content"=>GetMessage("AD_SORT"), "sort"=>"s_sort", "default"=>true, "align"=>"right"); $Headers[] = array("id"=>"ACTIVE", "content"=>GetMessage("AD_ACTIVE"), "sort"=>"s_active", "default"=>true); if($isAdmin || $isDemo) $Headers[] = array("id"=>"WEIGHT", "content"=>GetMessage("AD_WEIGHT"), "sort"=>"s_weight", "default"=>true, "align"=>"right"); $Headers[] = array("id"=>"NAME", "content"=>GetMessage("AD_NAME"), "sort"=>"s_name", "default"=>true); $Headers[] = array("id"=>"DESCRIPTION", "content"=>GetMessage("AD_DESCRIPTION"), "sort"=>"s_description"); $Headers[] = array("id"=>"BANNER_COUNT", "content"=>GetMessage("AD_BANNER_COUNT"), "sort"=>"s_banner_count", "default"=>true, "align"=>"right"); $Headers[] = array("id"=>"VISITOR_COUNT", "content"=>GetMessage("AD_VISITOR_COUNT"), "sort"=>"s_visitor_count", "align"=>"right"); $Headers[] = array("id"=>"MAX_VISITOR_COUNT", "content"=>GetMessage("AD_VISITOR_COUNT_MAX"), "sort"=>"s_max_visitor_count", "align"=>"right"); $Headers[] = array("id"=>"SHOW_COUNT", "content"=>GetMessage("AD_SHOW_COUNT"), "sort"=>"s_show_count", "align"=>"right"); $Headers[] = array("id"=>"MAX_SHOW_COUNT", "content"=>GetMessage("AD_SHOW_COUNT_MAX"), "sort"=>"s_max_show_count", "align"=>"right"); $Headers[] = array("id"=>"CLICK_COUNT", "content"=>GetMessage("AD_CLICK_COUNT"), "sort"=>"s_click_count", "align"=>"right"); $Headers[] = array("id"=>"MAX_CLICK_COUNT", "content"=>GetMessage("AD_CLICK_COUNT_MAX"), "sort"=>"s_max_click_count", "align"=>"right"); $Headers[] = array("id"=>"CTR", "content"=>"CTR (%)", "sort"=>"s_ctr", "align"=>"right"); $lAdmin->AddHeaders($Headers); $arrSites = array(); $rs = CSite::GetList(); while ($ar = $rs->Fetch()) $arrSites[$ar["ID"]] = $ar; while($arRes = $rsData->NavNext(true, "f_")): $lamp_alt = GetMessage("AD_".mb_strtoupper($f_LAMP)."_ALT"); $lamp = '
'; $arrUserPerm = is_array($arrPERM[$f_ID]) ? $arrPERM[$f_ID] : array(); $row =& $lAdmin->AddRow($f_ID, $arRes, "adv_contract_edit.php?ID=".$f_ID."&lang=".LANGUAGE_ID, GetMessage("ADV_EDIT_TITLE")); $row->AddViewField("ID", "".$f_ID.""); $row->AddViewField("LAMP", $lamp); $arr = explode(" ",$f_DATE_MODIFY); $row->AddViewField("DATE_MODIFY", $arr[0]."