Закажите бесплатную презентацию продуктов РосБизнесСофт прямо сейчас!
«Формы» используются для визуального отображения и редактирования «Объектов». Например: «Форма редактирования», «Форма списка», «Форма выбора» и т.д.
Форма имеет обязательное название (companies), а также адрес (URL), по которой форма будет доступна пользователю (/companies/{id1}/). Вместо {id1} Система автоматически подставит ID элемента. После создания формы изменить ее имя уже нельзя (нужно пересоздать).
Так как у объекта может быть несколько десятков форм, то рекомендуем обязательно заполнять поле «Комментарий», чтобы всегда было понятно, что за форма.
У каждой базовой формы есть 4 закладки:
«Печатные формы» имеют только 2 закладки:
PHP-код управляет отображением «Объектов». Основные операции по отображению, «подгрузке» и преобразованию шаблоны выполняет класс родитель. Классы объектов, которые создаются непосредственно в «Конфигураторе», наследуются от него, и мы можем переопределить методы, для изменения стандартной работы класса.
// конструкция используется для записи значений таб. частей $this->structure->owner = $this->parents[0][0]->getKey();
//url: ...../object/id/?ajax=save protected function checkAjax() { $ajax = $this->Http->Request->get("ajax", "Varchar", ""); switch($ajax){ case("save"):{ try { $this->structure->date_update(time())->sync(true); $this->resultSuccess(["message" => "success actions"]); } catch (\Exception $ex) { $this->resultError($ex->getMessage()); } } break; } }
Предположим надо установить поле date текущее время, в случае когда открыли форму добавления (создается документ Счет):
if ($this->isAddForm()) { if (!$this->isActionSave()) { $this->structure->date(time())->getField("date")->markAsSaved(); } }
protected $delayedNameCustom = [ 'boss'=> "name", ];
protected $lookupFieldsOptions = [ 'order' => [ 'valRef' => 'name', 'modalSize' => 'small' ], 'relationship'=> [ 'key'=>'id', 'field'=>'subject', 'valRef'=>'name', "modalSize" => "small" ], ];
Где: valRef — получение поля у pointer объекта, modalSize ( fullscreen|mini|tiny|small|large) — размер модального окна.
Шаблон представляет собой обычную HTML разметку, в которую включены шаблоны заменяемые на HTML разметку.
Подключение дополнительных шаблонов представления происходит в шапке документа:
Подключение шаблона закладок #include <tabs> Подключение Flow-панели #include <flow> Подключение History-панели #include <history>
Подключение CSS-стилей:
{CSS append} <link href="$ROOT/plugins/fullcalendar/fullcalendar.min.css" rel="stylesheet" media="all" /> {/CSS}
Подключение JS-скрипта (из закладки) в начале страницы:
{JS append} [[js | name: /task/edit]] {/JS}
Подключение JS-скрипта (из закладки) в конце страницы:
{FOOT_JS append} <script type="text/javascript" type="text/javascript" src="$ROOT/plugins/fullcalendar/fullcalendar.min.js"></script> {/FOOT_JS}
Вывод в шаблоне значение из языкового массива:
#L:TechnicalSupport
Где:
Для использования ключа из любого языкового пакета, есть следующая конструкция:
##L:task.edit.Start
Где:
Подробнее про вывод полей, контейнеров, блоков и т.д. в шаблоне можно узнать в соответствующих разделах документации.
Для каждой формы создается отдельный JS-код.
JS-код подключается в шапке документа:
{JS append} [[js | name: path/to/scenario/edit]] {/JS}
При разработке можно использовать готовые методы для выполнения задач (отображения модального окна, загрузки AJAX-формы и т.п.)
Также можно использовать все возможности библиотеки jQuery, а также методы из подключаемого файла jsApplication.js
В языковом файле хранятся ассоциации языковых переменных.
В «Шаблоне» чтобы вывести переменную из «языкового файла» нужно прописать:
#L:Copy
В «Javascript» чтобы вывести переменную из «языкового файла» нужно прописать:
translate.obj.Copy
Получение комбинированной строки на PHP из языкового массива:
// подключение языкового класса use Kernel\Http\Language; echo Language::getVariableFormat($this->form, "simpleText", ["Пример строки", 12345]);
Содержание языкового файла:
$_ = [ "simpleText" = "Форматированный текст с параметрам: строка - %s и число %d"];
Результат вывода:
Форматированный текст с параметрам: строка - Пример строки и число 12345
Если ролики на YouTube не открываются, можно посмотреть их на площадке Rutube.