Опубліковано 10 вересня, 20186 р Адміністратор Просмотреть файл Forms.php версия: 1.0.0 Применение: \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. Скрытый текст Автор Ciko Скачать файл Добавлен 11.09.2018 Поделиться Размер файла 10 КБ Категория Ресурсы разработчика
Для публікації повідомлень створіть обліковий запис або авторизуйтесь