Ejemplo n.º 1
0
 function Set($arFields, $OLD_SID, $CHECK_RIGHTS = "Y")
 {
     $err_mess = CAdvType_all::err_mess() . "<br>Function: Set<br>Line: ";
     global $DB, $USER;
     $SID = false;
     $OLD_SID = trim($OLD_SID);
     if (CAdvType::CheckFields($arFields, $OLD_SID, $CHECK_RIGHTS)) {
         $arFields_i = array();
         $arrKeys = array_keys($arFields);
         if (in_array("SID", $arrKeys)) {
             $arFields_i["SID"] = "'" . $DB->ForSql($arFields["SID"], 255) . "'";
         }
         if (in_array("ACTIVE", $arrKeys) && ($arFields["ACTIVE"] == "Y" || $arFields["ACTIVE"] == "N")) {
             $arFields_i["ACTIVE"] = "'" . $arFields["ACTIVE"] . "'";
         }
         if (in_array("SORT", $arrKeys)) {
             $arFields_i["SORT"] = "'" . intval($arFields["SORT"]) . "'";
         }
         if (in_array("NAME", $arrKeys)) {
             $arFields_i["NAME"] = "'" . $DB->ForSql($arFields["NAME"], 255) . "'";
         }
         if (in_array("DESCRIPTION", $arrKeys)) {
             $arFields_i["DESCRIPTION"] = "'" . $DB->ForSql($arFields["DESCRIPTION"], 2000) . "'";
         }
         if (count($arFields_i) > 0) {
             if (strlen($OLD_SID) > 0) {
                 if (in_array("DATE_MODIFY", $arrKeys) && CheckDateTime($arFields["DATE_MODIFY"])) {
                     $arFields_i["DATE_MODIFY"] = $DB->CharToDateFunction($arFields["DATE_MODIFY"]);
                 } else {
                     $arFields_i["DATE_MODIFY"] = $DB->GetNowFunction();
                 }
                 if (in_array("MODIFIED_BY", $arrKeys)) {
                     $arFields_i["MODIFIED_BY"] = intval($arFields["MODIFIED_BY"]);
                 } else {
                     $arFields_i["MODIFIED_BY"] = $USER->GetID();
                 }
                 $str = "";
                 while (list($field, $value) = each($arFields_i)) {
                     if (strlen($value) <= 0) {
                         $str .= "{$field} = '', ";
                     } else {
                         $str .= "{$field} = {$value}, ";
                     }
                 }
                 $str = TrimEx($str, ",");
                 $strSql = "UPDATE b_adv_type SET " . $str . " WHERE SID='" . $DB->ForSql($OLD_SID, 255) . "'";
                 $DB->Query($strSql, false, $err_mess . __LINE__);
                 if (in_array("SID", $arrKeys)) {
                     $SID = $arFields["SID"];
                     // если SID изменился то
                     if ($arFields["SID"] != $OLD_SID) {
                         // обновим тип у баннеров
                         $arF = array("TYPE_SID" => "'" . $DB->ForSql($arFields["SID"], 255) . "'");
                         $DB->Update("b_adv_banner", $arF, "WHERE TYPE_SID='" . $DB->ForSql($OLD_SID, 255) . "'", $err_mess . __LINE__);
                         // обновим тип у баннеров
                         $arF = array("TYPE_SID" => "'" . $DB->ForSql($arFields["SID"], 255) . "'");
                         $DB->Update("b_adv_contract_2_type", $arF, "WHERE TYPE_SID='" . $DB->ForSql($OLD_SID, 255) . "'", $err_mess . __LINE__);
                     }
                 } else {
                     $SID = $OLD_SID;
                 }
             } elseif (strlen($arFields_i["SID"]) > 0) {
                 if (in_array("DATE_CREATE", $arrKeys) && CheckDateTime($arFields["DATE_CREATE"])) {
                     $arFields_i["DATE_CREATE"] = $DB->CharToDateFunction($arFields["DATE_CREATE"]);
                 } else {
                     $arFields_i["DATE_CREATE"] = $DB->GetNowFunction();
                 }
                 if (in_array("CREATED_BY", $arrKeys)) {
                     $arFields_i["CREATED_BY"] = intval($arFields["CREATED_BY"]);
                 } else {
                     $arFields_i["CREATED_BY"] = $USER->GetID();
                 }
                 if (in_array("DATE_MODIFY", $arrKeys) && CheckDateTime($arFields["DATE_MODIFY"])) {
                     $arFields_i["DATE_MODIFY"] = $DB->CharToDateFunction($arFields["DATE_MODIFY"]);
                 } else {
                     $arFields_i["DATE_MODIFY"] = $DB->GetNowFunction();
                 }
                 if (in_array("MODIFIED_BY", $arrKeys)) {
                     $arFields_i["MODIFIED_BY"] = intval($arFields["MODIFIED_BY"]);
                 } else {
                     $arFields_i["MODIFIED_BY"] = $USER->GetID();
                 }
                 $str1 = $str2 = "";
                 while (list($field, $value) = each($arFields_i)) {
                     $str1 .= $field . ", ";
                     if (strlen($value) <= 0) {
                         $str2 .= "'', ";
                     } else {
                         $str2 .= "{$value}, ";
                     }
                 }
                 $str1 = TrimEx($str1, ",");
                 $str2 = TrimEx($str2, ",");
                 $strSql = "INSERT INTO b_adv_type (" . $str1 . ") VALUES (" . $str2 . ")";
                 $DB->Query($strSql, false, $err_mess . __LINE__);
                 $SID = $arFields["SID"];
             }
         }
     } else {
         $SID = $arFields["SID"];
     }
     return $SID;
 }