- Модуль: lists
- Путь к файлу: ~/bitrix/modules/lists/classes/general/listfield.php
- Класс: CListField
- Вызов: CListField::SetSettings
public function SetSettings($arSettings)
{
global $DB;
$arStore = false;
switch($this->_field_id)
{
case "PREVIEW_TEXT":
if(preg_match('/s*(d+)s*(px|%|)/', $arSettings["WIDTH"], $match) && ($match[1] > 0))
$width = $match[1].$match[2];
else
$width = "40";
if(preg_match('/s*(d+)s*(px|%|)/', $arSettings["HEIGHT"], $match) && ($match[1] > 0))
$height = $match[1].$match[2];
else
$height = "3";
$arStore = array(
"USE_EDITOR" => $arSettings["USE_EDITOR"]=="Y"? "Y": "N",
"WIDTH" => $width,
"HEIGHT" => $height,
"SHOW_ADD_FORM" => $arSettings["SHOW_ADD_FORM"],
"SHOW_EDIT_FORM" => $arSettings["SHOW_EDIT_FORM"],
"ADD_READ_ONLY_FIELD" => $arSettings["ADD_READ_ONLY_FIELD"],
"EDIT_READ_ONLY_FIELD" => $arSettings["EDIT_READ_ONLY_FIELD"],
"SHOW_FIELD_PREVIEW" => $arSettings["SHOW_FIELD_PREVIEW"]
);
break;
default:
$arStore = $arSettings;
}
$arFields = array();
if(is_array($arStore))
$arFields["SETTINGS"] = serialize($arStore);
else
$arFields["SETTINGS"] = false;
$strUpdate = $DB->PrepareUpdate("b_lists_field", $arFields);
if($strUpdate!="")
{
$strSql = "
UPDATE b_lists_field
SET ".$strUpdate."
WHERE IBLOCK_ID = ".$this->_iblock_id."
AND FIELD_ID = '".$DB->ForSQL($this->_field_id)."'
";
$arBinds = array(
"SETTINGS" => $arFields["SETTINGS"],
);
$DB->QueryBind($strSql, $arBinds);
$this->_clear_cache();
}
}