Применение:
\IPS\myapp\Forms::i( $elements, $instancename, $form )
( after $form, все параметры те же, что и для \IPS\Helpers\Form\__construct метод, но большую часть времени вам нужно будет только установить $elements, $instancename если у вас несколько форм на одной странице).
$elements:
tab, header, sidebar:
'type' = tab|header|sidebar
'name' = используется для создания всех этих объектов, если это lang/string, это то, что передается соответствующей команде формы.
Пример:
$el[] = [ 'type' => 'tab|header|sidebar', 'name' => 'my_lang_string' ];
Разделитель:
'type' = 'separator'
Пример:
$el[] = [ 'type' => 'separator' ];
message: ->addMessage( $lang, $css='', $parse=TRUE, $_id=NULL)
type' = 'message'
'msg' = эти параметры требуются для этого типа, сообщение, которое вы хотите отобразить
Необязательный:
'css' = любые дополнительные классы css
'parse' = default - true, устанавливается значение false, если msg - это уже обработанная строка lang
'id' = id элемента, значение по умолчанию - null
Пример:
$el[] = [ 'type' => 'message', 'msg' => 'my_message_lang_string' 'css' => 'myMessageClass myMessageClassWarning" ];
Помощник:
обязательный:
'name' = name of the element
'class' = IPS Form Help Class (without the \IPS\Helpers\Form portion) or a FQN for a custom class.
Необязательный:
'default' = значение по умолчанию
'required' = это требуется или нет
'options' = массив параметров для класса (идентичный тому, как параметры установлены для помощников формы)
'validation' = метод проверки, может использовать замыкание здесь, идентично тому, как его набор в хелпере формы.
'prefix' = префикс для хелпера формы
'suffix' = суффикс для хелпера формы
'id' = id для хелпера формы (если не задано, класс будет автоматически настраивать параметр имени с помощью js_ prepend)
'skip_id' = (bool), если 'id' не установлен, и вы хотите, чтобы он не устанавливал его в js_name
'label' = строка lang для использования в качестве метки вместо «name»,
'description' => строка lang для использования в качестве альтернативного описания
'appearRequired' => (bool), необходимо, чтобы хелпер формы появился.
Пример:
$el[] = [ 'class' => 'Select', 'name' => 'my_select_element', 'required' => true, 'options' => [ 'options' => [ 1, 2, 3, 4 ] ] ];
dummy: ->addDummy( $langKey, $value, $desc='', $warning='', $id='' )
Необходимые:
'type' = 'dummy'
'name' = имя элемента
'default' = значение, которое будет отображаться
Необязательный:
'desc' = description
'warning' = warning
'id' = html id (if not set, js_$name is used)
Пример:
$el[] = [ 'type' => 'dummy', 'name' => 'my_dummy_element', 'default' => "content for the dummy element" ];
html: ->addHtml( $html )
Необходимые
'type' = 'html'
'html' = the html to display
Пример:
$el[] = [ 'type' => 'html', 'html' => "<a href='#'>some html</a>" ];
Matrix: ->addMatrix( $name, $matrix )
Необходимые:
'type' = 'matrix'
'matrix = must be an instance of \IPS\Helpers\Form\Matrix
'name' = elements name.
Пример:
$matrix = new \IPS\Helpers\Form\Matrix; $el[] = [ 'type' => 'matrix', 'matrix' => $matrix, 'name' => 'my_matrix_element' ];
i() method:
public static function i( array $elements, $name = 'default', $form = null, $id = 'form', $submitLang = 'save', $action = null, $attributes = [] )
метод создания экземпляров довольно прямолинейный, вы передаете ему массив элементов, если на странице есть несколько форм, вы можете присвоить экземпляру имя. если у вас уже есть объект формы (например, в узлах), просто передайте его Forms, другие параметры предназначены для создания новой формы, таких же параметров, как \IPS\Form.
Объединяя все это:
$altDescription = "my_textarea_alt_desc"; $elements = [ [ 'type' => 'tab', 'name' => 'my_tab_1' ], [ 'class' => 'Text', 'name' => 'my_title', 'required' => true 'validation' => function( $data ){ if( !$data ) { throw new \InvalidArgumentException; } } ], [ 'class' => "Select", 'name' => "my_select', 'options' => [ 'options' => [ 1, 2, 3, 4 ] ] ], [ 'type' => 'tab', 'name' => 'my_tab_2' ], [ 'class' => "TexArea", 'name' => 'my_text_area', 'default' => 'im a default', 'description' => $altDescription ], [ 'type' => 'separator' ], [ 'class' => 'Text', 'name' => 'my_text_2' ] ]; $form = \IPS\myapp\Form::i( $elements ); \IPS\Output::i()->output = $form;
это вернет экземпляр \IPS\Form.
Рекомендовані коментарі
Для публікації повідомлень створіть обліковий запис або авторизуйтесь