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\cache\builder\UserOptionCacheBuilder
;
7 use wcf\system\exception\IllegalLinkException
;
8 use wcf\system\language\I18nHandler
;
12 * Shows the user option edit form.
15 * @copyright 2001-2013 WoltLab GmbH
16 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
17 * @package com.woltlab.wcf
18 * @subpackage acp.form
19 * @category Community Framework
21 class UserOptionEditForm
extends UserOptionAddForm
{
23 * @see wcf\page\AbstractPage::$activeMenuItem
25 public $activeMenuItem = 'wcf.acp.menu.link.user.option';
35 * @var wcf\data\user\option\UserOption
37 public $userOption = null;
40 * @see wcf\page\IPage::readParameters()
42 public function readParameters() {
43 parent
::readParameters();
45 if (isset($_REQUEST['id'])) $this->optionID
= intval($_REQUEST['id']);
46 $this->userOption
= new UserOption($this->optionID
);
47 if (!$this->userOption
->optionID
) {
48 throw new IllegalLinkException();
53 * @see wcf\form\IForm::save()
55 public function save() {
58 I18nHandler
::getInstance()->save('optionName', 'wcf.user.option.'.$this->userOption
->optionName
, 'wcf.user.option');
59 I18nHandler
::getInstance()->save('optionDescription', 'wcf.user.option.'.$this->userOption
->optionName
.'.description', 'wcf.user.option');
61 $this->objectAction
= new UserOptionAction(array($this->userOption
), 'update', array('data' => array(
62 'categoryName' => $this->categoryName
,
63 'optionType' => $this->optionType
,
64 'defaultValue' => $this->defaultValue
,
65 'showOrder' => $this->showOrder
,
66 'outputClass' => $this->outputClass
,
67 'validationPattern' => $this->validationPattern
,
68 'selectOptions' => $this->selectOptions
,
69 'required' => $this->required
,
70 'askDuringRegistration' => $this->askDuringRegistration
,
71 'searchable' => $this->searchable
,
72 'editable' => $this->editable
,
73 'visible' => $this->visible
75 $this->objectAction
->executeAction();
78 WCF
::getTPL()->assign('success', true);
82 * @see wcf\page\IPage::readData()
84 public function readData() {
87 I18nHandler
::getInstance()->setOptions('optionName', 1, 'wcf.user.option.'.$this->userOption
->optionName
, 'wcf.user.option.option\d+');
88 I18nHandler
::getInstance()->setOptions('optionDescription', 1, 'wcf.user.option.'.$this->userOption
->optionName
.'.description', 'wcf.user.option.option\d+.description');
91 $this->categoryName
= $this->userOption
->categoryName
;
92 $this->optionType
= $this->userOption
->optionType
;
93 $this->defaultValue
= $this->userOption
->defaultValue
;
94 $this->validationPattern
= $this->userOption
->validationPattern
;
95 $this->selectOptions
= $this->userOption
->selectOptions
;
96 $this->required
= $this->userOption
->required
;
97 $this->askDuringRegistration
= $this->userOption
->askDuringRegistration
;
98 $this->editable
= $this->userOption
->editable
;
99 $this->visible
= $this->userOption
->visible
;
100 $this->searchable
= $this->userOption
->searchable
;
101 $this->showOrder
= $this->userOption
->showOrder
;
102 $this->outputClass
= $this->userOption
->outputClass
;
107 * @see wcf\page\IPage::assignVariables()
109 public function assignVariables() {
110 parent
::assignVariables();
112 I18nHandler
::getInstance()->assignVariables(!empty($_POST));
114 WCF
::getTPL()->assign(array(
116 'optionID' => $this->optionID
,
117 'userOption' => $this->userOption