52 $maxStrLen = (array_key_exists(
"MAX_STR_LEN", $op) ? $op[
"MAX_STR_LEN"] : 0);
53 $list = (array_key_exists(
"LIST", $op) ? $op[
"LIST"] :
null);
54 $defVal = (array_key_exists(
"DEF_VAL", $op) ? $op[
"DEF_VAL"] :
null);
59 $res = (intval($value) == floatval($value)) ? intval($value) : floatval($value);
62 $res = ($maxStrLen == 0? $value : mb_substr($value, 0, $maxStrLen)) ;
64 case self::VT_Y_N_NULL:
65 $res = ($value ==
"Y") ?
"Y" : ($value ===
null ? null :
"N");
68 $res = ($value ==
"Y") ?
"Y" :
"N";
74 case self::VT_DATE_TIME:
79 if($list !=
null)
$res = (in_array(
$res, $list) ?
$res : $defVal);
88 if($value ===
null)
return "null";
89 if($value === 0)
return "0";
92 case self::VT_NUMBER:
return (is_float($value)) ? floatval($value) : intval($value);
95 case self::VT_Y_N_NULL:
96 case self::VT_STRING:
return "'" .
$DB->ForSql($value) .
"'";
98 case self::VT_DATE: $sf =
"SHORT";
99 case self::VT_DATE_TIME:
return (is_int($value) ?
$DB->CharToDateFunction(
GetTime($value, $sf)) : $value);
107 case self::VT_DATE:
return GetTime($value,
"SHORT");
108 case self::VT_DATE_TIME:
return GetTime($value,
"FULL");
109 case self::VT_STRING:
break;
110 default:
return $value;
113 $WHITE_LIST = (array_key_exists(
"WHITE_LIST", $op) ? $op[
"WHITE_LIST"] :
array());
114 $DEF_VAL = (array_key_exists(
"DEF_VAL", $op) ? $op[
"DEF_VAL"] :
null);
117 case self::JS_HREF:
return urlencode(urlencode($value));
118 case self::JS_HREF_ALERT:
return urlencode(CUtil::addslashes($value));
119 case self::JS_IN_QUOTES:
return CUtil::JSEscape($value);
123 case self::ID:
return preg_replace(
"/[^a-zA-Z0-9_]/",
"", $value);
124 case self::HREF_LOCATION:
126 foreach($WHITE_LIST as
$key => $value)
if(mb_substr($value, 0, mb_strlen($value)) == $value)
$res = $value;
127 if(
$res ==
null)
$res =
"/" . $value;
135 foreach($this->_sortFields as
$k =>
$name)
147 $this->_arFieldsTypes =
$f;
148 $this->_classType = $arOrTable;
154 if($this->_classType == self::C_Array || !array_key_exists($this->_currentRow, $this->_arFields)) $this->
First();
155 if($row !=
null && array_key_exists($row, $this->_arFields))
return $row;
161 $this->_currentRow = 0;
166 $this->_currentRow = (
count($this->_arFields) - 1);
171 $this->_resetNextF =
true;
176 if($this->_resetNextF)
178 $this->_currentRow = -1;
179 $this->_resetNextF =
false;
181 if($this->_currentRow >= (
count($this->_arFields) - 1))
185 $this->_currentRow++;
191 if($this->_currentRow <= 0)
return false;
192 $this->_currentRow--;
199 if((
count($this->table) - 1) < $r)
return false;
200 $this->_currentRow = $r;
204 public function CleanVar($row =
null, $removeExistingRows =
false)
208 $this->_arFields[$row] =
array();
209 $this->_arModifiedFields[$row] =
array();
210 foreach($this->_arFieldsTypes as
$key => $value) $this->
Set(
$key, $value[
"DEF_VAL"],
array(), $row,
false);
215 $this->_arFields =
array();
216 $this->_arModifiedFields =
array();
227 $this->_arFields[] =
array();
228 $this->_arModifiedFields[] =
array();
238 $this->_sortFields = CSupportTools::prepareParamArray($sf);
240 uasort(
$arr,
array($this,
'SortMethod'));
241 $this->_arFields =
$arr;
245 public function Set(
$name, $value, $notNull =
array(), $row =
null, $isModified =
true)
247 if(!array_key_exists(
$name, $this->_arFieldsTypes))
return;
250 $ft = $this->_arFieldsTypes[
$name];
251 if((in_array(self::NOT_NULL, $notNull) && $value ===
null)
252 || (in_array(self::MORE0, $notNull) && $ft[
"TYPE"] == self::VT_NUMBER && intval($value) <= 0)
253 || (in_array(self::NOT_EMTY_STR, $notNull) && $value ===
"")
255 if(array_key_exists(
"MAX_STR_LEN", $ft)) $op[
"MAX_STR_LEN"] = $ft[
"MAX_STR_LEN"];
256 if(array_key_exists(
"LIST", $ft))
258 $op[
"LIST"] = $ft[
"LIST"];
259 $op[
"DEF_VAL"] = $ft[
"DEF_VAL"];
262 $this->_arModifiedFields[$row][
$name] = $isModified;
269 $arName = CSupportTools::prepareParamArray(
$name);
270 foreach($arName as
$key =>
$n)
272 if(!array_key_exists(
$n, $this->_arFieldsTypes))
return;
273 if($this->_arFieldsTypes[
$n][
"TYPE"] == self::VT_DATE)
275 $this->_arFields[$row][
$n] = time() + CTimeZone::GetOffset();
276 $this->_arModifiedFields[$row][
$n] =
true;
278 elseif($this->_arFieldsTypes[
$n][
"TYPE"] == self::VT_DATE_TIME)
280 $this->_arFields[$row][
$n] = time() + CTimeZone::GetOffset();
281 $this->_arModifiedFields[$row][
$n] =
true;
294 if(!is_array(
$arr))
return;
296 $fieldsArr = CSupportTools::prepareParamArray(
$fields, array_keys(
$arr));
312 if($removeExistingRows)
316 if(!is_array($table))
334 if(!array_key_exists(
$name, $this->_arFieldsTypes))
return null;
336 return $this->_arFields[$row][
$name];
349 $arFields = CSupportTools::prepareParamArray(
$fields, array_keys($this->_arFields[$row]));
353 if(!array_key_exists($fName, $this->_arFieldsTypes))
continue;
354 $v = $this->_arFields[$row][$fName];
355 $ft = $this->_arFieldsTypes[$fName];
356 if(in_array(self::ONLY_CHANGED, $notNull) && (!isset($this->_arModifiedFields[$row][$fName]) || $this->_arModifiedFields[$row][$fName] !=
true))
360 elseif(in_array(self::NOT_NULL, $notNull) && $v ===
null)
364 elseif(in_array(self::NOT_DEFAULT, $notNull) && $v === $ft[
"DEF_VAL"])
370 if(array_key_exists(
"AUTO_CALCULATED", $ft))
continue;
381 if(!array_key_exists(
$name, $this->_arFieldsTypes))
385 $ft = $this->_arFieldsTypes[
$name];
386 $value = $this->_arFields[$row][
$name];
388 "WHITE_LIST" => $whiteList,
389 "DEF_VAL" => $ft[
"DEF_VAL"]
397 if(!array_key_exists(
$name, $this->_arFieldsTypes))
401 foreach($this->_arFields as $nom => $row)
$res[$nom] = $row[
$name];
static Convert($type, $value, $op)
FromTable($table, $fields=self::ALL, $notNull=array(), $removeExistingRows=false)
GetFieldForOutput($name, $place, $whiteList=array("http", "ftp", "/"), $row=null)
CleanVar($row=null, $removeExistingRows=false)
static ConvertForHTML($type, $place, $value, $op)
__construct($f, $arOrTable=self::C_Array)
static ConvertForSQL($type, $value)
Set($name, $value, $notNull=array(), $row=null, $isModified=true)
FromArray($arr, $fields=self::ALL, $notNull=array(), $row=null)
SetCurrentTime($name, $row=null)
ToArray($fields=self::ALL, $notNull=array(), $forSQL=false, $row=null)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
GetTime($timestamp, $type="SHORT", $site=false, $bSearchInSitesOnly=false)
MakeTimeStamp($datetime, $format=false)
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
if(empty($signedUserToken)) $key
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"