-
Notifications
You must be signed in to change notification settings - Fork 148
Expand file tree
/
Copy pathContactOptionAddForm.class.php
More file actions
84 lines (74 loc) · 2.46 KB
/
ContactOptionAddForm.class.php
File metadata and controls
84 lines (74 loc) · 2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
namespace wcf\acp\form;
use wcf\data\contact\option\ContactOption;
use wcf\data\contact\option\ContactOptionAction;
use wcf\data\contact\option\ContactOptionList;
use wcf\form\AbstractFormBuilderForm;
use wcf\system\form\builder\field\BooleanFormField;
use wcf\system\form\builder\field\MultilineTextFormField;
use wcf\system\form\builder\field\ShowOrderFormField;
use wcf\system\form\builder\field\TextFormField;
/**
* Shows the contact option add form.
*
* @author Alexander Ebert
* @copyright 2001-2025 WoltLab GmbH
* @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
* @since 3.1
*
* @extends AbstractFormBuilderForm<ContactOption>
*/
class ContactOptionAddForm extends AbstractFormOptionAddForm
{
/**
* @inheritDoc
*/
public $activeMenuItem = 'wcf.acp.menu.link.contact.options.add';
/**
* @inheritDoc
*/
public $neededModules = ['MODULE_CONTACT_FORM'];
/**
* @inheritDoc
*/
public $neededPermissions = ['admin.contact.canManageContactForm'];
/**
* @inheritDoc
*/
public $objectActionClass = ContactOptionAction::class;
#[\Override]
protected function createForm()
{
parent::createForm();
$this->form->appendChildren([
TextFormField::create('optionTitle')
->label('wcf.global.name')
->maximumLength(255)
->i18n()
->languageItemPattern('wcf.contact.option\d+')
->required(),
MultilineTextFormField::create('optionDescription')
->label('wcf.global.description')
->maximumLength(5000)
->rows(5)
->i18n()
->languageItemPattern('wcf.contact.optionDescription\d+'),
ShowOrderFormField::create('showOrder')
->options($this->getContactOptions()),
$this->getOptionTypeFormField(),
...$this->getSharedConfigurationFormFields(),
BooleanFormField::create('isDisabled')
->label('wcf.acp.customOption.isDisabled'),
]);
}
/**
* @return array<int, string>
*/
private function getContactOptions(): array
{
$optionList = new ContactOptionList();
$optionList->sqlOrderBy = 'showOrder ASC';
$optionList->readObjects();
return \array_map(static fn($option) => $option->getTitle(), $optionList->getObjects());
}
}