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]."
".$arr[1]); $sites = ""; $arrSITE = CAdvContract::GetSiteArray($f_ID); reset($arrSITE); if (is_array($arrSITE)): foreach($arrSITE as $sid): if ($isAdmin) $sites .= ''.htmlspecialcharsbx($arrSites[$sid]["NAME"]).'
'; else $sites .= htmlspecialcharsbx($arrSites[$sid]["NAME"])."
"; endforeach; endif; $row->AddViewField("SITE", $sites); if ((is_array($arrUserPerm) && in_array("EDIT", $arrUserPerm)) || $isDemo) { $row->AddInputField("SORT"); $row->AddCheckField("ACTIVE"); $row->AddInputField("WEIGHT"); } else $row->AddCheckField("ACTIVE", false); if ((is_array($arrUserPerm) && in_array("EDIT", $arrUserPerm)) || $isDemo) $row->AddInputField("NAME"); else $row->AddViewField("NAME", $f_NAME); $row->AddViewField("DESCRIPTION", TruncateText($f_DESCRIPTION, 100)); $row->AddViewField("BANNER_COUNT", ''.$f_BANNER_COUNT.''); $row->AddViewField("VISITOR_COUNT", $f_VISITOR_COUNT); if ((is_array($arrUserPerm) && in_array("EDIT", $arrUserPerm)) || $isDemo) $row->AddInputField("MAX_VISITOR_COUNT"); else $row->AddViewField("MAX_VISITOR_COUNT", $f_MAX_VISITOR_COUNT); $row->AddViewField("SHOW_COUNT", $f_SHOW_COUNT); if ((is_array($arrUserPerm) && in_array("EDIT", $arrUserPerm)) || $isDemo) $row->AddInputField("MAX_SHOW_COUNT"); else $row->AddViewField("MAX_SHOW_COUNT", $f_MAX_SHOW_COUNT); $row->AddViewField("CLICK_COUNT", $f_CLICK_COUNT); if ((is_array($arrUserPerm) && in_array("EDIT", $arrUserPerm)) || $isDemo) $row->AddInputField("MAX_CLICK_COUNT"); else $row->AddViewField("MAX_CLICK_COUNT", $f_MAX_CLICK_COUNT); $row->AddViewField("CTR", $f_CTR); $arActions = Array(); if ((is_array($arrUserPerm) && in_array("EDIT", $arrUserPerm)) || $isDemo) { $arActions[] = array("ICON"=>"edit", "TEXT"=>GetMessage("AD_EDIT"), "ACTION"=>$lAdmin->ActionRedirect("adv_contract_edit.php?ID=".$f_ID)); } $arActions[] = array("ICON"=>"view", "TEXT"=>GetMessage("AD_VIEW"), "ACTION"=>$lAdmin->ActionRedirect("adv_contract_edit.php?ID=".$f_ID."&action=view"), "TITLE"=>GetMessage("AD_VIEW_TITILE")); $arActions[] = array("ICON"=>"adv_graph", "TEXT"=>GetMessage("AD_STATISTICS"), "ACTION"=>$lAdmin->ActionRedirect("adv_contract_graph.php?find_contract_id[]=".$f_ID."&find_what_show[]=ctr&set_filter=Y&lang=".LANGUAGE_ID), "TITLE" => GetMessage("AD_CONTRACT_STATISTICS_VIEW")); if ($f_ID>1 && ($isAdmin || $isDemo)) { $arActions[] = array("SEPARATOR"=>true); $arActions[] = array("ICON"=>"delete", "TEXT"=>GetMessage("AD_DELETE"), "ACTION"=>"if(confirm('".GetMessage('AD_DELETE_CONTRACT_CONFIRM')."')) ".$lAdmin->ActionDoGroup($f_ID, "delete")); } $row->AddActions($arActions); endwhile; // "подвал" списка $lAdmin->AddFooter( array( array("title"=>GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value"=>$rsData->SelectedRowsCount()), array("counter"=>true, "title"=>GetMessage("MAIN_ADMIN_LIST_CHECKED"), "value"=>"0"), ) ); // показ формы с кнопками добавления, ... if((is_array($arrUserPerm) && in_array("EDIT", $arrUserPerm)) || $isDemo) $lAdmin->AddGroupActionTable(Array( "delete"=>GetMessage("MAIN_ADMIN_LIST_DELETE"), "activate"=>GetMessage("MAIN_ADMIN_LIST_ACTIVATE"), "deactivate"=>GetMessage("MAIN_ADMIN_LIST_DEACTIVATE") )); if($isAdmin || $isDemo) { $aContext = array( array( "TEXT" => GetMessage("AD_ADD"), "LINK" => "adv_contract_edit.php?lang=".LANGUAGE_ID, "TITLE" => GetMessage("AD_ADD_TITLE"), "ICON" => "btn_new" ), ); $lAdmin->AddAdminContextMenu($aContext); } // проверка на вывод только списка (в случае списка, скрипт дальше выполняться не будет) $lAdmin->CheckListMode(); $APPLICATION->SetTitle(GetMessage("AD_PAGE_TITLE")); /*************************************************************************** HTML форма ****************************************************************************/ require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); if ($DONT_USE_CONTRACT == "Y") CAdminMessage::ShowNote(GetMessage("AD_CONTRACT_DISABLE")); ?>