フォーム
Omeka S はしばしば Zend\Form\Form
を拡張して Omeka\Form
名前空間に配置しますが、場合によってはモジュールがフォームにさらにフィールドを追加できるようにイベントを含んでいます。
フィールドセットを追加することは、モジュールがフォローする一般的なパターンです。テキストエリアを追加するには、Module.php
クラスに次のように追加します。
これらのフォームに適用します
Omeka\Form\SettingForm
Omeka\Form\SiteSettingsForm
それぞれ Event::ADD_ELEMENTS
イベントと Event::ADD_INPUT_FILTERS
イベントを使用します。
モジュールの広範な構造については、モジュール を参照してください。 php
public function addElements(Event $event)
{
$form = $event->getParam('form');
$fieldset = new Fieldset('example');
$fieldset->setLabel('例のフィールドセット');
$fieldset->add([
'name' => 'example',
'type' => 'text',
'options' => [
'label' => '例のテキスト入力', // 翻訳
],
]);
$form->add($fieldset);
}
検証
検証は要素の入力フィルターを介して処理されます。したがって、フォームのサーバー側の検証を変更するには、Event::SITE_SETTINGS_ADD_INPUT_FILTERS
イベントと Event::GLOBAL_SETTINGS_ADD_INPUT_FILTERS
イベントを使用します。
php
public function addFilters($event)
{
$inputFilter = $event->getParam('inputFilter');
$inputFilter->get('example')->add([
'name' => 'example',
'required' => false,
]);
}