Приведение объекта $form в строку возвращает HTML код для отображения формы. Обычно вам не нужно приводить форму явно, просто добавьте её в буфер отображения, например \IPS\Output::i()->output.
\IPS\Output::i()->output .= $form;
Добавление собственного CSS в форму
По умолчанию форма горизонтальная. Чтобы сделать её вертикальной, или применить какой-либо класс, вы должны сделать следующее:
$form->class = 'ipsForm_vertical';
Свойство class представляет собой простую строку (не массив), поэтому просто используйте список имен классов CSS, разделенных пробелами. Если вы используете свои собственные стили CSS, а не встроенные классы, не забудьте также добавить свой CSS файл!
Использование шаблонов пользовательских форм
По умолчанию для отображения формы используются стандартные встроенные шаблоны форм. Однако для дальнейшей настройки вы можете вызвать $form->customTemplate() передавая обратный вызов с шаблоном для использования. Это позволяет полностью настроить внешний вид формы.
Это необходимо для использования шаблона, который выглядит лучше в модальном окне:
\IPS\Output::i()->output = $form->customTemplate( array( call_user_func_array( array( \IPS\Theme::i(), 'getTemplate' ), array( 'forms', 'core' ) ), 'popupTemplate' ) );
Создаваемый шаблон должен содержать следующий заголовок шаблона, включая следующие параметры:
<ips:template parameters="$id, $action, $elements, $hiddenValues, $actionButtons, $uploadField, $class='', $attributes=array(), $sidebar, $form=NULL" />
Передача пользовательских параметров
Если вам нужно передать дополнительные настраиваемые параметры в шаблон формы, вы можете сделать это во втором параметре метода customTemplate, например:
$templateToUse = array( call_user_func_array( array( \IPS\Theme::i(), 'getTemplate' ), array( 'forms', 'core' ) ), 'popupTemplate' );
$form->customTemplate( $templateToUse, $myCustomParameter, $anotherParameter );
Ваши параметры добавляются в начало списка параметров шаблона, то есть в этом случае заголовок вашего шаблона будет выглядеть следующим образом:
<ips:template parameters="$myCustomParameter, $anotherParameter, $id, $action, $elements, $hiddenValues, $actionButtons, $uploadField, $class='', $attributes=array(), $sidebar, $form=NULL" />