%PDF- %PDF-
Direktori : /proc/self/root/home/bitrix/www/bitrix/modules/statistic/admin/ |
Current File : //proc/self/root/home/bitrix/www/bitrix/modules/statistic/admin/adv_edit.php |
<?php require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/statistic/prolog.php"); /** @var CMain $APPLICATION */ $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic"); if($STAT_RIGHT=="D") $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); $statDB = CDatabase::GetModuleConnection('statistic'); IncludeModuleLangFile(__FILE__); $err_mess = "File: ".__FILE__."<br>Line: "; define("HELP_FILE","adv_list.php"); $strError = ""; /*************************************************************************** Functions ***************************************************************************/ function CheckFields() { global $strError, $str_REFERER1, $str_REFERER2, $err_mess, $ID, $statDB; $str = ""; if (strlen(trim($str_REFERER1))<=0 && strlen(trim($str_REFERER2))<=0) $str .= GetMessage("STAT_FORGOT_REFERER")."<br>"; elseif (intval($ID)<=0) { $strSql = " SELECT ID FROM b_stat_adv WHERE REFERER1".((strlen($str_REFERER1)>0) ? "='".$statDB->ForSql($str_REFERER1,255)."'" : " is null")." and REFERER2".((strlen($str_REFERER2)>0) ? "='".$statDB->ForSql($str_REFERER2,255)."'" : " is null")." "; $a = $statDB->Query($strSql, false, $err_mess.__LINE__); if ($a->Fetch()) $str .= GetMessage("STAT_WRONG_REFERER")."<br>"; } $strError .= $str; if (strlen($str)>0) return false; else return true; } $aTabs = array( array("DIV" => "edit1", "TAB" => GetMessage("STAT_PROP"), "ICON" => "stat_adv_edit", "TITLE" => GetMessage("STAT_PROP_TITLE")), array("DIV" => "edit2", "TAB" => GetMessage("STAT_MORE"), "ICON" => "stat_adv_edit", "TITLE" => GetMessage("STAT_MORE_TITLE")), ); $tabControl = new CAdminTabControl("tabControl", $aTabs); /*************************************************************************** GET | POST Handlers ***************************************************************************/ $ID = intval($ID); $base_currency = GetStatisticBaseCurrency(); if (strlen($base_currency)>0) { if (CModule::IncludeModule("currency")) { $currency_module = "Y"; $arrRefID = array(); $arrRef = array(); $rsCur = CCurrency::GetList(($by="sort"), ($order="asc")); $strJavaCurArray = " var arrCur = new Array(); "; $i = 0; $strJavaCurArray .= " arrCur[0] = ' ';"; while ($arCur = $rsCur->Fetch()) { $str = $arCur["CURRENCY"]." (".$arCur["FULL_NAME"].")"; if ($base_currency==$arCur["CURRENCY"]) $str .= " [".GetMessage("STAT_BASE")."]"; $arrRef[] = $str; $arrRefID[] = $arCur["CURRENCY"]; $i++; $strJavaCurArray .= " arrCur[".$i."] = '".$arCur["CURRENCY"]."';"; } $strJavaCurArray .= "\n\n"; $arrCurrency = array("REFERENCE" => $arrRef, "REFERENCE_ID" => $arrRefID); } } if ((strlen($save)>0 || strlen($apply)>0) && $REQUEST_METHOD=="POST" && $STAT_RIGHT>="W" && check_bitrix_sessid()) { if($EVENTS_VIEW=="NOT_REF") $EVENTS_VIEW=""; $statDB->PrepareFields("b_stat_adv"); $str_REFERER1 = trim($str_REFERER1); $str_REFERER2 = trim($str_REFERER2); $arFields = array( "REFERER1" => (strlen($str_REFERER1)<=0)? "null": "'".$str_REFERER1."'", "REFERER2" => (strlen($str_REFERER1)<=0)? "null": "'".$str_REFERER2."'", "EVENTS_VIEW" => "'".$str_EVENTS_VIEW."'", "PRIORITY" => intval($str_PRIORITY), "DESCRIPTION" => "'".$str_DESCRIPTION."'", ); if (CheckFields()) { $rate_cost = 1; $rate_revenue = 1; if ($currency_module=="Y") { if ($CURRENCY_COST!=$base_currency && strlen($CURRENCY_COST)>0) { $rate_cost = CCurrencyRates::GetConvertFactor($CURRENCY_COST, $base_currency); } if ($CURRENCY_REVENUE!=$base_currency && strlen($CURRENCY_REVENUE)>0) { $rate_revenue = CCurrencyRates::GetConvertFactor($CURRENCY_REVENUE, $base_currency); } } $arFields["COST"] = round(doubleval($COST)*$rate_cost,2); $arFields["REVENUE"] = round(doubleval($REVENUE)*$rate_revenue,2); if($ID > 0) $statDB->Update("b_stat_adv",$arFields,"WHERE ID = ".$ID, $err_mess.__LINE__); else $ID = $statDB->Insert("b_stat_adv", $arFields, $err_mess.__LINE__); if (strlen($strError)<=0) { $statDB->Query("DELETE FROM b_stat_adv_searcher WHERE ADV_ID = ".$ID, false, $err_mess.__LINE__); if (is_array($arSEARCHERS)) { foreach ($arSEARCHERS as $searcher_id) { $arFields = array( "ADV_ID" => "'".intval($ID)."'", "SEARCHER_ID" => "'".intval($searcher_id)."'", ); $statDB->Insert("b_stat_adv_searcher",$arFields, $err_mess.__LINE__); } } $statDB->Query("DELETE FROM b_stat_adv_page WHERE ADV_ID = ".$ID, false, $err_mess.__LINE__); $arPAGES_TO = preg_split("/[\n\r]+/", $PAGES_TO); if (is_array($arPAGES_TO)) { $arPAGES_TO = array_unique($arPAGES_TO); TrimArr($arPAGES_TO); if (count($arPAGES_TO)>0) { foreach ($arPAGES_TO as $page_to) { $arFields = array( "ADV_ID" => $ID, "PAGE" => "'".$statDB->ForSql($page_to, 2000)."'", "C_TYPE" => "'TO'", ); $statDB->Insert("b_stat_adv_page",$arFields, $err_mess.__LINE__); } } } $arPAGES_FROM = preg_split("/[\n\r]+/", $PAGES_FROM); if (is_array($arPAGES_FROM)) { $arPAGES_FROM = array_unique($arPAGES_FROM); TrimArr($arPAGES_FROM); if (count($arPAGES_FROM)>0) { foreach ($arPAGES_FROM as $page_from) { $arFields = array( "ADV_ID" => $ID, "PAGE" => "'".$statDB->ForSql($page_from, 2000)."'", "C_TYPE" => "'FROM'", ); $statDB->Insert("b_stat_adv_page",$arFields, $err_mess.__LINE__); } } } if (strlen($strError)<=0) { if (strlen($save)>0) LocalRedirect("adv_list.php?lang=".LANG); else LocalRedirect($APPLICATION->GetCurPage()."?lang=".LANG."&ID=".$ID."&".$tabControl->ActiveTabParam()); } } } } ClearVars(); $arSEARCHERS = array(); $arPAGES_TO = array(); $arPAGES_FROM = array(); $adv = CAdv::GetByID($ID); if (!($adv->ExtractFields())) { $ID=0; $str_PRIORITY = "100"; } else { $strSql = "SELECT SEARCHER_ID FROM b_stat_adv_searcher WHERE ADV_ID = ".$ID; $z = $statDB->Query($strSql, false, $err_mess.__LINE__); while ($zr=$z->Fetch()) $arSEARCHERS[] = $zr["SEARCHER_ID"]; $strSql = "SELECT PAGE FROM b_stat_adv_page WHERE ADV_ID = ".$ID." and C_TYPE='TO'"; $z = $statDB->Query($strSql, false, $err_mess.__LINE__); while($zr = $z->Fetch()) $arPAGES_TO[] = htmlspecialcharsbx($zr["PAGE"]); $strSql = "SELECT PAGE FROM b_stat_adv_page WHERE ADV_ID = ".$ID." and C_TYPE='FROM'"; $z = $statDB->Query($strSql, false, $err_mess.__LINE__); while($zr = $z->Fetch()) $arPAGES_FROM[] = htmlspecialcharsbx($zr["PAGE"]); } if (strlen($strError) > 0) { $statDB->InitTableVarsForEdit("b_stat_adv", "", "str_"); $ar = preg_split("/[\n\r]+/", $PAGES_TO); if (is_array($ar)) { foreach ($ar as $page_to) $arPAGES_TO[] = htmlspecialcharsbx($page_to); } $ar = preg_split("/[\n\r]+/", $PAGES_FROM); if (is_array($ar)) { foreach ($ar as $page_to) $arPAGES_FROM[] = htmlspecialcharsbx($page_to); } } else { $CURRENCY_COST = $CURRENCY_REVENUE = $base_currency; } $sDocTitle = ($ID>0) ? GetMessage("STAT_EDIT_RECORD", array("#ID#" => $ID)) : GetMessage("STAT_NEW_RECORD"); $APPLICATION->SetTitle($sDocTitle); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); /*************************************************************************** HTML form ****************************************************************************/ $aMenu = array( array( "ICON" => "btn_list", "TEXT" => GetMessage("STAT_LIST"), "TITLE" => GetMessage("STAT_RECORDS_LIST"), "LINK" => "adv_list.php?lang=".LANGUAGE_ID ) ); if(intval($ID)>0) { $aMenu[] = array("SEPARATOR"=>"Y"); $aMenu[] = array( "ICON" => "btn_new", "TEXT" => GetMessage("STAT_ADD"), "TITLE" => GetMessage("STAT_NEW_ADV"), "LINK" => "adv_edit.php?lang=".LANGUAGE_ID ); $aMenu[] = array( "TEXT" => GetMessage("STAT_RESET"), "TITLE" => GetMessage("STAT_RESET_ADV"), "LINK" => "javascript:if(confirm('".GetMessageJS("STAT_RESET_ADV_CONFIRM")."'))window.location='adv_list.php?clear_id=".$ID."&lang=".LANGUAGE_ID."&".bitrix_sessid_get()."';", ); $aMenu[] = array( "ICON" => "btn_delete", "TEXT" => GetMessage("STAT_DELETE"), "TITLE" => GetMessage("STAT_DELETE_ADV"), "LINK" => "javascript:if(confirm('".GetMessageJS("STAT_DELETE_ADV_CONFIRM")."'))window.location='adv_list.php?ID=".$ID."&action=delete&lang=".LANGUAGE_ID."&".bitrix_sessid_get()."';", ); } $context = new CAdminContextMenu($aMenu); $context->Show(); if($strError) { $aMsg=array(); $arrErr = explode("<br>",$strError); while (list(,$err)=each($arrErr)) $aMsg[]['text']=$err; $e = new CAdminException($aMsg); $GLOBALS["APPLICATION"]->ThrowException($e); $message = new CAdminMessage(GetMessage("STAT_ERROR"), $e); echo $message->Show(); } ?> <a name="tb"></a> <?if (strlen($base_currency)<=0) : ?> <p><?=GetMessage("STAT_BASE_CURRENCY_NOT_INSTALLED").$base_currency?> [ <a href="/bitrix/admin/settings.php?lang=<?=LANGUAGE_ID?>&mid=statistic"><?=GetMessage("STAT_CHOOSE_CURRENCY")?></a> ]</p> <?endif;?> <form method="POST" action="<?=$APPLICATION->GetCurPage()?>?ID=<?=$ID?>&lang=<?=LANGUAGE_ID?>"> <?=bitrix_sessid_post()?> <input type="hidden" name="ID" value=<?=$ID?>> <input type="hidden" name="lang" value="<?=LANGUAGE_ID?>"> <? $tabControl->Begin(); ?> <? //******************** // 1st Tab //******************** $tabControl->BeginNextTab(); ?> <tr> <td width=40%><?=GetMessage("STAT_PRIORITY")?></td> <td width=60%><input type="text" name="PRIORITY" size="5" value="<?=$str_PRIORITY?>"> <?=GetMessage("STAT_PRIORITY_ALT")?></td> </tr> <tr class=heading> <td colspan="2"><?=GetMessage("STAT_IDENTIFIERS")?></td> </tr> <tr class="adm-detail-required-field"> <td>referer1:</td> <td><input type="text" name="REFERER1" size="40" maxlength="255" value="<?=$str_REFERER1?>"></td> </tr> <tr> <td>referer2:</td> <td><input type="text" name="REFERER2" size="40" maxlength="255" value="<?=$str_REFERER2?>"></td> </tr> <tr class=heading> <td colspan="2"><?echo GetMessage("STAT_ID_ADD");?><span class=required><sup>1</sup></span></td> </tr> <tr> <td valign=top><?echo GetMessage("STAT_PAGES_FROM")?></td> <td><textarea name="PAGES_FROM" cols="50" rows="8"><?echo implode("\r\n", $arPAGES_FROM)?></textarea></td> </tr> <tr valign="top"> <td valign="top"><?=GetMessage("STAT_SEARCHERS")?><br><IMG SRC="/bitrix/images/statistic/mouse.gif" WIDTH="44" HEIGHT="21" BORDER=0 ALT=""><br><?=GetMessage("STAT_SELECT_WHAT_YOU_NEED")?></td> <td><? $ref = $ref_id = array(); $strSql = "SELECT ID, NAME FROM b_stat_searcher WHERE ID>1 ORDER BY NAME"; $rs = $statDB->Query($strSql, false, $err_mess.__LINE__); while($ar = $rs->Fetch()) { $ref[] = $ar["NAME"]." [".$ar["ID"]."]"; $ref_id[] = $ar["ID"]; } echo SelectBoxMFromArray("arSEARCHERS[]",array("REFERENCE"=>$ref, "REFERENCE_ID"=>$ref_id), $arSEARCHERS,"",false,"10", "class=typeselect"); ?></td> </tr> <tr> <td valign=top><?echo GetMessage("STAT_PAGES_TO")?></td> <td><textarea name="PAGES_TO" cols="50" rows="8"><?echo implode("\r\n", $arPAGES_TO);?></textarea></td> </tr> <? //******************** // 2nd Tab //******************** $tabControl->BeginNextTab(); ?> <?if ($STAT_RIGHT>"M"):?> <tr class=heading> <td colspan="2"><?=GetMessage("STAT_FINANCES")?></td> </tr> <tr> <td width=40%><?=GetMessage("STAT_COST")?></td> <td width=60%><input type="text" name="COST" size="10" value="<?echo ($str_COST!=0) ? $str_COST : ""?>"><?if ($currency_module=="Y") :?> <?echo SelectBoxFromArray("CURRENCY_COST", $arrCurrency, $CURRENCY_COST);?><?endif;?></td> </tr> <tr> <td><?=GetMessage("STAT_REVENUE")?></td> <td><input type="text" name="REVENUE" size="10" value="<?echo ($str_REVENUE!=0) ? $str_REVENUE : ""?>"><?if ($currency_module=="Y") :?> <?echo SelectBoxFromArray("CURRENCY_REVENUE", $arrCurrency, $CURRENCY_REVENUE);?><?endif;?></td> </tr> <?endif;?> <tr class=heading> <td colspan="2"><?=GetMessage("STAT_ADDITIONAL")?></td> </tr> <tr> <td><?=GetMessage("STAT_EVENTS_VIEW")?></td> <td><? $arr = array("reference"=>array(GetMessage("STAT_SHOW_LINK"), GetMessage("STAT_SHOW_LIST"), GetMessage("STAT_GROUP_BY_EVENT1"), GetMessage("STAT_GROUP_BY_EVENT2")), "reference_id"=>array("link","list", "event1","event2")); echo SelectBoxFromArray("EVENTS_VIEW", $arr,$str_EVENTS_VIEW,GetMessage("STAT_DEFAULT")); ?></td> </tr> <tr> <td valign=top><?=GetMessage("STAT_DESCRIPTION")?></td> <td><textarea name="DESCRIPTION" rows="8" cols="50"><?echo $str_DESCRIPTION?></textarea></td> </tr> <? $tabControl->EndTab(); $tabControl->Buttons(array("disabled"=>($STAT_RIGHT<"W"), "back_url"=>"adv_list.php?lang=".LANGUAGE_ID)); $tabControl->End(); ?> </form> <?echo BeginNote();?> <span class="required"><sup>1</sup></span> - <?echo GetMessage("STAT_ID_ADD_NOTE")?> <?echo EndNote(); require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");