This is a wiki-based Developers Guide for In-Portal Open Source CMS. The purpose of this guide is to provide advanced users, web developers and programmers with documentation on how to expand, customize and improve the functionality and the code the In-Portal software. Please consider contributing to our documentation writing effort.
На каждой, использующейся в административной консоли, форме встречаются элементы ввода. Элементы ввода являются одним из основных способов редактирования записей из базы данных. Все упомянутые в данной статье элементы ввода объявлены в шаблоне "incs/form_blocks.tpl" (в платформе этот шаблон заменён шаблоном "proj-base/incs/form_blocks.tpl"). Каждый элемент состоит из 2 частей - левой и правой. В левой части находиться:
название поля;
пометка о том, что поле является обязательным к заполнению;
дополнительные кнопки (напр. открытия FCKEditor);
В правой части находиться сам элемент ввода. Т.к. элементов и способов ввода информации может быть много, то на каждый из них создан отдельный блок. В общей форме все такого рода блоки называются "inp_edit_<type>", где <type> - это слово, по которому можно узнать, что за блок будет нарисован.
У всех, из ниже перечисленных блоков есть несколько общих параметров, которые будут перечислены далее.
параметр
описание
prefix(string)
В данном параметре задаётся префикс того unit config, чья запись будет редактироваться на форме.
field(string)
Название поля (из базы данных или виртуального), значение которого будет показано или будет редактироваться в этом блоке.
title(string)
Название фразы, перевод которой будет отображён в левой части блока в качестве названия поля для пользователей. Согласно правилам назначения имён название фразы должно начинаться с "la_fld_".
is_last(int)
Данный параметр позволяет указать, что этот элемент на форме является последним. Обычно такие элементы оформляются специальным образом.
Данный блок предназначен для вывода значения какого либо поля, без возможности его редактирования на форме.
параметр
описание
hint_label(string)
Название фразы, перевод которой должен быть показан в качестве подсказки справа от поля ввода.
as_label(int)
Если данный параметр установлен, то значение в поле будет интерпретировано как название фразы и будет переведено перед отображением на форме.
currency(string)
Для полей, содержащих цену позволяет задать ISO код валюты, в которой нужно показывать значение данного поля (значение автоматически пересчитывается в зависимости от куса указанной валюты к курсу основной валюты сайта). Также можно передать значение "selected", что приведёт к тому, что цена будет выводиться в валюте, которую выбрал пользователь. Например будет выведено "USD 15.11", когда в базе данных будет значение "15.11".
style(string)
Оформление поля с помощью стандартных стилей (HTML элемент).
format(string)
Данный параметр позволяет задать другой формат вывода данных для поля. Формат, переданный в блоке, является более приоритетным, чем формат указанный в unit config.
nl2br(int)
При передаче данного параметра на выводимое значение будет применена функция nl2br.
no_special(int)
При передаче данного параметра на выводимое значение не будет применена функция htmlspecialchars. Параметр добавлен начиная с Core v 5.0.0.
inp_id_label
Данный блок полностью идентичен функциональности блоку inp_label, но результат работы блока будет виден на форме только тогда, когда в поле будет значение. Этот блок обычно используется для отображения значения основного поля (primary key) таблицы.
inp_edit_box
Простой edit box (<input type="text">).
параметр
описание
subfield(string)
Может служить для обработки массива хранящегося в базе данных в сериализованного виде. Например на форме ввода находиться несколько inp_edit_box но с разными значениям данного параметра. Написав соответствующий метод для обработки полей, результат ввода данных можно будет сохранить в одном поле базы данных. Пример можно найти в In-Portal в секции "Configuration -> Stylesheets -> Edit".
class(string)
Указывается стилевой класс для отображения поля ввода (HTML элемент).
format(string)
Данный параметр позволяет задать другой формат вывода данных для поля. Формат, переданный в блоке, является более приоритетным, чем формат указанный в unit config.
maxlength(int)
Максимальное количество символов, вводимых в текстовом поле (HTML элемент). По умолчанию не задано.
onblur(string)
Позволяет задать обработчик события "onblur" (HTML элемент).
Позволяет задать обработчик события "onkeyup" (HTML элемент).
onchange(string)
Позволяет задать обработчик события "onchange" (HTML элемент).
style(string)
Оформление поля с помощью стандартных стилей (HTML элемент).
hint_label(string)
Название фразы, перевод которой должен быть показан в качестве подсказки справа от поля ввода.
inp_edit_box_ml
Простой edit box, но с кнопкой открытия всплывающего окна (popup) для ввода значения поля на других языках. Используется для многоязычных сайтов (<input type="text">).
параметр
описание
class(string)
Указывается стилевой класс для отображения поля ввода (HTML элемент).
Оформление поля с помощью стандартных стилей (HTML элемент). Для данного блока по умолчанию равно "width: 100%; height: 45px;".
thumbnail(bool)
Показывать пиктограмму загруженного изображения. Параметр имеет смысл использовать, когда заранее известно, что в поле будут загружаться изображения. Доступен начиная с Core v 5.0.0.
inp_edit_hidden
(<input type="hidden">)
параметр
описание
db(int)
Если данный параметр передан, то значение в поле не будет обработано форматером перед выводом на экран.
inp_edit_date
Используется для ввода даты, в указанном при настройке поля, формате (<input type="text">).
параметр
описание
class(string)
Указывается стилевой класс для отображения поля ввода (HTML элемент).
inp_edit_time
Используется для ввода времени, в указанном при настройке поля, формате (<input type="text">).
параметр
описание
class(string)
Указывается стилевой класс для отображения поля ввода (HTML элемент).
inp_edit_date_time
Используется для ввода даты и времени, в указанном при настройке поля, формате (<input type="text">).
параметр
описание
class(string)
Указывается стилевой класс для отображения поля ввода (HTML элемент).
inp_edit_textarea
Используется для ввода (<textarea> </textarea>).
параметр
описание
class(string)
Указывается стилевой класс для отображения поля ввода (HTML элемент).
format(string)
Данный параметр позволяет задать другой формат вывода данных для поля. Формат, переданный в блоке, является более приоритетным, чем формат указанный в unit config.
edit_template(string)
Данный параметр позволяет задавать шаблон, используемый для редактирования данного поля. По умолчанию равен "popups/editor", т.е. где находиться FCKEditor. Доступен начиная с Core v 4.3.1.
allow_html(string)
Если значение данного параметра будет равно "allow_html" (что является значением по умолчанию), то слева от поля будет показана специальная пиктограмма. При нажатии на данную пиктограмму во всплывающем окне (popup) будет открыт FCKEditor.
style(string)
Оформление поля с помощью стандартных стилей (HTML элемент). Для данного блока по умолчанию равно "width: 100%; height: 45px;".
control_options(string)
Данный параметр позволяет задать минимальную и максималную высоту (в пикселях) для данного элемента в виде JavaScript объекта, напр. "{min_height: 200, max_height: 300}". В последсвии это значение будет использоваться при изменении размера (resize) формы. Данный параметр доступен только начиная с Core v 4.2.0.
inp_edit_textarea_ml
Используется для ввода текста, но с кнопкой открытия всплывающего окна (popup) для ввода значения поля на других языках. Используется для многоязычных сайтов (<textarea> </textarea>).
параметр
описание
class(string)
Указывается стилевой класс для отображения поля ввода (HTML элемент).
format(string)
Данный параметр позволяет задать другой формат вывода данных для поля. Формат, переданный в блоке, является более приоритетным, чем формат указанный в unit config.
allow_html(string)
Если значение данного параметра будет равно "allow_html" (что является значением по умолчанию), то слева от поля будет показана специальная пиктограмма. При нажатии на данную пиктограмму во всплывающем окне (popup) будет открыт FCKEditor.
style(string)
Оформление поля с помощью стандартных стилей (HTML элемент). Для данного блока по умолчанию равно "width: 100%; height: 45px;".
control_options(string)
Данный параметр позволяет задать минимальную и максимальную высоту (в пикселях) для данного элемента в виде JavaScript объекта, напр. "{min_height: 200, max_height: 300}". В последсвии это значение будет использоваться при изменении размера (resize) формы. Данный параметр доступен только начиная с Core v 4.2.0.
cols(int)
Позволяет задать количество столбцов в элементе (HTML элемент).
rows(int)
Позволяет задать количество строк в элементе (HTML элемент).
inp_edit_fck
Поле редактируемое с помощью интегрированного FCKEditor.
параметр
описание
bgcolor(string)
Данный параметр позволяет задать цвет фона окна редактирования в FCKEditor.
control_options(string)
Данный параметр позволяет задать минимальную и максимальную высоту (в пикселях) для данного элемента в виде JavaScript объекта, напр. "{min_height: 200, max_height: 300}". В последсвии это значение будет использоваться при изменении размера (resize) формы. Данный параметр доступен только начиная с Core v 4.2.0.
inp_edit_user
Используется для выбора пользователя (в базе будет храниться его ID). Рядом находящаяся кнопка открывает список пользователей, в котором выбирается требуемый (<input type="text">).
параметр
описание
class(string)
Указывается стилевой класс для отображения поля ввода (HTML элемент).
onkeyup(string)
Позволяет задать обработчик события "onkeyup" (HTML элемент).
Данный блок позволяет выбрать категорию, используя всплывающее окно (popup) со списком категорий. В результате в качестве значения поля будет ID выбранной категории, но на форме будет показываться путь к ней.
inp_edit_options
DropDown (<select> </select>).
параметр
описание
onchange(string)
Позволяет задать обработчик события "onchange" (HTML элемент).
has_empty(int)
Если задан, то данный параметр говорит о том, что перед списком опций будет автоматически добавлена пустая опция.
empty_value(int)
Данный параметр позволяет задать значение (value) пустой опции, в случае, когда она будет автоматически добавлена.
style(string)
Оформление поля с помощью стандартных стилей (HTML элемент).
inp_edit_multioptions
Multiple DropDown (<select multiple> </select>).
параметр
описание
onchange(string)
Позволяет задать обработчик события "onchange" (HTML элемент).
has_empty(int)
Если задан, то данный параметр говорит о том, что перед списком опций будет автоматически добавлена пустая опция.
empty_value(int)
Данный параметр позволяет задать значение (value) пустой опции, в случае, когда она будет автоматически добавлена.
style(string)
Оформление поля с помощью стандартных стилей (HTML элемент).
inp_edit_radio
Дает возможность сделать выбор значения с помощью Radio Buttons (<input type="radio">).
параметр
описание
onchange(string)
Позволяет задать обработчик события "onchange" (HTML элемент).
onclick(string)
Позволяет задать обработчик события "onclick" (HTML элемент).
inp_edit_checkbox
Дает возможность сделать выбор значения с помощью CheckBox (<input type="checkbox">).
параметр
описание
onchange(string)
Позволяет задать обработчик события "onchange" (HTML элемент).
onclick(string)
Позволяет задать обработчик события "onclick" (HTML элемент).
field_class(string)
Указывается стилевой класс для отображения поля ввода (HTML элемент).
inp_edit_checkboxes
Дает возможность сделать выбор значений с помощью нескольких CheckBoxes (<input type="checkbox">).
параметр
описание
no_empty(int)
Если передать, то не будет напечатана опция с пустым значением. Позволяет решать проблему с некорректно заданной (в unit config) пустой опцией (в случае, когда раньше вместо этого блока использовался блок inp_edit_options).
inp_edit_checkbox_allow_html
В Platform не используется, используется в In-Portal при редактировании рецензий товара.
параметр
описание
field_class(string)
Указывается стилевой класс для отображения поля ввода (HTML элемент).
inp_edit_weight
Используется для ввода веса согласно значению поля UnitSystem в таблице Language. Если выбрана Американская система, то показывается 2 поля для ввода lbs и oz, если Европейская то показывается одно поле для ввода kg.
параметр
описание
subfield(string)
Может служить для обработки массива хранящегося в базе данных в сериализованного виде. Например на форме ввода находиться несколько inp_edit_box но с разными значениям данного параметра. Написав соответствующий метод для обработки полей, результат ввода данных можно будет сохранить в одном поле базы данных. Пример можно найти в In-Portal в секции "Configuration -> Stylesheets -> Edit".
class(string)
Указавается стилевой класс для отображения поля ввода (HTML элемент).
maxlength(int)
Максимальное количество символов, вводимых в текстовом поле (HTML элемент). По умолчанию не задано.
size(int)
Ширина поля ввода в символах (HTML элемент). Для данного блока по умолчанию равно "15".
inp_edit_swf_upload
Используется для загрузки файлов большого размера или большого количества файлов одновременно. Во время загрузки показывает progress bar c процессом загрузки каждого файла на сервер. Перед использованием данного блока необходимо убедиться, что подключены файлы "js/swfobject.js" и "js/uploader.js". Если такие файлы не подключены, то это можно сделать используя следующий код:
Приведённый выше код следует разместить после объявления панели инструментов (toolbar).
параметр
описание
class(string)
Указывается стилевой класс для отображения поля ввода (HTML элемент).
style(string)
Оформление поля с помощью стандартных стилей (HTML элемент).
inp_edit_picker
Данный блок представляет из себя два поля в одном из которых находятся выбранные элементы, а во втором все доступные элементы за исключением уже выбранных. Блок позволяет выбрать несколько элементов одновременно и перенести их во второй список. Более подробная информация об этом блоке доступна в этой статье.
параметр
описание
style(string)
Оформление поля с помощью стандартных стилей (HTML элемент). Для данного блока по умолчанию равно "width: 225px;".
size(int)
Ширина поля ввода в символах (HTML элемент). Для данного блока по умолчанию равно "15".
optprefix(string)
Префикс, данные которого будут использованы для заполнения списка доступных и выбранных опций.
Блок используется для класса, который предназначен для ввода списка дополнительных данных в схожем формате, характеризующих основной предмет. Например, человек (people) - это пример основной сущности, а список его детей (children) - это пример дополнительной сущности. Т.е. ребенок (children) это подчинённый префикс для главного префикса people. Более подробная информация об этом блоке доступна в этой статье.
параметр
описание
format(string)
Значением данного параметра является строка, которая может состоять из названий полей (зарегистрированных в шаблоне при помощи метода registerControl) и любого текста. Название каждого поля должно быть заключено в символы "#". Например "#ChildFullName# #ChildBirthDate_date#". Фразы использовать нельзя, т.к. они не обрабатываются.
style(string)
Оформление поля с помощью стандартных стилей (HTML элемент). Для данного блока по умолчанию равно "width: 100%; height: 45px;".
allow_add(int)
Можно разрешить/запретить добавление элементов списка, по умолчанию разрешено.
allow_edit(int)
Можно разрешить/запретить редактирование элементов списка, по умолчанию разрешено.
allow_delete(int)
Можно разрешить/запретить удаление элементов списка, по умолчанию разрешено.
allow_move(int)
Можно разрешить/запретить перемещение элементов вверх и вниз в списке, по умолчанию разрешено. Добавлен начиная с Core v 4.3.1.
В зависимости от того, как будет обрабатываться полученный XML может получиться, что в базе данных ничего перемещаться не будет.
inp_edit_filler
Данный блок заполняет градиентом свободное пространство во всплывающих окнах (popups).
параметр
описание
control_options(string)
Данный параметр позволяет задать минимальную и максималную высоту (в пикселях) для данного элемента в виде JavaScript объекта, напр. "{min_height: 200, max_height: 300}". В последсвии это значение будет использоваться при изменении размера (resize) формы. Данный параметр доступен только начиная с Core v 4.2.0.