/bitrix/modules/main/classes/general/usertypestr.php
https://gitlab.com/Rad1calDreamer/honey · PHP · 498 lines · 241 code · 13 blank · 244 comment · 18 complexity · b4acb2fb7f96f9cd8ff3ffa3517033f8 MD5 · raw file
- <?
- /**
- * usertypestr.php, Òèï äëÿ ïîëüçîâàòåëüñêèõ ñâîéñòâ - ÑÒÐÎÊÀ
- *
- * Ñîäåðæèò êëàññ ðåàëèçóþùèé èíòåðôåéñû äëÿ òèïà "Ñòðîêà".
- * @author Bitrix <support@bitrixsoft.com>
- * @version 1.0
- * @package usertype
- */
- IncludeModuleLangFile(__FILE__);
- /**
- * Äàííûé êëàññ èñïîëüçóåòñÿ äëÿ óïðàâëåíèÿ ýêçåìïëÿðîì çíà÷åíèÿ
- * ïîëüçîâàòåëüñêîãî ñâîéñâà.
- *
- * <p>Íåêîòîðûå ìåòîäû ýòîãî êëàññà çàêàí÷èâàþòñÿ íà "2".
- * Îíè ïðèâåäåíû äëÿ äåìîíñòðàöèè è äâîéêîé èñêëþ÷àþòñÿ èç ïðîöåññà îáðàáîòêè.</p>
- * @package usertype
- * @subpackage classes
- */
- class CUserTypeString
- {
- /**
- * Îáðàáîò÷èê ñîáûòèÿ OnUserTypeBuildList.
- *
- * <p>Ýòà ôóíêöèÿ ðåãèñòðèðóåòñÿ â êà÷åñòâå îáðàáîò÷èêà ñîáûòèÿ OnUserTypeBuildList.
- * Âîçâðàùàåò ìàññèâ îïèñûâàþùèé òèï ïîëüçîâàòåëüñêèõ ñâîéñòâ.</p>
- * <p>Ýëåìåíòû ìàññèâà:</p>
- * <ul>
- * <li>USER_TYPE_ID - óíèêàëüíûé èäåíòèôèêàòîð
- * <li>CLASS_NAME - èìÿ êëàññà ìåòîäû êîòîðîãî ôîðìèðóþò ïîâåäåíèå òèïà
- * <li>DESCRIPTION - îïèñàíèå äëÿ ïîêàçà â èíòåðôåéñå (âûïàäàþùèé ñïèñîê è ò.ï.)
- * <li>BASE_TYPE - áàçîâûé òèï íà êîòîðîì áóäóò îñíîâàíû îïåðàöèè ôèëüòðà (int, double, string, date, datetime)
- * </ul>
- * @return array
- * @static
- */
- function GetUserTypeDescription()
- {
- return array(
- "USER_TYPE_ID" => "string",
- "CLASS_NAME" => "CUserTypeString",
- "DESCRIPTION" => GetMessage("USER_TYPE_STRING_DESCRIPTION"),
- "BASE_TYPE" => "string",
- );
- }
- /**
- * Ýòà ôóíêöèÿ âûçûâàåòñÿ ïðè äîáàâëåíèè íîâîãî ñâîéñòâà.
- *
- * <p>Ýòà ôóíêöèÿ âûçûâàåòñÿ äëÿ êîíñòðóèðîâàíèÿ SQL çàïðîñà
- * ñîçäàíèÿ êîëîíêè äëÿ õðàíåíèÿ íå ìíîæåñòâåííûõ çíà÷åíèé ñâîéñòâà.</p>
- * <p>Çíà÷åíèÿ ìíîæåñòâåííûõ ñâîéñòâ õðàíÿòñÿ íå â ñòðîêàõ, à ñòîëáèêàõ (êàê â èíôîáëîêàõ)
- * è òèï òàêîãî ïîëÿ â ÁÄ âñåãäà text.</p>
- * @param array $arUserField Ìàññèâ îïèñûâàþùèé ïîëå
- * @return string
- * @static
- */
- function GetDBColumnType($arUserField)
- {
- global $DB;
- switch(strtolower($DB->type))
- {
- case "mysql":
- return "text";
- case "oracle":
- return "varchar2(2000 char)";
- case "mssql":
- return "varchar(2000)";
- }
- }
- /**
- * Ýòà ôóíêöèÿ âûçûâàåòñÿ ïåðåä ñîõðàíåíèåì ìåòàäàííûõ ñâîéñòâà â ÁÄ.
- *
- * <p>Îíà äîëæíà "î÷èñòèòü" ìàññèâ ñ íàñòðîéêàìè ýêçåìïëÿðà òèïà ñâîéñòâà.
- * Äëÿ òîãî ÷òî áû ñëó÷àéíî/íàìåðåííî íèêòî íå çàïèñàë òóäà âñÿêîé ôèãíè.</p>
- * @param array $arUserField Ìàññèâ îïèñûâàþùèé ïîëå. <b>Âíèìàíèå!</b> ýòî îïèñàíèå ïîëÿ åùå íå ñîõðàíåíî â ÁÄ!
- * @return array Ìàññèâ êîòîðûé â äàëüíåéøåì áóäåò ñåðèàëèçîâàí è ñîõðàíåí â ÁÄ.
- * @static
- */
- function PrepareSettings($arUserField)
- {
- $size = intval($arUserField["SETTINGS"]["SIZE"]);
- $rows = intval($arUserField["SETTINGS"]["ROWS"]);
- $min = intval($arUserField["SETTINGS"]["MIN_LENGTH"]);
- $max = intval($arUserField["SETTINGS"]["MAX_LENGTH"]);
- return array(
- "SIZE" => ($size <= 1? 20: ($size > 255? 225: $size)),
- "ROWS" => ($rows <= 1? 1: ($rows > 50? 50: $rows)),
- "REGEXP" => $arUserField["SETTINGS"]["REGEXP"],
- "MIN_LENGTH" => $min,
- "MAX_LENGTH" => $max,
- "DEFAULT_VALUE" => $arUserField["SETTINGS"]["DEFAULT_VALUE"],
- );
- }
- /**
- * Ýòà ôóíêöèÿ âûçûâàåòñÿ ïðè âûâîäå ôîðìû íàñòðîéêè ñâîéñòâà.
- *
- * <p>Âîçâðàùàåò html äëÿ âñòðàèâàíèÿ â 2-õ êîëîíî÷íóþ òàáëèöó.
- * â ôîðìó usertype_edit.php</p>
- * <p>ò.å. tr td bla-bla /td td edit-edit-edit /td /tr </p>
- * @param array $arUserField Ìàññèâ îïèñûâàþùèé ïîëå. Äëÿ íîâîãî (åùå íå äîáàâëåííîãî ïîëÿ - <b>false</b>)
- * @param array $arHtmlControl Ìàññèâ óïðàâëåíèÿ èç ôîðìû. Ïîêà ñîäåðæèò òîëüêî îäèí ýëåìåíò NAME (html áåçîïàñíûé)
- * @return string HTML äëÿ âûâîäà.
- * @static
- */
- function GetSettingsHTML($arUserField = false, $arHtmlControl, $bVarsFromForm)
- {
- $result = '';
- if($bVarsFromForm)
- $value = htmlspecialcharsbx($GLOBALS[$arHtmlControl["NAME"]]["DEFAULT_VALUE"]);
- elseif(is_array($arUserField))
- $value = htmlspecialcharsbx($arUserField["SETTINGS"]["DEFAULT_VALUE"]);
- else
- $value = "";
- $result .= '
- <tr>
- <td>'.GetMessage("USER_TYPE_STRING_DEFAULT_VALUE").':</td>
- <td>
- <input type="text" name="'.$arHtmlControl["NAME"].'[DEFAULT_VALUE]" size="20" maxlength="225" value="'.$value.'">
- </td>
- </tr>
- ';
- if($bVarsFromForm)
- $value = intval($GLOBALS[$arHtmlControl["NAME"]]["SIZE"]);
- elseif(is_array($arUserField))
- $value = intval($arUserField["SETTINGS"]["SIZE"]);
- else
- $value = 20;
- $result .= '
- <tr>
- <td>'.GetMessage("USER_TYPE_STRING_SIZE").':</td>
- <td>
- <input type="text" name="'.$arHtmlControl["NAME"].'[SIZE]" size="20" maxlength="20" value="'.$value.'">
- </td>
- </tr>
- ';
- if($bVarsFromForm)
- $value = intval($GLOBALS[$arHtmlControl["NAME"]]["ROWS"]);
- elseif(is_array($arUserField))
- $value = intval($arUserField["SETTINGS"]["ROWS"]);
- else
- $value = 1;
- if($value < 1) $value = 1;
- $result .= '
- <tr>
- <td>'.GetMessage("USER_TYPE_STRING_ROWS").':</td>
- <td>
- <input type="text" name="'.$arHtmlControl["NAME"].'[ROWS]" size="20" maxlength="20" value="'.$value.'">
- </td>
- </tr>
- ';
- if($bVarsFromForm)
- $value = intval($GLOBALS[$arHtmlControl["NAME"]]["MIN_LENGTH"]);
- elseif(is_array($arUserField))
- $value = intval($arUserField["SETTINGS"]["MIN_LENGTH"]);
- else
- $value = 0;
- $result .= '
- <tr>
- <td>'.GetMessage("USER_TYPE_STRING_MIN_LEGTH").':</td>
- <td>
- <input type="text" name="'.$arHtmlControl["NAME"].'[MIN_LENGTH]" size="20" maxlength="20" value="'.$value.'">
- </td>
- </tr>
- ';
- if($bVarsFromForm)
- $value = intval($GLOBALS[$arHtmlControl["NAME"]]["MAX_LENGTH"]);
- elseif(is_array($arUserField))
- $value = intval($arUserField["SETTINGS"]["MAX_LENGTH"]);
- else
- $value = 0;
- $result .= '
- <tr>
- <td>'.GetMessage("USER_TYPE_STRING_MAX_LENGTH").':</td>
- <td>
- <input type="text" name="'.$arHtmlControl["NAME"].'[MAX_LENGTH]" size="20" maxlength="20" value="'.$value.'">
- </td>
- </tr>
- ';
- if($bVarsFromForm)
- $value = htmlspecialcharsbx($GLOBALS[$arHtmlControl["NAME"]]["REGEXP"]);
- elseif(is_array($arUserField))
- $value = htmlspecialcharsbx($arUserField["SETTINGS"]["REGEXP"]);
- else
- $value = "";
- $result .= '
- <tr>
- <td>'.GetMessage("USER_TYPE_STRING_REGEXP").':</td>
- <td>
- <input type="text" name="'.$arHtmlControl["NAME"].'[REGEXP]" size="20" maxlength="200" value="'.$value.'">
- </td>
- </tr>
- ';
- return $result;
- }
- /**
- * Ýòà ôóíêöèÿ âûçûâàåòñÿ ïðè âûâîäå ôîðìû ðåäàêòèðîâàíèÿ çíà÷åíèÿ ñâîéñòâà.
- *
- * <p>Âîçâðàùàåò html äëÿ âñòðàèâàíèÿ â ÿ÷åéêó òàáëèöû.
- * â ôîðìó ðåäàêòèðîâàíèÿ ñóùíîñòè (íà âêëàäêå "Äîï. ñâîéñòâà")</p>
- * <p>Ýëåìåíòû $arHtmlControl ïðèâåäåíû ê html áåçîïàñíîìó âèäó.</p>
- * @param array $arUserField Ìàññèâ îïèñûâàþùèé ïîëå.
- * @param array $arHtmlControl Ìàññèâ óïðàâëåíèÿ èç ôîðìû. Ñîäåðæèò ýëåìåíòû NAME è VALUE.
- * @return string HTML äëÿ âûâîäà.
- * @static
- */
- function GetEditFormHTML($arUserField, $arHtmlControl)
- {
- if($arUserField["ENTITY_VALUE_ID"]<1 && strlen($arUserField["SETTINGS"]["DEFAULT_VALUE"])>0)
- $arHtmlControl["VALUE"] = htmlspecialcharsbx($arUserField["SETTINGS"]["DEFAULT_VALUE"]);
- if($arUserField["SETTINGS"]["ROWS"] < 2)
- {
- $arHtmlControl["VALIGN"] = "middle";
- return '<input type="text" '.
- 'name="'.$arHtmlControl["NAME"].'" '.
- 'size="'.$arUserField["SETTINGS"]["SIZE"].'" '.
- ($arUserField["SETTINGS"]["MAX_LENGTH"]>0? 'maxlength="'.$arUserField["SETTINGS"]["MAX_LENGTH"].'" ': '').
- 'value="'.$arHtmlControl["VALUE"].'" '.
- ($arUserField["EDIT_IN_LIST"]!="Y"? 'disabled="disabled" ': '').
- '>';
- }
- else
- {
- return '<textarea '.
- 'name="'.$arHtmlControl["NAME"].'" '.
- 'cols="'.$arUserField["SETTINGS"]["SIZE"].'" '.
- 'rows="'.$arUserField["SETTINGS"]["ROWS"].'" '.
- ($arUserField["SETTINGS"]["MAX_LENGTH"]>0? 'maxlength="'.$arUserField["SETTINGS"]["MAX_LENGTH"].'" ': '').
- ($arUserField["EDIT_IN_LIST"]!="Y"? 'disabled="disabled" ': '').
- '>'.$arHtmlControl["VALUE"].'</textarea>';
- }
- }
- /**
- * Ýòà ôóíêöèÿ âûçûâàåòñÿ ïðè âûâîäå ôîðìû ðåäàêòèðîâàíèÿ çíà÷åíèÿ <b>ìíîæåñòâåííîãî</b> ñâîéñòâà.
- *
- * <p>Åñëè êëàññ íå ïðåäîñòàâëÿåò òàêóþ ôóíêöèþ,
- * òî ìåíåäæåð òèïîâ "ñîáåðåò" òðåáóåìûé html èç âûçîâîâ GetEditFormHTML</p>
- * <p>Âîçâðàùàåò html äëÿ âñòðàèâàíèÿ â ÿ÷åéêó òàáëèöû.
- * â ôîðìó ðåäàêòèðîâàíèÿ ñóùíîñòè (íà âêëàäêå "Äîï. ñâîéñòâà")</p>
- * <p>Ýëåìåíòû $arHtmlControl ïðèâåäåíû ê html áåçîïàñíîìó âèäó.</p>
- * <p>Ïîëå VALUE $arHtmlControl - ìàññèâ.</p>
- * @param array $arUserField Ìàññèâ îïèñûâàþùèé ïîëå.
- * @param array $arHtmlControl Ìàññèâ óïðàâëåíèÿ èç ôîðìû. Ñîäåðæèò ýëåìåíòû NAME è VALUE.
- * @return string HTML äëÿ âûâîäà.
- * @static
- */
- /*
- function GetEditFormHTMLMulty($arUserField, $arHtmlControl)
- {
- if($arUserField["VALUE"]===false && strlen($arUserField["SETTINGS"]["DEFAULT_VALUE"])>0)
- $arHtmlControl["VALUE"] = array(htmlspecialcharsbx($arUserField["SETTINGS"]["DEFAULT_VALUE"]));
- $result = array();
- foreach($arHtmlControl["VALUE"] as $value)
- {
- if($arUserField["SETTINGS"]["ROWS"] < 2)
- $result[] = '<input type="text" '.
- 'name="'.$arHtmlControl["NAME"].'" '.
- 'size="'.$arUserField["SETTINGS"]["SIZE"].'" '.
- ($arUserField["SETTINGS"]["MAX_LENGTH"]>0? 'maxlength="'.$arUserField["SETTINGS"]["MAX_LENGTH"].'" ': '').
- 'value="'.$value.'" '.
- ($arUserField["EDIT_IN_LIST"]!="Y"? 'disabled="disabled" ': '').
- '>';
- else
- $result[] = '<textarea '.
- 'name="'.$arHtmlControl["NAME"].'" '.
- 'cols="'.$arUserField["SETTINGS"]["SIZE"].'" '.
- 'rows="'.$arUserField["SETTINGS"]["ROWS"].'" '.
- ($arUserField["SETTINGS"]["MAX_LENGTH"]>0? 'maxlength="'.$arUserField["SETTINGS"]["MAX_LENGTH"].'" ': '').
- ($arUserField["EDIT_IN_LIST"]!="Y"? 'disabled="disabled" ': '').
- '>'.$value.'</textarea>';
- }
- return implode("<br>", $result);
- }
- */
- /**
- * Ýòà ôóíêöèÿ âûçûâàåòñÿ ïðè âûâîäå ôèëüòðà íà ñòðàíèöå ñïèñêà.
- *
- * <p>Âîçâðàùàåò html äëÿ âñòðàèâàíèÿ â ÿ÷åéêó òàáëèöû.</p>
- * <p>Ýëåìåíòû $arHtmlControl ïðèâåäåíû ê html áåçîïàñíîìó âèäó.</p>
- * @param array $arUserField Ìàññèâ îïèñûâàþùèé ïîëå.
- * @param array $arHtmlControl Ìàññèâ óïðàâëåíèÿ èç ôîðìû. Ñîäåðæèò ýëåìåíòû NAME è VALUE.
- * @return string HTML äëÿ âûâîäà.
- * @static
- */
- function GetFilterHTML($arUserField, $arHtmlControl)
- {
- return '<input type="text" '.
- 'name="'.$arHtmlControl["NAME"].'" '.
- 'size="'.$arUserField["SETTINGS"]["SIZE"].'" '.
- 'value="'.$arHtmlControl["VALUE"].'"'.
- '>';
- }
- /**
- * Ýòà ôóíêöèÿ âûçûâàåòñÿ ïðè âûâîäå çíà÷åíèÿ ñâîéñòâà â ñïèñêå ýëåìåíòîâ.
- *
- * <p>Âîçâðàùàåò html äëÿ âñòðàèâàíèÿ â ÿ÷åéêó òàáëèöû.</p>
- * <p>Ýëåìåíòû $arHtmlControl ïðèâåäåíû ê html áåçîïàñíîìó âèäó.</p>
- * @param array $arUserField Ìàññèâ îïèñûâàþùèé ïîëå.
- * @param array $arHtmlControl Ìàññèâ óïðàâëåíèÿ èç ôîðìû. Ñîäåðæèò ýëåìåíòû NAME è VALUE.
- * @return string HTML äëÿ âûâîäà.
- * @static
- */
- function GetAdminListViewHTML($arUserField, $arHtmlControl)
- {
- if(strlen($arHtmlControl["VALUE"])>0)
- return $arHtmlControl["VALUE"];
- else
- return ' ';
- }
- /**
- * Ýòà ôóíêöèÿ âûçûâàåòñÿ ïðè âûâîäå çíà÷åíèÿ <b>ìíîæåñòâåííîãî</b> ñâîéñòâà â ñïèñêå ýëåìåíòîâ.
- *
- * <p>Âîçâðàùàåò html äëÿ âñòðàèâàíèÿ â ÿ÷åéêó òàáëèöû.</p>
- * <p>Åñëè êëàññ íå ïðåäîñòàâëÿåò òàêóþ ôóíêöèþ,
- * òî ìåíåäæåð òèïîâ "ñîáåðåò" òðåáóåìûé html èç âûçîâîâ GetAdminListViewHTML</p>
- * <p>Ýëåìåíòû $arHtmlControl ïðèâåäåíû ê html áåçîïàñíîìó âèäó.</p>
- * <p>Ïîëå VALUE $arHtmlControl - ìàññèâ.</p>
- * @param array $arUserField Ìàññèâ îïèñûâàþùèé ïîëå.
- * @param array $arHtmlControl Ìàññèâ óïðàâëåíèÿ èç ôîðìû. Ñîäåðæèò ýëåìåíòû NAME è VALUE.
- * @return string HTML äëÿ âûâîäà.
- * @static
- */
- /*
- function GetAdminListViewHTMLMulty($arUserField, $arHtmlControl)
- {
- return implode(", ", $arHtmlControl["VALUE"]);
- }
- */
- /**
- * Ýòà ôóíêöèÿ âûçûâàåòñÿ ïðè âûâîäå çíà÷åíèÿ ñâîéñòâà â ñïèñêå ýëåìåíòîâ â ðåæèìå <b>ðåäàêòèðîâàíèÿ</b>.
- *
- * <p>Âîçâðàùàåò html äëÿ âñòðàèâàíèÿ â ÿ÷åéêó òàáëèöû.</p>
- * <p>Ýëåìåíòû $arHtmlControl ïðèâåäåíû ê html áåçîïàñíîìó âèäó.</p>
- * @param array $arUserField Ìàññèâ îïèñûâàþùèé ïîëå.
- * @param array $arHtmlControl Ìàññèâ óïðàâëåíèÿ èç ôîðìû. Ñîäåðæèò ýëåìåíòû NAME è VALUE.
- * @return string HTML äëÿ âûâîäà.
- * @static
- */
- function GetAdminListEditHTML($arUserField, $arHtmlControl)
- {
- if($arUserField["SETTINGS"]["ROWS"] < 2)
- return '<input type="text" '.
- 'name="'.$arHtmlControl["NAME"].'" '.
- 'size="'.$arUserField["SETTINGS"]["SIZE"].'" '.
- ($arUserField["SETTINGS"]["MAX_LENGTH"]>0? 'maxlength="'.$arUserField["SETTINGS"]["MAX_LENGTH"].'" ': '').
- 'value="'.$arHtmlControl["VALUE"].'" '.
- '>';
- else
- return '<textarea '.
- 'name="'.$arHtmlControl["NAME"].'" '.
- 'cols="'.$arUserField["SETTINGS"]["SIZE"].'" '.
- 'rows="'.$arUserField["SETTINGS"]["ROWS"].'" '.
- ($arUserField["SETTINGS"]["MAX_LENGTH"]>0? 'maxlength="'.$arUserField["SETTINGS"]["MAX_LENGTH"].'" ': '').
- '>'.$arHtmlControl["VALUE"].'</textarea>';
- }
- /**
- * Ýòà ôóíêöèÿ âûçûâàåòñÿ ïðè âûâîäå <b>ìíîæåñòâåííîãî</b> ñâîéñòâà â ñïèñêå ýëåìåíòîâ â ðåæèìå <b>ðåäàêòèðîâàíèÿ</b>.
- *
- * <p>Âîçâðàùàåò html äëÿ âñòðàèâàíèÿ â ÿ÷åéêó òàáëèöû.</p>
- * <p>Åñëè êëàññ íå ïðåäîñòàâëÿåò òàêóþ ôóíêöèþ,
- * òî ìåíåäæåð òèïîâ "ñîáåðåò" òðåáóåìûé html èç âûçîâîâ GetAdminListEditHTML</p>
- * <p>Ýëåìåíòû $arHtmlControl ïðèâåäåíû ê html áåçîïàñíîìó âèäó.</p>
- * <p>Ïîëå VALUE $arHtmlControl - ìàññèâ.</p>
- * @param array $arUserField Ìàññèâ îïèñûâàþùèé ïîëå.
- * @param array $arHtmlControl Ìàññèâ óïðàâëåíèÿ èç ôîðìû. Ñîäåðæèò ýëåìåíòû NAME è VALUE.
- * @return string HTML äëÿ âûâîäà.
- * @static
- */
- /*
- function GetAdminListEditHTMLMulty($arUserField, $arHtmlControl)
- {
- $result = array();
- foreach($arHtmlControl["VALUE"] as $value)
- {
- if($arUserField["SETTINGS"]["ROWS"] < 2)
- $result[] = '<input type="text" '.
- 'name="'.$arHtmlControl["NAME"].'" '.
- 'size="'.$arUserField["SETTINGS"]["SIZE"].'" '.
- ($arUserField["SETTINGS"]["MAX_LENGTH"]>0? 'maxlength="'.$arUserField["SETTINGS"]["MAX_LENGTH"].'" ': '').
- 'value="'.$value.'" '.
- '>';
- else
- $result[] = '<textarea '.
- 'name="'.$arHtmlControl["NAME"].'" '.
- 'cols="'.$arUserField["SETTINGS"]["SIZE"].'" '.
- 'rows="'.$arUserField["SETTINGS"]["ROWS"].'" '.
- ($arUserField["SETTINGS"]["MAX_LENGTH"]>0? 'maxlength="'.$arUserField["SETTINGS"]["MAX_LENGTH"].'" ': '').
- '>'.$value.'</textarea>';
- }
- return ' '.implode("<br>", $result);
- }
- */
- /**
- * Ýòà ôóíêöèÿ âàëèäàòîð.
- *
- * <p>Âûçûâàåòñÿ èç ìåòîäà CheckFields îáúåêòà $USER_FIELD_MANAGER.</p>
- * <p>Êîòîðûé â ñâîþ î÷åðåäü ìîæåò áûòü âûçâàí èç ìåòîðîâ Add/Update ñóùíîñòè âëàäåëüöà ñâîéñòâ.</p>
- * <p>Âûïîëíÿåòñÿ 2 ïðîâåðêè:</p>
- * <ul>
- * <li>íà ìèíèìàëüíóþ äëèíó (åñëè â íàñòðîéêàõ ìèíèìàëüíàÿ äëèíà áîëüøå 0).
- * <li>íà ðåãóëÿðíîå âûðàæåíèå (åñëè çàäàíî â íàñòðîéêàõ).
- * </ul>
- * @param array $arUserField Ìàññèâ îïèñûâàþùèé ïîëå.
- * @param array $value çíà÷åíèå äëÿ ïðîâåðêè íà âàëèäíîñòü
- * @return array ìàññèâ ìàññèâîâ ("id","text") îøèáîê.
- * @static
- */
- function CheckFields($arUserField, $value)
- {
- $aMsg = array();
- if(strlen($value)<$arUserField["SETTINGS"]["MIN_LENGTH"])
- {
- $aMsg[] = array(
- "id" => $arUserField["FIELD_NAME"],
- "text" => GetMessage("USER_TYPE_STRING_MIN_LEGTH_ERROR",
- array(
- "#FIELD_NAME#"=>$arUserField["EDIT_FORM_LABEL"],
- "#MIN_LENGTH#"=>$arUserField["SETTINGS"]["MIN_LENGTH"]
- )
- ),
- );
- }
- if($arUserField["SETTINGS"]["MAX_LENGTH"]>0 && strlen($value)>$arUserField["SETTINGS"]["MAX_LENGTH"])
- {
- $aMsg[] = array(
- "id" => $arUserField["FIELD_NAME"],
- "text" => GetMessage("USER_TYPE_STRING_MAX_LEGTH_ERROR",
- array(
- "#FIELD_NAME#"=>$arUserField["EDIT_FORM_LABEL"],
- "#MAX_LENGTH#"=>$arUserField["SETTINGS"]["MAX_LENGTH"]
- )
- ),
- );
- }
- if(strlen($arUserField["SETTINGS"]["REGEXP"])>0 && !preg_match($arUserField["SETTINGS"]["REGEXP"], $value))
- {
- $aMsg[] = array(
- "id" => $arUserField["FIELD_NAME"],
- "text" => (strlen($arUserField["ERROR_MESSAGE"])>0?
- $arUserField["ERROR_MESSAGE"]:
- GetMessage("USER_TYPE_STRING_REGEXP_ERROR",
- array(
- "#FIELD_NAME#"=>$arUserField["EDIT_FORM_LABEL"],
- )
- )
- ),
- );
- }
- return $aMsg;
- }
- /**
- * Ýòà ôóíêöèÿ äîëæíà âåðíóòü ïðåäñòàâëåíèå çíà÷åíèÿ ïîëÿ äëÿ ïîèñêà.
- *
- * <p>Âûçûâàåòñÿ èç ìåòîäà OnSearchIndex îáúåêòà $USER_FIELD_MANAGER.</p>
- * <p>Êîòîðûé â ñâîþ î÷åðåäü âûçûâàåòñÿ è ôóíêöèè îáíîâëåíèÿ ïîèñêîâîãî èíäåêñà ñóùíîñòè.</p>
- * <p>Äëÿ ìíîæåñòâåííûõ çíà÷åíèé ïîëå VALUE - ìàññèâ.</p>
- * @param array $arUserField Ìàññèâ îïèñûâàþùèé ïîëå.
- * @return string ïîñêîâîå ñîäåðæèìîå.
- * @static
- */
- function OnSearchIndex($arUserField)
- {
- if(is_array($arUserField["VALUE"]))
- return implode("\r\n", $arUserField["VALUE"]);
- else
- return $arUserField["VALUE"];
- }
- /**
- * Ýòà ôóíêöèÿ âûçûâàåòñÿ ïåðåä ñîõðàíåíèåì çíà÷åíèé â ÁÄ.
- *
- * <p>Âûçûâàåòñÿ èç ìåòîäà Update îáúåêòà $USER_FIELD_MANAGER.</p>
- * <p>Äëÿ ìíîæåñòâåííûõ çíà÷åíèé ôóíêöèÿ âûçûâàåòñÿ íåñêîëüêî ðàç.</p>
- * @param array $arUserField Ìàññèâ îïèñûâàþùèé ïîëå.
- * @param mixed $value Çíà÷åíèå.
- * @return string çíà÷åíèå äëÿ âñòàâêè â ÁÄ.
- * @static
- */
- /*
- function OnBeforeSave($arUserField, $value)
- {
- if(strlen($value)>0)
- return "".round(doubleval($value), $arUserField["SETTINGS"]["PRECISION"]);
- }
- */
- }
- ?>