Файл шаблона admin.extrafields.tpl в контексте движка Cotonti CMF отвечает за отображение и обработку пользовательских дополнительных полей (extrafields) в административной панели системы. Это файл с элементами формы, который предоставляет интерфейс для настройки и управления дополнительными полями, которые могут быть добавлены к различным объектам в системе, таким как пользователи, страницы или другие сущности.
Основное назначение и место в системе Cotonti:
- Основное назначение: Файл отвечает за отображение и функциональность полей, которые могут быть настроены администраторами через интерфейс управления. Эти поля могут быть различных типов: текстовые, числовые, дата-время, флажки, выпадающие списки, файлы и т.д.
- Место в системе: Этот файл находится в папке шаблонов административной части Cotonti, и используется для предоставления пользователю визуального интерфейса для работы с дополнительными полями. Код в этом файле взаимодействует с серверной логикой и используется для динамического обновления параметров полей в зависимости от выбранного типа поля.
Суть содержания кода и выполняемые задачи:
Код в шаблоне определяет динамическое поведение форм, в частности, изменяя доступность и подсказки для различных параметров в зависимости от выбранного типа дополнительного поля. Основной функционал включает:
- Обработку изменений типа поля: При изменении типа поля (например, выбор
input,select,fileи других) скрипт обновляет доступные параметры и подсказки для этого поля. - Изменение атрибутов и состояния элементов: На основе типа поля активируются или деактивируются различные элементы формы (например, выбор вариаций, регулярных выражений, диапазонов и т.д.).
- Локализация подсказок: Подсказки для различных параметров поля, такие как допустимые значения, форматы и другие инструкции, отображаются на основе локализованных строк, что позволяет интерфейсу адаптироваться под различные языки.
Комментарий по конструкциям <!-- ... -->:
-
<!-- BEGIN: MAIN -->и<!-- END: MAIN -->: Эти строки указывают на начало и конец основного логического блока, который будет обрабатываться движком Cotonti через метод$t->parse('MAIN'). Эти метки служат для управления основными структурными блоками шаблона и обеспечивают правильную обработку его содержимого системой. -
Конструкции с переменными и условиями внутри
<!-- ... -->, например,<!-- IF {PHP.isInstalled} AND {PHP.exists} -->: Такие конструкции используются для вставки переменных и условий, которые определяют, будет ли отображаться тот или иной элемент шаблона, в зависимости от состояния системы. Это позволяет шаблону адаптироваться под текущее состояние приложения (например, показывать дополнительные поля только в том случае, если система настроена должным образом).
Характеристика стиля HTML/CSS/JS:
- HTML: В шаблоне используется стандартная структура HTML. Основные элементы включают формы, таблицы и различные поля ввода. HTML-разметка в файле достаточно проста, без сложных вложенных элементов. Она организована с целью обеспечить простоту и удобство в заполнении данных администратором.
- CSS: Стилевое оформление непосредственно не описано в этом файле, но элементы интерфейса (поля ввода, кнопки и т.д.) зависят от внешнего стиля, который подключается через общую CSS-базу Cotonti. Теги
classприменяются для стилизации отдельных элементов формы, таких как поля типаexfldtype,exfldvariantsи т.д. - JavaScript: Используемый JavaScript код отвечает за динамическое обновление состояния формы. Он использует библиотеку jQuery для управления поведением элементов интерфейса. Код обрабатывает события изменения значений в полях и соответственно меняет доступность и подсказки для других элементов. Этот скрипт отличается практичностью и фокусируется на взаимодействии с пользователем в реальном времени.
Итоговая характеристика:
Шаблон admin.extrafields.tpl представляет собой интерактивную форму с динамическим обновлением данных, используемую для управления дополнительными полями в админке Cotonti. Код на JavaScript обеспечивает правильную работу этих форм, обновляя элементы и их состояния в зависимости от выбранных значений. Шаблон использует базовые HTML-элементы с внешними стилями и динамическим поведением на клиентской стороне, реализованным с помощью jQuery.
<!-- BEGIN: MAIN -->
{FILE "{PHP.cfg.system_dir}/admin/tpl/warnings.tpl"} <!-- Загружает и вставляет шаблон предупреждений, определенный в файле warnings.tpl. Это может быть полезно для отображения сообщений об ошибках или уведомлений. -->
<!-- BEGIN: TABLELIST --> <!-- Начало логического блока TABLELIST, который выводит список таблиц с дополнительными полями -->
<div class="block">
<h2>{PHP.L.adm_extrafields}</h2> <!-- Отображает заголовок секции, используя локализованную строку для "Дополнительных полей". -->
<div class="wrapper">
<table class="cells"> <!-- Начинает таблицу для отображения списка таблиц с дополнительными полями -->
<!-- BEGIN: ROW --> <!-- Начало цикла для вывода каждой строки таблицы с дополнительными полями -->
<tr>
<td>
<figure class="w-5 margin0" style="display: inline-block">{ADMIN_EXTRAFIELDS_ROW_ICON}</figure> <!-- Отображает иконку строки, которая передается через переменную ADMIN_EXTRAFIELDS_ROW_ICON. Иконка, скорее всего, используется для визуализации элемента. -->
<a href="{ADMIN_EXTRAFIELDS_ROW_TABLEURL}">{ADMIN_EXTRAFIELDS_ROW_TABLENAME}</a> <!-- Ссылка на таблицу с дополнительными полями, где ADMIN_EXTRAFIELDS_ROW_TABLEURL — это URL таблицы, а ADMIN_EXTRAFIELDS_ROW_TABLENAME — имя таблицы. -->
</td>
</tr>
<!-- END: ROW --> <!-- Конец цикла вывода одной строки таблицы -->
</table>
<div class="margintop10">
<a href="{ADMIN_EXTRAFIELDS_ALLTABLES}">{PHP.L.adm_extrafields_all}</a> <!-- Ссылка для просмотра всех таблиц с дополнительными полями, где ADMIN_EXTRAFIELDS_ALLTABLES указывает на URL страницы, а {PHP.L.adm_extrafields_all} — локализованный текст для этой ссылки. -->
</div>
</div>
</div>
<!-- END: TABLELIST --> <!-- Конец логического блока TABLELIST -->
предоставляет интерфейс для просмотра списка таблиц с дополнительными полями, а также для доступа к более подробной информации о каждой таблице.
Основные задачи и функции:
- Вывод списка таблиц с дополнительными полями в виде таблицы, где каждая строка представляет собой отдельную таблицу.
- Возможность перейти по ссылке на страницу с детальной информацией о дополнительном поле каждой таблицы.
- Предоставление ссылки для просмотра всех таблиц с дополнительными полями.
<!-- BEGIN: TABLE --> <!-- Обозначает начало блока, который будет обработан движком через $t->parse('TABLE'); -->
<div class="block">
<form action="{ADMIN_EXTRAFIELDS_URL_FORM_EDIT}" method="post"> <!-- {ADMIN_EXTRAFIELDS_URL_FORM_EDIT} - URL для отправки формы редактирования данных -->
<div class="wrapper">
<table class="cells">
<tr>
<td class="coltop"></td>
<td class="coltop w-40">{PHP.L.extf_Name}</td> <!-- {PHP.L.extf_Name} - отображение локализованного текста для "Name" -->
<td class="coltop">{PHP.L.extf_Type}</td> <!-- {PHP.L.extf_Type} - отображение локализованного текста для "Type" -->
<td class="coltop w-40">{PHP.L.adm_extrafield_params}</td> <!-- {PHP.L.adm_extrafield_params} - отображение локализованного текста для "Parameters" -->
<td class="coltop">{PHP.L.Action}</td> <!-- {PHP.L.Action} - отображение локализованного текста для "Action" -->
</tr>
<!-- BEGIN: EXTRAFIELDS_ROW --> <!-- Обозначает начало блока для обработки строки дополнительных полей -->
<tr id="ex{ADMIN_EXTRAFIELDS_ROW_ID}"> <!-- {ADMIN_EXTRAFIELDS_ROW_ID} - уникальный ID строки для этого дополнительного поля -->
<td class="{ADMIN_EXTRAFIELDS_ROW_ODDEVEN}"> <!-- {ADMIN_EXTRAFIELDS_ROW_ODDEVEN} - класс для чередования четных и нечетных строк -->
{ADMIN_EXTRAFIELDS_ROW_ENABLED} <!-- {ADMIN_EXTRAFIELDS_ROW_ENABLED} - выводит статус включения/выключения данного поля -->
</td>
<td class="{ADMIN_EXTRAFIELDS_ROW_ODDEVEN}"> <!-- {ADMIN_EXTRAFIELDS_ROW_ODDEVEN} - класс для чередования четных и нечетных строк -->
{ADMIN_EXTRAFIELDS_ROW_NAME} <!-- {ADMIN_EXTRAFIELDS_ROW_NAME} - название дополнительного поля -->
<label class="small margintop10">{PHP.L.extf_Description}</label> <!-- {PHP.L.extf_Description} - локализованный текст для "Description" -->
{ADMIN_EXTRAFIELDS_ROW_DESCRIPTION} <!-- {ADMIN_EXTRAFIELDS_ROW_DESCRIPTION} - описание дополнительного поля -->
<label class="small margintop10">{PHP.L.extf_Base_HTML}</label> <!-- {PHP.L.extf_Base_HTML} - локализованный текст для "HTML" -->
{ADMIN_EXTRAFIELDS_ROW_HTML} <!-- {ADMIN_EXTRAFIELDS_ROW_HTML} - вывод HTML-кода для поля -->
</td>
<td class="{ADMIN_EXTRAFIELDS_ROW_ODDEVEN}"> <!-- {ADMIN_EXTRAFIELDS_ROW_ODDEVEN} - класс для чередования четных и нечетных строк -->
{ADMIN_EXTRAFIELDS_ROW_SELECT} <!-- {ADMIN_EXTRAFIELDS_ROW_SELECT} - выбор типа поля (например, текстовое поле, флажок) -->
<p class="small">{PHP.L.adm_extrafield_parse}</p> <!-- {PHP.L.adm_extrafield_parse} - локализованный текст для "Parse" -->
{ADMIN_EXTRAFIELDS_ROW_PARSE} <!-- {ADMIN_EXTRAFIELDS_ROW_PARSE} - возможность для парсинга (если активировано) -->
<p class="small">{ADMIN_EXTRAFIELDS_ROW_REQUIRED}</p> <!-- {ADMIN_EXTRAFIELDS_ROW_REQUIRED} - требуется ли это поле (обязательное) -->
</td>
<td class="{ADMIN_EXTRAFIELDS_ROW_ODDEVEN}"> <!-- {ADMIN_EXTRAFIELDS_ROW_ODDEVEN} - класс для чередования четных и нечетных строк -->
{ADMIN_EXTRAFIELDS_ROW_PARAMS} <!-- {ADMIN_EXTRAFIELDS_ROW_PARAMS} - параметры дополнительного поля -->
<label class="small margintop10">{PHP.L.adm_extrafield_selectable_values}</label> <!-- {PHP.L.adm_extrafield_selectable_values} - локализованный текст для "Selectable Values" -->
{ADMIN_EXTRAFIELDS_ROW_VARIANTS} <!-- {ADMIN_EXTRAFIELDS_ROW_VARIANTS} - варианты для поля (если они есть) -->
<label class="small margintop10">{PHP.L.adm_extrafield_default}</label> <!-- {PHP.L.adm_extrafield_default} - локализованный текст для "Default" -->
{ADMIN_EXTRAFIELDS_ROW_DEFAULT} <!-- {ADMIN_EXTRAFIELDS_ROW_DEFAULT} - значение по умолчанию для поля -->
</td>
<td class="centerall {ADMIN_EXTRAFIELDS_ROW_ODDEVEN}"> <!-- {ADMIN_EXTRAFIELDS_ROW_ODDEVEN} - класс для чередования четных и нечетных строк -->
<a href="{ADMIN_EXTRAFIELDS_ROW_DELETE_CONFIRM_URL}" class="confirmLink button">{PHP.L.Delete}</a> <!-- {PHP.L.Delete} - локализованный текст для "Delete" с ссылкой для подтверждения удаления -->
</td>
</tr>
<!-- END: EXTRAFIELDS_ROW --> <!-- Конец обработки строки для дополнительного поля -->
<!-- IF {ADMIN_EXTRAFIELDS_ON_PAGE_ITEMS} > 0 --> <!-- Условие для отображения кнопки обновления, если на странице есть элементы -->
<tr>
<td class="valid" colspan="5">
<input type="submit" value="{PHP.L.Update}" onclick="location.href='{ADMIN_EXTRAFIELDS_ROW_FORM_URL}'" class="confirm" /> <!-- {PHP.L.Update} - локализованный текст для кнопки "Update" с перенаправлением на форму редактирования -->
</td>
</tr>
<!-- ENDIF -->
<!-- IF !{ADMIN_EXTRAFIELDS_TOTALITEMS} --> <!-- Условие для отображения сообщения о отсутствии данных -->
<tr>
<td class="centerall" colspan="5">{PHP.L.None}</td> <!-- {PHP.L.None} - сообщение, если нет дополнительных полей -->
</tr>
<!-- ENDIF -->
</table>
</div>
</form>
<!-- IF {ADMIN_EXTRAFIELDS_TOTALITEMS} --> <!-- Условие для отображения пагинации, если есть дополнительные элементы -->
<p class="paging">
{ADMIN_EXTRAFIELDS_PAGINATION_PREV}{ADMIN_EXTRAFIELDS_PAGNAV}{ADMIN_EXTRAFIELDS_PAGINATION_NEXT} <!-- {ADMIN_EXTRAFIELDS_PAGINATION_PREV} и {ADMIN_EXTRAFIELDS_PAGNAV} и {ADMIN_EXTRAFIELDS_PAGINATION_NEXT} - пагинация для вывода полей -->
<span>{PHP.L.Total}: {ADMIN_EXTRAFIELDS_TOTALITEMS}, {PHP.L.Onpage}: {ADMIN_EXTRAFIELDS_ON_PAGE_ITEMS}</span> <!-- {PHP.L.Total} и {PHP.L.Onpage} - локализованные тексты для отображения общего количества элементов и количества элементов на странице -->
</p>
<!-- ENDIF -->
</div>
<!-- END: TABLE --> <!-- Конец блока таблицы, который будет обработан движком через $t->parse('TABLE'); -->
<div class="block">
<h2>{PHP.L.adm_extrafield_new}:</h2> <!-- Отображает текст "Добавить новое поле", где {PHP.L.adm_extrafield_new} - это строка, которая будет заменена на локализованный текст из файла языковых переменных. -->
<div class="wrapper">
<form action="{ADMIN_EXTRAFIELDS_URL_FORM_ADD}" method="post"> <!-- Форма отправляется на URL, указанный в {ADMIN_EXTRAFIELDS_URL_FORM_ADD}, для добавления нового поля в базу данных. -->
<table class="cells info">
<thead>
<tr>
<th class="w-45">{PHP.L.extf_Name}</th> <!-- Заголовок столбца для имени поля, {PHP.L.extf_Name} заменяется на локализованное значение "Название". -->
<th>{PHP.L.extf_Type}</th> <!-- Заголовок столбца для типа поля, {PHP.L.extf_Type} заменяется на локализованное значение "Тип". -->
<th class="w-45">{PHP.L.adm_extrafield_params}</th> <!-- Заголовок столбца для параметров поля, {PHP.L.adm_extrafield_params} заменяется на локализованное значение "Параметры". -->
</tr>
</thead>
<tbody>
<tr id="exnew">
<td>
{ADMIN_EXTRAFIELDS_NAME} <!-- Вставляет поле для ввода имени нового дополнительного поля. -->
<label class="small margintop10">{PHP.L.extf_Description}</label> <!-- Локализованная надпись "Описание", описание поля. -->
{ADMIN_EXTRAFIELDS_DESCRIPTION} <!-- Вставляет поле для ввода описания нового дополнительного поля. -->
<label class="small margintop10">{PHP.L.extf_Base_HTML}</label> <!-- Локализованная надпись "Базовый HTML". -->
{ADMIN_EXTRAFIELDS_HTML} <!-- Вставляет поле для ввода HTML-кода для дополнительного поля. -->
</td>
<td>
{ADMIN_EXTRAFIELDS_SELECT} <!-- Вставляет выпадающий список для выбора типа поля. -->
<p class="small">{PHP.L.adm_extrafield_parse}</p> <!-- Локализованная надпись "Парсить". -->
{ADMIN_EXTRAFIELDS_PARSE} <!-- Вставляет флажок или поле для указания, нужно ли парсить значение. -->
<p class="small">{ADMIN_EXTRAFIELDS_REQUIRED}</p> <!-- Локализованная надпись "Обязательно". -->
</td>
<td>
{ADMIN_EXTRAFIELDS_PARAMS} <!-- Вставляет поле для ввода параметров дополнительного поля. -->
<label class="small margintop10">{PHP.L.adm_extrafield_selectable_values}</label> <!-- Локализованная надпись "Доступные значения для выбора". -->
{ADMIN_EXTRAFIELDS_VARIANTS} <!-- Вставляет поле для ввода вариантов значений для поля. -->
<label class="small margintop10">{PHP.L.adm_extrafield_default}</label> <!-- Локализованная надпись "Значение по умолчанию". -->
{ADMIN_EXTRAFIELDS_DEFAULT} <!-- Вставляет поле для ввода значения по умолчанию для нового поля. -->
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="3">
<input type="checkbox" name="field_noalter" /> {PHP.L.adm_extrafield_noalter} <!-- Чекбокс для указания, что поле не должно быть изменяемым, {PHP.L.adm_extrafield_noalter} - локализованный текст для этой опции. -->
<input type="submit" class="confirm" value="{PHP.L.Add}" /> <!-- Кнопка для отправки формы, с текстом "Добавить" (локализованный). -->
</td>
</tr>
</tfoot>
</table>
</form>
</div>
</div>
<!-- END: TABLE --> <!-- Закрывает логический блок TABLE -->
<script type="text/javascript">
//<![CDATA[ <!-- Указывает, что этот блок кода содержит JavaScript, который должен быть обработан браузером как таковой, и не должен интерпретироваться как HTML. -->
var exFLDHELPERS = "{ADMIN_EXTRAFIELDS_TAGS}"; <!-- Переменная для хранения строки тегов, которая будет заменена на соответствующие данные из {ADMIN_EXTRAFIELDS_TAGS}. -->
var exnovars = "{PHP.L.adm_extrafields_help_notused}"; <!-- Переменная для локализованного текста "Не используется", заменяется на строку из {PHP.L.adm_extrafields_help_notused}. -->
var exvariants = "{PHP.L.adm_extrafields_help_variants}"; <!-- Переменная для локализованного текста "Варианты", заменяется на строку из {PHP.L.adm_extrafields_help_variants}. -->
var exrange = "{PHP.L.adm_extrafields_help_range}"; <!-- Переменная для локализованного текста "Диапазон", заменяется на строку из {PHP.L.adm_extrafields_help_range}. -->
var exdata = "{PHP.L.adm_extrafields_help_data}"; <!-- Переменная для локализованного текста "Данные", заменяется на строку из {PHP.L.adm_extrafields_help_data}. -->
var exregex = "{PHP.L.adm_extrafields_help_regex}"; <!-- Переменная для локализованного текста "Регулярные выражения", заменяется на строку из {PHP.L.adm_extrafields_help_regex}. -->
var exfile = "{PHP.L.adm_extrafields_help_file}"; <!-- Переменная для локализованного текста "Файл", заменяется на строку из {PHP.L.adm_extrafields_help_file}. -->
var exseparator = "{PHP.L.adm_extrafields_help_separator}"; <!-- Переменная для локализованного текста "Разделитель", заменяется на строку из {PHP.L.adm_extrafields_help_separator}. -->
$(document).ready(function(){ <!-- Функция, которая будет выполнена после загрузки документа. -->
$('body').on("change", '.exfldtype', function(){ <!-- Привязываем обработчик события "change" к элементам с классом .exfldtype, чтобы отреагировать на изменение. -->
var exParent = $(this).closest('tr'); <!-- Находим ближайший родительский элемент <tr> для текущего элемента. -->
var exvalid = $(this).attr('value'); <!-- Получаем значение, выбранное в поле с классом .exfldtype. -->
if(exvalid == 'select' || exvalid == 'radio' || exvalid == 'checklistbox' || exvalid == 'file') <!-- Если выбран один из этих типов, то... -->
{
if (exvalid == 'file') {
$(exParent).find('.exfldvariants').attr('title', 'jpg, png, pdf, zip,..'); <!-- Для типа 'file' устанавливаем подсказку для поля с классом .exfldvariants. -->
} else {
$(exParent).find('.exfldvariants').attr('title',exvariants); <!-- Для других типов устанавливаем подсказку из exvariants. -->
}
$(exParent).find('.exfldvariants').removeAttr("disabled"); <!-- Разрешаем использование поля .exfldvariants, убираем атрибут disabled. -->
}
else
{
$(exParent).find('.exfldvariants').attr('title', exnovars); <!-- Для остальных типов устанавливаем подсказку "Не используется". -->
$(exParent).find('.exfldvariants').attr('disabled', 'disabled'); <!-- Делаем поле .exfldvariants недоступным. -->
}
// Обработка различных типов с их соответствующими подсказками для .exfldparams
switch(exvalid)
{
case 'input':
$(exParent).find('.exfldparams').attr('title',exregex); <!-- Для типа 'input' устанавливаем подсказку из exregex. -->
$(exParent).find('.exfldparams').removeAttr("disabled"); <!-- Разрешаем использование .exfldparams. -->
break;
case 'inputint':
$(exParent).find('.exfldparams').attr('title',exrange); <!-- Для типа 'inputint' устанавливаем подсказку из exrange. -->
$(exParent).find('.exfldparams').removeAttr("disabled"); <!-- Разрешаем использование .exfldparams. -->
break;
case 'currency':
$(exParent).find('.exfldparams').attr('title',exrange); <!-- Для типа 'currency' устанавливаем подсказку из exrange. -->
$(exParent).find('.exfldparams').removeAttr("disabled"); <!-- Разрешаем использование .exfldparams. -->
break;
case 'double':
$(exParent).find('.exfldparams').attr('title',exrange); <!-- Для типа 'double' устанавливаем подсказку из exrange. -->
$(exParent).find('.exfldparams').removeAttr("disabled"); <!-- Разрешаем использование .exfldparams. -->
break;
case 'textarea':
$(exParent).find('.exfldparams').attr('title',exnovars); <!-- Для типа 'textarea' устанавливаем подсказку "Не используется". -->
$(exParent).find('.exfldparams').attr('disabled', 'disabled'); <!-- Делаем .exfldparams недоступным. -->
break;
case 'select':
$(exParent).find('.exfldparams').attr('title',exnovars); <!-- Для типа 'select' устанавливаем подсказку "Не используется". -->
$(exParent).find('.exfldparams').attr('disabled', 'disabled'); <!-- Делаем .exfldparams недоступным. -->
break;
case 'checkbox':
$(exParent).find('.exfldparams').attr('title',exnovars); <!-- Для типа 'checkbox' устанавливаем подсказку "Не используется". -->
$(exParent).find('.exfldparams').attr('disabled', 'disabled'); <!-- Делаем .exfldparams недоступным. -->
break;
case 'radio':
$(exParent).find('.exfldparams').attr('title',exnovars); <!-- Для типа 'radio' устанавливаем подсказку "Не используется". -->
$(exParent).find('.exfldparams').attr('disabled', 'disabled'); <!-- Делаем .exfldparams недоступным. -->
break;
case 'datetime':
$(exParent).find('.exfldparams').attr('title',exdata); <!-- Для типа 'datetime' устанавливаем подсказку из exdata. -->
$(exParent).find('.exfldparams').removeAttr("disabled"); <!-- Разрешаем использование .exfldparams. -->
break;
case 'file':
$(exParent).find('.exfldparams').attr('title',exfile); <!-- Для типа 'file' устанавливаем подсказку из exfile. -->
$(exParent).find('.exfldparams').removeAttr("disabled"); <!-- Разрешаем использование .exfldparams. -->
break;
case 'country':
$(exParent).find('.exfldparams').attr('title',exnovars); <!-- Для типа 'country' устанавливаем подсказку "Не используется". -->
$(exParent).find('.exfldparams').attr('disabled', 'disabled'); <!-- Делаем .exfldparams недоступным. -->
break;
case 'range':
$(exParent).find('.exfldparams').attr('title',exrange); <!-- Для типа 'range' устанавливаем подсказку из exrange. -->
$(exParent).find('.exfldparams').removeAttr("disabled"); <!-- Разрешаем использование .exfldparams. -->
break;
case 'checklistbox':
$(exParent).find('.exfldparams').attr('title',exseparator); <!-- Для типа 'checklistbox' устанавливаем подсказку из exseparator. -->
$(exParent).find('.exfldparams').removeAttr("disabled"); <!-- Разрешаем использование .exfldparams. -->
break;
}
// Если поле .exfldname не пустое, то обновляем подсказки
if($(exParent).find('.exfldname').attr('value') != '')
{
var exhelper = $(exParent).find('.exfldname').attr('value').toUpperCase(); <!-- Получаем значение поля .exfldname и преобразуем в верхний регистр. -->
exhelper = exFLDHELPERS.replace(/XXXXX/g, exhelper); <!-- Заменяем "XXXXX" в строке exFLDHELPERS на значение из .exfldname. -->
$(exParent).find('.exfldname').attr('title',exhelper); <!-- Устанавливаем подсказку для поля .exfldname. -->
$(exParent).find('.exflddesc').attr('title',exhelper); <!-- Устанавливаем подсказку для поля .exflddesc. -->
}
else
{
$(exParent).find('.exfldname').removeAttr("title"); <!-- Убираем подсказку для .exfldname, если оно пустое. -->
$(exParent).find('.exflddesc').removeAttr("title"); <!-- Убираем подсказку для .exflddesc, если .exfldname пустое. -->
}
});
$(".exfldtype").change(); <!-- Инициализируем обработку изменения значения для всех элементов .exfldtype. -->
});
//]]> <!-- Закрывает блок CDATA. -->
</script>
<!-- END: MAIN --> <!-- Конец основного блока шаблона. -->