2 namespace wcf\acp\form
;
3 use wcf\data\user\option\UserOption
;
4 use wcf\data\user\option\UserOptionAction
;
5 use wcf\form\AbstractForm
;
6 use wcf\system\exception\IllegalLinkException
;
7 use wcf\system\language\I18nHandler
;
11 * Shows the user option edit form.
14 * @copyright 2001-2013 WoltLab GmbH
15 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
16 * @package com.woltlab.wcf
17 * @subpackage acp.form
18 * @category Community Framework
20 class UserOptionEditForm
extends UserOptionAddForm
{
22 * @see \wcf\page\AbstractPage::$activeMenuItem
24 public $activeMenuItem = 'wcf.acp.menu.link.user.option';
34 * @var \wcf\data\user\option\UserOption
36 public $userOption = null;
39 * @see \wcf\page\IPage::readParameters()
41 public function readParameters() {
42 parent
::readParameters();
44 if (isset($_REQUEST['id'])) $this->optionID
= intval($_REQUEST['id']);
45 $this->userOption
= new UserOption($this->optionID
);
46 if (!$this->userOption
->optionID
) {
47 throw new IllegalLinkException();
52 * @see \wcf\form\IForm::save()
54 public function save() {
57 I18nHandler
::getInstance()->save('optionName', 'wcf.user.option.'.$this->userOption
->optionName
, 'wcf.user.option');
58 I18nHandler
::getInstance()->save('optionDescription', 'wcf.user.option.'.$this->userOption
->optionName
.'.description', 'wcf.user.option');
60 $this->objectAction
= new UserOptionAction(array($this->userOption
), 'update', array('data' => array(
61 'categoryName' => $this->categoryName
,
62 'optionType' => $this->optionType
,
63 'defaultValue' => $this->defaultValue
,
64 'showOrder' => $this->showOrder
,
65 'outputClass' => $this->outputClass
,
66 'validationPattern' => $this->validationPattern
,
67 'selectOptions' => $this->selectOptions
,
68 'required' => $this->required
,
69 'askDuringRegistration' => $this->askDuringRegistration
,
70 'searchable' => $this->searchable
,
71 'editable' => $this->editable
,
72 'visible' => $this->visible
74 $this->objectAction
->executeAction();
77 WCF
::getTPL()->assign('success', true);
81 * @see \wcf\page\IPage::readData()
83 public function readData() {
86 I18nHandler
::getInstance()->setOptions('optionName', 1, 'wcf.user.option.'.$this->userOption
->optionName
, 'wcf.user.option.option\d+');
87 I18nHandler
::getInstance()->setOptions('optionDescription', 1, 'wcf.user.option.'.$this->userOption
->optionName
.'.description', 'wcf.user.option.option\d+.description');
90 $this->categoryName
= $this->userOption
->categoryName
;
91 $this->optionType
= $this->userOption
->optionType
;
92 $this->defaultValue
= $this->userOption
->defaultValue
;
93 $this->validationPattern
= $this->userOption
->validationPattern
;
94 $this->selectOptions
= $this->userOption
->selectOptions
;
95 $this->required
= $this->userOption
->required
;
96 $this->askDuringRegistration
= $this->userOption
->askDuringRegistration
;
97 $this->editable
= $this->userOption
->editable
;
98 $this->visible
= $this->userOption
->visible
;
99 $this->searchable
= $this->userOption
->searchable
;
100 $this->showOrder
= $this->userOption
->showOrder
;
101 $this->outputClass
= $this->userOption
->outputClass
;
106 * @see \wcf\page\IPage::assignVariables()
108 public function assignVariables() {
109 parent
::assignVariables();
111 I18nHandler
::getInstance()->assignVariables(!empty($_POST));
113 WCF
::getTPL()->assign(array(
115 'optionID' => $this->optionID
,
116 'userOption' => $this->userOption