Перейти до змісту
Домент ipb-board.ru продається.

Forms.php 1.0.0

(0 відгуків)

1 зображення

Применение:

\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.

Скрытый текст

 

Screenshot_1.png

Screenshot_2.png

Зворотній зв'язок

Щоб залишити відгук, створіть акаунт або авторизуйтесь

Відгуків немає