Просмотр исходного кода

Ticket #4389 - Add Icons to Info fields in profile.

AntonLV 3 лет назад
Родитель
Сommit
a307d47fef

+ 1 - 0
inc/classes/BxDolFormQuery.php

@@ -135,6 +135,7 @@ class BxDolFormQuery extends BxDolDb
                 'info' => $a['info'] ? _t($a['info']) : '',
                 'help_src' => $a['help'] ? $a['help'] : '',
                 'help' => $a['help'] ? _t($a['help']) : '',
+                'icon' => $a['icon'],
                 'required' => $a['required'] ? true : false,
             	'unique' => $a['unique'] ? true : false,
                 'collapsed' => $a['collapsed'] ? true : false,

+ 1 - 0
install/sql/system.sql

@@ -3626,6 +3626,7 @@ CREATE TABLE IF NOT EXISTS `sys_form_inputs` (
   `caption` varchar(255) NOT NULL,
   `info` varchar(255) NOT NULL,
   `help` varchar(255) NOT NULL,
+  `icon` text NOT NULL,
   `required` tinyint(4) NOT NULL DEFAULT '0',
   `unique` tinyint(4) NOT NULL DEFAULT '0',
   `collapsed` tinyint(4) NOT NULL DEFAULT '0',

+ 10 - 7
modules/boonex/english/data/langs/system/en.xml

@@ -788,6 +788,7 @@
 	<string name="_adm_form_dsc_field_checker_params_preg"><![CDATA[Use standard <a href="http://en.wikipedia.org/wiki/Regular_expression" target="_blank">regular expression</a>. Example: #^[A-Za-z0-9]{3,16}$#]]></string>
 	<string name="_adm_form_dsc_field_collapsed"><![CDATA[Pack down the group of this field by default]]></string>
 	<string name="_adm_form_dsc_field_html"><![CDATA[Select type of HTML editor]]></string>
+        <string name="_adm_form_dsc_field_icon"><![CDATA[You may use font icon, SVG or Emoji code here]]></string>
 	<string name="_adm_form_dsc_field_info"><![CDATA[Enter field description (optional)]]></string>
         <string name="_adm_form_dsc_field_help"><![CDATA[Enter help information for the field (optional)]]></string>
   <string name="_adm_form_dsc_field_privacy"><![CDATA[Check it if privacy settings can be changed for the field]]></string>
@@ -935,18 +936,20 @@
 	<string name="_adm_form_txt_field_html_mini"><![CDATA[Mini]]></string>
 	<string name="_adm_form_txt_field_html_none"><![CDATA[No Editor]]></string>
 	<string name="_adm_form_txt_field_html_standard"><![CDATA[Standard]]></string>
+        <string name="_adm_form_txt_field_icon"><![CDATA[Icon]]></string>
+        <string name="_adm_form_txt_field_icon_preview"><![CDATA[Current Icon]]></string>
 	<string name="_adm_form_txt_field_info"><![CDATA[Description]]></string>
         <string name="_adm_form_txt_field_help"><![CDATA[Help]]></string>
 	<string name="_adm_form_txt_field_module"><![CDATA[Module]]></string>
 	<string name="_adm_form_txt_field_name"><![CDATA[Name]]></string>
 	<string name="_adm_form_txt_field_object"><![CDATA[Form]]></string>
-  <string name="_adm_form_txt_field_privacy"><![CDATA[Privacy]]></string>
-  <string name="_adm_form_txt_field_rateable"><![CDATA[Rateable]]></string>
-  <string name="_adm_form_txt_field_rateable_value_non"><![CDATA[Non-rateable]]></string>
-  <string name="_adm_form_txt_field_rateable_value_votes"><![CDATA[Use votes]]></string>
-  <string name="_adm_form_txt_field_rateable_value_reactions"><![CDATA[Use reactions]]></string>
-  <string name="_adm_form_txt_field_required"><![CDATA[Mandatory]]></string>
-  <string name="_adm_form_txt_field_select_nested_form"><![CDATA[Select nested form]]></string>
+        <string name="_adm_form_txt_field_privacy"><![CDATA[Privacy]]></string>
+        <string name="_adm_form_txt_field_rateable"><![CDATA[Rateable]]></string>
+        <string name="_adm_form_txt_field_rateable_value_non"><![CDATA[Non-rateable]]></string>
+        <string name="_adm_form_txt_field_rateable_value_votes"><![CDATA[Use votes]]></string>
+        <string name="_adm_form_txt_field_rateable_value_reactions"><![CDATA[Use reactions]]></string>
+        <string name="_adm_form_txt_field_required"><![CDATA[Mandatory]]></string>
+        <string name="_adm_form_txt_field_select_nested_form"><![CDATA[Select nested form]]></string>
 	<string name="_adm_form_txt_field_show_to_popup"><![CDATA[Show "{0}" form field to: ]]></string>
         <string name="_adm_form_txt_field_type_block_end"><![CDATA[block end]]></string>
 	<string name="_adm_form_txt_field_type_block_header"><![CDATA[block header]]></string>

+ 85 - 82
modules/boonex/russian/data/langs/system/ru.xml

@@ -764,90 +764,91 @@
   <string name="_adm_form_btn_reports_hide"><![CDATA[Скрыть]]></string>
   <string name="_adm_form_btn_reports_unhide"><![CDATA[Открыть]]></string>
   
-	<string name="_adm_form_btn_search_forms_edit"><![CDATA[Редактировать форму поиска]]></string>
+    <string name="_adm_form_btn_search_forms_edit"><![CDATA[Редактировать форму поиска]]></string>
     <string name="_adm_form_btn_search_forms_fields_edit"><![CDATA[Редактировать поле формы поиска]]></string>
     <string name="_adm_form_btn_search_forms_fields_reset"><![CDATA[Сбросить]]></string>
     <string name="_adm_form_btn_search_forms_sortable_fields_reset"><![CDATA[Сбросить]]></string>
     <string name="_adm_form_btn_search_forms_save"><![CDATA[Сохранить]]></string>
     <string name="_adm_form_btn_search_forms_cancel"><![CDATA[Отменить]]></string>
-	<string name="_adm_form_dsc_displays_title"><![CDATA[Название режима отображения Формы. Видимо только в Студии.]]></string>
-	<string name="_adm_form_dsc_field_attrs_max"><![CDATA[Введите числовое значение]]></string>
-	<string name="_adm_form_dsc_field_attrs_min"><![CDATA[Введите числовое значение]]></string>
-	<string name="_adm_form_dsc_field_attrs_src"><![CDATA[Введите правильный URL картинки]]></string>
-	<string name="_adm_form_dsc_field_attrs_step"><![CDATA[Введите числовое значение]]></string>
-	<string name="_adm_form_dsc_field_caption"><![CDATA[Название элемента, отображаемое на сайте]]></string>
-	<string name="_adm_form_dsc_field_caption_block_header"><![CDATA[Заголовок для группы полей]]></string>
-	<string name="_adm_form_dsc_field_caption_system"><![CDATA[Заголовок поля, отображается только в Студии.]]></string>
-	<string name="_adm_form_dsc_field_checker_error_captcha"><![CDATA[Сообщение об ошибке, когда текст на картинке не соответствует введённому тексту]]></string>
-	<string name="_adm_form_dsc_field_checker_params_preg"><![CDATA[Используйте стандартные <a href="http://en.wikipedia.org/wiki/Regular_expression" target="_blank">регулярные выражения</a>. Например: #^[A-Za-z0-9]{3,16}$#]]></string>
-	<string name="_adm_form_dsc_field_collapsed"><![CDATA[Упаковать группу данного поля по умолчанию]]></string>
-	<string name="_adm_form_dsc_field_html"><![CDATA[Выбрать тип HTML-редактора]]></string>
-	<string name="_adm_form_dsc_field_info"><![CDATA[Введите описание поля (необязательно)]]></string>
-        <string name="_adm_form_dsc_field_help"><![CDATA[Добавьте вспомогательную информацию для поля (необязательно)]]></string>
-        <string name="_adm_form_dsc_field_privacy"><![CDATA[Отметьте, если для данного поля настройки "Конфиденциальности" могут быть изменены]]></string>
-  <string name="_adm_form_dsc_field_rateable"><![CDATA[Добавляет возможность оценки значений]]></string>
-	<string name="_adm_form_dsc_field_required"><![CDATA[Отметьте, если поле должно иметь значение]]></string>
-	<string name="_adm_form_dsc_field_unique"><![CDATA[Отметьте, если поле должно иметь уникальное значение]]></string>
-	<string name="_adm_form_dsc_field_value_button"><![CDATA[Введите заголовок для кнопки]]></string>
-	<string name="_adm_form_dsc_field_value_checkbox"><![CDATA[Послать эти данные, если фладок отмечен и форма отослана]]></string>
-	<string name="_adm_form_dsc_field_value_reset"><![CDATA[Заголовок для кнопки (этот тип кнопки используется для сброса формы в исходное состояние)]]></string>
-	<string name="_adm_form_dsc_field_value_submit"><![CDATA[Заголовок для кнопки (этот тип кнопки используется для посылки данных формы)]]></string>
-	<string name="_adm_form_dsc_field_visible_for_levels"><![CDATA[Выбрать членства, разрешённые для просмотра элемента данного меню]]></string>
-	<string name="_adm_form_dsc_field_db_pass"><![CDATA[Выберите, как данные поля будут обрабатываться перед записью в базу данных]]></string>
-	<string name="_adm_form_dsc_forms_title"><![CDATA[Название Формы. Отображается только в Студии.]]></string>
-	<string name="_adm_form_dsc_pre_lists_title"><![CDATA[Название списка для использования только в Студии]]></string>
-	<string name="_adm_form_dsc_pre_values_empty"><![CDATA[Вы можете использовать его для элементов, таких как "Пожалуйста, выберите...", которые не могут быть отправлены.]]></string>
-	<string name="_adm_form_dsc_pre_values_lkey"><![CDATA[Название злемента, отображаемое на сайте]]></string>
-	<string name="_adm_form_dsc_search_forms_fields_search_type"><![CDATA[Тип элемента управления в форме поиска]]></string>
+    <string name="_adm_form_dsc_displays_title"><![CDATA[Название режима отображения Формы. Видимо только в Студии.]]></string>
+    <string name="_adm_form_dsc_field_attrs_max"><![CDATA[Введите числовое значение]]></string>
+    <string name="_adm_form_dsc_field_attrs_min"><![CDATA[Введите числовое значение]]></string>
+    <string name="_adm_form_dsc_field_attrs_src"><![CDATA[Введите правильный URL картинки]]></string>
+    <string name="_adm_form_dsc_field_attrs_step"><![CDATA[Введите числовое значение]]></string>
+    <string name="_adm_form_dsc_field_caption"><![CDATA[Название элемента, отображаемое на сайте]]></string>
+    <string name="_adm_form_dsc_field_caption_block_header"><![CDATA[Заголовок для группы полей]]></string>
+    <string name="_adm_form_dsc_field_caption_system"><![CDATA[Заголовок поля, отображается только в Студии.]]></string>
+    <string name="_adm_form_dsc_field_checker_error_captcha"><![CDATA[Сообщение об ошибке, когда текст на картинке не соответствует введённому тексту]]></string>
+    <string name="_adm_form_dsc_field_checker_params_preg"><![CDATA[Используйте стандартные <a href="http://en.wikipedia.org/wiki/Regular_expression" target="_blank">регулярные выражения</a>. Например: #^[A-Za-z0-9]{3,16}$#]]></string>
+    <string name="_adm_form_dsc_field_collapsed"><![CDATA[Упаковать группу данного поля по умолчанию]]></string>
+    <string name="_adm_form_dsc_field_html"><![CDATA[Выбрать тип HTML-редактора]]></string>
+    <string name="_adm_form_dsc_field_icon"><![CDATA[Вы можете использовать здесь иконку для шрифта, SVG код или эмодзи]]></string>
+    <string name="_adm_form_dsc_field_info"><![CDATA[Введите описание поля (необязательно)]]></string>
+    <string name="_adm_form_dsc_field_help"><![CDATA[Добавьте вспомогательную информацию для поля (необязательно)]]></string>
+    <string name="_adm_form_dsc_field_privacy"><![CDATA[Отметьте, если для данного поля настройки "Конфиденциальности" могут быть изменены]]></string>
+    <string name="_adm_form_dsc_field_rateable"><![CDATA[Добавляет возможность оценки значений]]></string>
+    <string name="_adm_form_dsc_field_required"><![CDATA[Отметьте, если поле должно иметь значение]]></string>
+    <string name="_adm_form_dsc_field_unique"><![CDATA[Отметьте, если поле должно иметь уникальное значение]]></string>
+    <string name="_adm_form_dsc_field_value_button"><![CDATA[Введите заголовок для кнопки]]></string>
+    <string name="_adm_form_dsc_field_value_checkbox"><![CDATA[Послать эти данные, если фладок отмечен и форма отослана]]></string>
+    <string name="_adm_form_dsc_field_value_reset"><![CDATA[Заголовок для кнопки (этот тип кнопки используется для сброса формы в исходное состояние)]]></string>
+    <string name="_adm_form_dsc_field_value_submit"><![CDATA[Заголовок для кнопки (этот тип кнопки используется для посылки данных формы)]]></string>
+    <string name="_adm_form_dsc_field_visible_for_levels"><![CDATA[Выбрать членства, разрешённые для просмотра элемента данного меню]]></string>
+    <string name="_adm_form_dsc_field_db_pass"><![CDATA[Выберите, как данные поля будут обрабатываться перед записью в базу данных]]></string>
+    <string name="_adm_form_dsc_forms_title"><![CDATA[Название Формы. Отображается только в Студии.]]></string>
+    <string name="_adm_form_dsc_pre_lists_title"><![CDATA[Название списка для использования только в Студии]]></string>
+    <string name="_adm_form_dsc_pre_values_empty"><![CDATA[Вы можете использовать его для элементов, таких как "Пожалуйста, выберите...", которые не могут быть отправлены.]]></string>
+    <string name="_adm_form_dsc_pre_values_lkey"><![CDATA[Название злемента, отображаемое на сайте]]></string>
+    <string name="_adm_form_dsc_search_forms_fields_search_type"><![CDATA[Тип элемента управления в форме поиска]]></string>
     <string name="_adm_form_dsc_search_forms_title"><![CDATA[Название Формы поиска. Отображается только в Студии.]]></string>
-	<string name="_adm_form_err_cannot_process_action"><![CDATA[Невозможно выполнить действие. Отсутствует связанный обработчик.]]></string>
-	<string name="_adm_form_err_displays_edit"><![CDATA[Невозможно обновить дисплей]]></string>
-	<string name="_adm_form_err_displays_title"><![CDATA[Введите заголовок, более 3 символов]]></string>
-	<string name="_adm_form_err_field_add"><![CDATA[Невозможно добавить новое поле]]></string>
-        <string name="_adm_form_err_field_add_already_exists"><![CDATA[Поле с таким же именем уже существует]]></string>
-	<string name="_adm_form_err_field_add_not_allowed"><![CDATA[Поля не могут быть добавлены в эту форму]]></string>
-  <string name="_adm_form_err_field_select_nested_form"><![CDATA[Вложенная форма должна быть выбрана.]]></string>
-        <string name="_adm_form_err_field_caption"><![CDATA[Необходимо имя из как минимум 3 символов.]]></string>
-	<string name="_adm_form_err_field_caption_system"><![CDATA[Необходимо имя из как минимум 3 символов.]]></string>
-	<string name="_adm_form_err_field_checker_error"><![CDATA[Нужно ввести сообщение об ошибке]]></string>
-	<string name="_adm_form_err_field_checker_func"><![CDATA[Нужно выбрать проверочную функцию]]></string>
-	<string name="_adm_form_err_field_checker_params_length_max"><![CDATA[Введите макс. значение, положительное целое число]]></string>
-	<string name="_adm_form_err_field_checker_params_length_min"><![CDATA[Введите мин. значение, положительное целое число]]></string>
-	<string name="_adm_form_err_field_checker_params_preg"><![CDATA[Введите правильное регулярное выражение]]></string>
-	<string name="_adm_form_err_field_edit"><![CDATA[Невозможно обновить поле]]></string>
-	<string name="_adm_form_err_field_show_to"><![CDATA[Невозможно обновить поле]]></string>
-	<string name="_adm_form_err_field_value_doublerange"><![CDATA[Значение по умолчанию должно быть пустым или выглядеть как 12-23]]></string>
-	<string name="_adm_form_err_field_value_number"><![CDATA[Используйте только числовые символы]]></string>
-	<string name="_adm_form_err_field_values"><![CDATA[Нужно выбрать набор данных из списка.]]></string>
-	<string name="_adm_form_err_forms_edit"><![CDATA[Невозможно обновить форму]]></string>
-	<string name="_adm_form_err_forms_title"><![CDATA[Введите название, более 3 символов]]></string>
-        <string name="_adm_form_err_labels_add"><![CDATA[Невозможно добавить метку]]></string>
-        <string name="_adm_form_err_labels_edit"><![CDATA[Невозможно обновить метку]]></string>
-        <string name="_adm_form_err_labels_value"><![CDATA[Метка должна иметь уникальное, не пустое значение.]]></string>
-	<string name="_adm_form_err_missing_params"><![CDATA[Отсутствуют необходимые параметры.]]></string>
-	<string name="_adm_form_err_pre_lists_create"><![CDATA[Невозможно добавить список]]></string>
-	<string name="_adm_form_err_pre_lists_edit"><![CDATA[Невозможно обновить список]]></string>
-	<string name="_adm_form_err_pre_lists_title"><![CDATA[Введите заголовок, более 3 символов]]></string>
-	<string name="_adm_form_err_pre_values_create"><![CDATA[Невозможно добавить элемент]]></string>
-	<string name="_adm_form_err_pre_values_create_forbidden"><![CDATA[Этот список уже используется. Невозможно добавить элемент, не являющийся числом, а также менее 1 или более {0} элементов.]]></string>
-	<string name="_adm_form_err_pre_values_delete"><![CDATA[Невозможно удалить элемент]]></string>
-	<string name="_adm_form_err_pre_values_edit"><![CDATA[Невозможно обновить элемент]]></string>
-	<string name="_adm_form_err_pre_values_lkey"><![CDATA[Введите заголовок, более 1 символа]]></string>
-	<string name="_adm_form_err_search_forms_essential"><![CDATA[Это важное поле. Заполните его, пожалуйста.]]></string>
+    <string name="_adm_form_err_cannot_process_action"><![CDATA[Невозможно выполнить действие. Отсутствует связанный обработчик.]]></string>
+    <string name="_adm_form_err_displays_edit"><![CDATA[Невозможно обновить дисплей]]></string>
+    <string name="_adm_form_err_displays_title"><![CDATA[Введите заголовок, более 3 символов]]></string>
+    <string name="_adm_form_err_field_add"><![CDATA[Невозможно добавить новое поле]]></string>
+    <string name="_adm_form_err_field_add_already_exists"><![CDATA[Поле с таким же именем уже существует]]></string>
+    <string name="_adm_form_err_field_add_not_allowed"><![CDATA[Поля не могут быть добавлены в эту форму]]></string>
+    <string name="_adm_form_err_field_select_nested_form"><![CDATA[Вложенная форма должна быть выбрана.]]></string>
+    <string name="_adm_form_err_field_caption"><![CDATA[Необходимо имя из как минимум 3 символов.]]></string>
+    <string name="_adm_form_err_field_caption_system"><![CDATA[Необходимо имя из как минимум 3 символов.]]></string>
+    <string name="_adm_form_err_field_checker_error"><![CDATA[Нужно ввести сообщение об ошибке]]></string>
+    <string name="_adm_form_err_field_checker_func"><![CDATA[Нужно выбрать проверочную функцию]]></string>
+    <string name="_adm_form_err_field_checker_params_length_max"><![CDATA[Введите макс. значение, положительное целое число]]></string>
+    <string name="_adm_form_err_field_checker_params_length_min"><![CDATA[Введите мин. значение, положительное целое число]]></string>
+    <string name="_adm_form_err_field_checker_params_preg"><![CDATA[Введите правильное регулярное выражение]]></string>
+    <string name="_adm_form_err_field_edit"><![CDATA[Невозможно обновить поле]]></string>
+    <string name="_adm_form_err_field_show_to"><![CDATA[Невозможно обновить поле]]></string>
+    <string name="_adm_form_err_field_value_doublerange"><![CDATA[Значение по умолчанию должно быть пустым или выглядеть как 12-23]]></string>
+    <string name="_adm_form_err_field_value_number"><![CDATA[Используйте только числовые символы]]></string>
+    <string name="_adm_form_err_field_values"><![CDATA[Нужно выбрать набор данных из списка.]]></string>
+    <string name="_adm_form_err_forms_edit"><![CDATA[Невозможно обновить форму]]></string>
+    <string name="_adm_form_err_forms_title"><![CDATA[Введите название, более 3 символов]]></string>
+    <string name="_adm_form_err_labels_add"><![CDATA[Невозможно добавить метку]]></string>
+    <string name="_adm_form_err_labels_edit"><![CDATA[Невозможно обновить метку]]></string>
+    <string name="_adm_form_err_labels_value"><![CDATA[Метка должна иметь уникальное, не пустое значение.]]></string>
+    <string name="_adm_form_err_missing_params"><![CDATA[Отсутствуют необходимые параметры.]]></string>
+    <string name="_adm_form_err_pre_lists_create"><![CDATA[Невозможно добавить список]]></string>
+    <string name="_adm_form_err_pre_lists_edit"><![CDATA[Невозможно обновить список]]></string>
+    <string name="_adm_form_err_pre_lists_title"><![CDATA[Введите заголовок, более 3 символов]]></string>
+    <string name="_adm_form_err_pre_values_create"><![CDATA[Невозможно добавить элемент]]></string>
+    <string name="_adm_form_err_pre_values_create_forbidden"><![CDATA[Этот список уже используется. Невозможно добавить элемент, не являющийся числом, а также менее 1 или более {0} элементов.]]></string>
+    <string name="_adm_form_err_pre_values_delete"><![CDATA[Невозможно удалить элемент]]></string>
+    <string name="_adm_form_err_pre_values_edit"><![CDATA[Невозможно обновить элемент]]></string>
+    <string name="_adm_form_err_pre_values_lkey"><![CDATA[Введите заголовок, более 1 символа]]></string>
+    <string name="_adm_form_err_search_forms_essential"><![CDATA[Это важное поле. Заполните его, пожалуйста.]]></string>
     <string name="_adm_form_err_search_forms_fields_edit"><![CDATA[Не могу обновить поле формы поиска.]]></string>
     <string name="_adm_from_err_search_forms_fields_reset"><![CDATA[Не могу сбросить форму поиска.]]></string>
     <string name="_adm_from_err_search_forms_sortable_fields_reset"><![CDATA[Не могу сбросить форму поиска.]]></string>
     <string name="_adm_form_err_search_forms_edit"><![CDATA[Не могу обновить выбранную форму поиска.]]></string>
     <string name="_adm_form_err_search_forms_title"><![CDATA[Введите имя, более 3 символов]]></string>
-	<string name="_adm_form_txt_all_modules"><![CDATA[Все модули]]></string>
-	<string name="_adm_form_txt_confirm_delete"><![CDATA[Вы уверены, что хотите удалить это поле? Оно будет удалено со всех дисплеев! Вместо этого можно просто отключить его.]]></string>
-  <string name="_adm_form_txt_audit_added"><![CDATA[Добавлено]]></string>
-  <string name="_adm_form_txt_audit_profile"><![CDATA[Профиль]]></string>
-  <string name="_adm_form_txt_audit_content"><![CDATA[Контент]]></string>
-  <string name="_adm_form_txt_audit_module"><![CDATA[Модуль]]></string>
-  <string name="_adm_form_txt_audit_author_content"><![CDATA[Автор контента]]></string>
-  <string name="_adm_pgt_txt_audit_context"><![CDATA[Контекст]]></string>
-  <string name="_adm_pgt_txt_audit_action"><![CDATA[Действие]]></string>
+    <string name="_adm_form_txt_all_modules"><![CDATA[Все модули]]></string>
+    <string name="_adm_form_txt_confirm_delete"><![CDATA[Вы уверены, что хотите удалить это поле? Оно будет удалено со всех дисплеев! Вместо этого можно просто отключить его.]]></string>
+    <string name="_adm_form_txt_audit_added"><![CDATA[Добавлено]]></string>
+    <string name="_adm_form_txt_audit_profile"><![CDATA[Профиль]]></string>
+    <string name="_adm_form_txt_audit_content"><![CDATA[Контент]]></string>
+    <string name="_adm_form_txt_audit_module"><![CDATA[Модуль]]></string>
+    <string name="_adm_form_txt_audit_author_content"><![CDATA[Автор контента]]></string>
+    <string name="_adm_pgt_txt_audit_context"><![CDATA[Контекст]]></string>
+    <string name="_adm_pgt_txt_audit_action"><![CDATA[Действие]]></string>
 
   <string name="_adm_form_txt_badges_text"><![CDATA[Текст]]></string>
   <string name="_adm_form_txt_badges_view"><![CDATA[Вид]]></string>
@@ -886,7 +887,7 @@
   <string name="_adm_form_txt_reports_comments"><![CDATA[Комментарии]]></string>
   <string name="_adm_form_txt_reports_action"><![CDATA[Действия]]></string>
 
-  <string name="_adm_form_txt_displays_edit_popup"><![CDATA[Редактировать "{0}" дисплей]]></string>
+        <string name="_adm_form_txt_displays_edit_popup"><![CDATA[Редактировать "{0}" дисплей]]></string>
 	<string name="_adm_form_txt_displays_gl_fields"><![CDATA[Поля]]></string>
 	<string name="_adm_form_txt_displays_gl_form"><![CDATA[Форма]]></string>
 	<string name="_adm_form_txt_displays_gl_module"><![CDATA[Модуль]]></string>
@@ -928,18 +929,20 @@
 	<string name="_adm_form_txt_field_html_mini"><![CDATA[Минимальный]]></string>
 	<string name="_adm_form_txt_field_html_none"><![CDATA[Без редактора]]></string>
 	<string name="_adm_form_txt_field_html_standard"><![CDATA[Стандартный]]></string>
+        <string name="_adm_form_txt_field_icon"><![CDATA[Иконка]]></string>
+        <string name="_adm_form_txt_field_icon_preview"><![CDATA[Текущая иконка]]></string>
 	<string name="_adm_form_txt_field_info"><![CDATA[Описание]]></string>
         <string name="_adm_form_txt_field_help"><![CDATA[Помощь]]></string>
 	<string name="_adm_form_txt_field_module"><![CDATA[Модуль]]></string>
 	<string name="_adm_form_txt_field_name"><![CDATA[Имя]]></string>
 	<string name="_adm_form_txt_field_object"><![CDATA[Форма]]></string>
         <string name="_adm_form_txt_field_privacy"><![CDATA[Конфиденциальность]]></string>
-  <string name="_adm_form_txt_field_rateable"><![CDATA[Оценивать]]></string>
-  <string name="_adm_form_txt_field_rateable_value_non"><![CDATA[Без оценки]]></string>
-  <string name="_adm_form_txt_field_rateable_value_votes"><![CDATA[Использовать лайков]]></string>
-  <string name="_adm_form_txt_field_rateable_value_reactions"><![CDATA[Использовать реакции]]></string>
+        <string name="_adm_form_txt_field_rateable"><![CDATA[Оценивать]]></string>
+        <string name="_adm_form_txt_field_rateable_value_non"><![CDATA[Без оценки]]></string>
+        <string name="_adm_form_txt_field_rateable_value_votes"><![CDATA[Использовать лайков]]></string>
+        <string name="_adm_form_txt_field_rateable_value_reactions"><![CDATA[Использовать реакции]]></string>
 	<string name="_adm_form_txt_field_required"><![CDATA[Необходимое]]></string>
-  <string name="_adm_form_txt_field_select_nested_form"><![CDATA[Выберите вложенную форму]]></string>
+        <string name="_adm_form_txt_field_select_nested_form"><![CDATA[Выберите вложенную форму]]></string>
 	<string name="_adm_form_txt_field_show_to_popup"><![CDATA[Показывать "{0}" поле формы для: ]]></string>
         <string name="_adm_form_txt_field_type_block_end"><![CDATA[конец блока]]></string>
 	<string name="_adm_form_txt_field_type_block_header"><![CDATA[заголовок блока]]></string>
@@ -949,7 +952,7 @@
 	<string name="_adm_form_txt_field_type_checkbox_set"><![CDATA[набор флажков]]></string>
 	<string name="_adm_form_txt_field_type_custom"><![CDATA[индивидуальный]]></string>
 	<string name="_adm_form_txt_field_type_datepicker"><![CDATA[дата]]></string>
-    <string name="_adm_form_txt_field_type_dateselect"><![CDATA[выбор даты]]></string>
+        <string name="_adm_form_txt_field_type_dateselect"><![CDATA[выбор даты]]></string>
 	<string name="_adm_form_txt_field_type_datepicker_range"><![CDATA[диапазон даты]]></string>
 	<string name="_adm_form_txt_field_type_datepicker_range_age"><![CDATA[диапазон возраста]]></string>
 	<string name="_adm_form_txt_field_type_datetime"><![CDATA[дата и время]]></string>
@@ -963,7 +966,7 @@
 	<string name="_adm_form_txt_field_type_image"><![CDATA[картинка]]></string>
 	<string name="_adm_form_txt_field_type_input_set"><![CDATA[набор полей ввода]]></string>
 	<string name="_adm_form_txt_field_type_location"><![CDATA[местонахождение]]></string>
-  <string name="_adm_form_txt_field_type_location_radius"><![CDATA[радиус местонахождения]]></string>
+        <string name="_adm_form_txt_field_type_location_radius"><![CDATA[радиус местонахождения]]></string>
 	<string name="_adm_form_txt_field_type_number"><![CDATA[число]]></string>
 	<string name="_adm_form_txt_field_type_password"><![CDATA[пароль]]></string>
 	<string name="_adm_form_txt_field_type_radio_set"><![CDATA[набор переключателей]]></string>
@@ -980,7 +983,7 @@
         <string name="_adm_form_txt_field_type_time"><![CDATA[время]]></string>
 	<string name="_adm_form_txt_field_type_value"><![CDATA[инфо]]></string>
 	<string name="_adm_form_txt_field_unique"><![CDATA[Уникальное]]></string>
-  <string name="_adm_form_txt_field_type_nested_form"><![CDATA[вложенная форма]]></string>
+        <string name="_adm_form_txt_field_type_nested_form"><![CDATA[вложенная форма]]></string>
 	<string name="_adm_form_txt_field_value_button"><![CDATA[Заголовок]]></string>
 	<string name="_adm_form_txt_field_value_checkbox"><![CDATA[Значение]]></string>
 	<string name="_adm_form_txt_field_value_custom_text"><![CDATA[Индивидуальный текст]]></string>

+ 52 - 1
studio/template/scripts/BxBaseStudioFormsField.php

@@ -283,6 +283,10 @@ class BxBaseStudioFormsField extends BxDolStudioFormsField
                         $aForm['inputs'][$sKey]['checked'] = (int)$this->aField[$sKey];
                         break;
 
+                    case 'icon_preview':
+                        $aForm['inputs'][$sKey]['content'] = $this->getFieldIconPreview($this->aField['id'], $this->aField['icon']);
+                        break;
+
                     case 'collapsed':
                         $aForm['inputs'][$sKey]['checked'] = (int)$this->aField[$sKey];
                         break;
@@ -526,6 +530,34 @@ class BxBaseStudioFormsField extends BxDolStudioFormsField
         return $mixedResult;
     }
 
+    protected function getFieldIconPreview($iId, $sIcon)
+    {
+        $oTemplate = BxDolStudioTemplate::getInstance();
+
+        $aIcons = BxTemplFunctions::getInstanceWithTemplate($oTemplate)->getIcon($sIcon);
+
+        $sIconHtml = $aIcons[2] . $aIcons[3] . $aIcons[4];
+        $bIconHtml = !empty($sIconHtml);
+
+        return $oTemplate->parseHtmlByName('item_icon_preview.html', [
+            'id' => $iId,
+            'bx_if:show_icon_empty' => [
+                'condition' => !$bIconHtml,
+                'content' => []
+            ],
+            'bx_if:show_icon_image' => [
+                'condition' => false,
+                'content' => []
+            ],
+            'bx_if:show_icon_html' => [
+                'condition' => $bIconHtml,
+                'content' => [
+                    'icon' => $sIconHtml
+                ]
+            ]
+        ]);
+    }
+
     protected function getCheckerFields($bMandatory = false)
     {
         $aResult = array(
@@ -1047,7 +1079,7 @@ class BxBaseStudioFormsFieldBlockHeader extends BxBaseStudioFormsField
                     'caption' => _t('_adm_form_txt_field_rateable'),
                     'info' => _t('_adm_form_dsc_field_rateable'),
                     'values' => array(
-                		array('key' => '', 'value' => _t('_adm_form_txt_field_rateable_value_non')),
+                        array('key' => '', 'value' => _t('_adm_form_txt_field_rateable_value_non')),
                         array('key' => 'sys_form_fields_votes', 'value' => _t('_adm_form_txt_field_rateable_value_votes')),
                         array('key' => 'sys_form_fields_reaction', 'value' => _t('_adm_form_txt_field_rateable_value_reactions'))
                 	),
@@ -1059,6 +1091,25 @@ class BxBaseStudioFormsFieldBlockHeader extends BxBaseStudioFormsField
                         'pass' => 'Xss',
                     )
                 ),
+                'icon' => array(
+                    'type' => 'textarea',
+                    'name' => 'icon',
+                    'caption' => _t('_adm_form_txt_field_icon'),
+                    'info' => _t('_adm_form_dsc_field_icon'),
+                    'value' => '',
+                    'code' => 1,
+                    'required' => '0',
+                    'attrs' => array('class' => 'bx-form-input-textarea-small'),
+                    'db' => array (
+                        'pass' => 'Xss',
+                    ),
+                ),
+                'icon_preview' => array(
+                    'type' => 'custom',
+                    'name' => 'icon_preview',
+                    'caption' => _t('_adm_form_txt_field_icon_preview'),
+                    'content' => ''
+                ),
                 'controls' => array(
                     'name' => 'controls',
                     'type' => 'input_set',

+ 10 - 1
template/form_view_row.html

@@ -1,4 +1,13 @@
 <div class="bx-form-row-view-wrapper bx-form-row-view-wrapper-__type__ __class__ bx-def-padding-sec-top">
-    <div class="bx-form-row-view-caption">__caption__:</div>
+    <div class="bx-form-row-view-caption">
+        <bx_if:show_icon>
+            <span class="bx-form-row-vc-icon">
+                <bx_if:icon><i class="sys-icon __icon__"></i></bx_if:icon>
+                <bx_if:icon-html>__icon__</bx_if:icon-html>
+                <bx_if:image_inline>__image__</bx_if:image_inline>
+            </span>
+        </bx_if:show_icon>
+        <span class="bx-form-row-vc-text">__caption__:</span>
+    </div>
     <div class="bx-form-row-view-value __class_value__">__value__</div>
 </div>

+ 24 - 0
template/scripts/BxBaseFormView.php

@@ -714,9 +714,33 @@ BLAH;
         $sClass = !empty($aParams['class']) ? $aParams['class'] : '';
         $sClassValue = !empty($aParams['class_value']) ? $aParams['class_value'] : '';
 
+        $aTmplVarsIcon = [];
+        if(!empty($aInput['icon'])) {
+            list ($sIcon, $sIconUrl, $sIconA, $sIconHtml) = BxTemplFunctions::getInstanceWithTemplate($this->oTemplate)->getIcon($aInput['icon']);
+
+            $aTmplVarsIcon = [
+                'bx_if:icon' => [
+                    'condition' => (bool)$sIcon,
+                    'content' => ['icon' => $sIcon],
+                ],
+                'bx_if:icon-html' => [
+                    'condition' => (bool)$sIconHtml,
+                    'content' => ['icon' => $sIconHtml],
+                ],
+                'bx_if:image_inline' => [
+                    'condition' => false,
+                    'content' => ['image' => ''],
+                ]
+            ];
+        }
+
         return $this->oTemplate->parseHtmlByName('form_view_row.html', [
             'type' => $aInput['type'], 
             'class' => $sClass,
+            'bx_if:show_icon' => [
+                'condition' => !empty($aTmplVarsIcon),
+                'content' => $aTmplVarsIcon
+            ],
             'caption' => isset($aInput['caption']) ? bx_process_output($aInput['caption']) : '',
             'class_value' => $sClassValue,
             'value' => $sValue