Commit | Line | Data |
---|---|---|
158bd3ca TD |
1 | <?php |
2 | namespace wcf\data\template; | |
3 | use wcf\data\AbstractDatabaseObjectAction; | |
2d8a8589 | 4 | use wcf\system\language\LanguageFactory; |
158bd3ca TD |
5 | |
6 | /** | |
7 | * Executes template-related actions. | |
8 | * | |
9 | * @author Alexander Ebert | |
c839bd49 | 10 | * @copyright 2001-2018 WoltLab GmbH |
158bd3ca | 11 | * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php> |
e71525e4 | 12 | * @package WoltLabSuite\Core\Data\Template |
0e8867ac MS |
13 | * |
14 | * @method TemplateEditor[] getObjects() | |
15 | * @method TemplateEditor getSingleObject() | |
158bd3ca TD |
16 | */ |
17 | class TemplateAction extends AbstractDatabaseObjectAction { | |
18 | /** | |
0fcfe5f6 | 19 | * @inheritDoc |
158bd3ca | 20 | */ |
157054c9 | 21 | protected $className = TemplateEditor::class; |
158bd3ca TD |
22 | |
23 | /** | |
0fcfe5f6 | 24 | * @inheritDoc |
158bd3ca | 25 | */ |
058cbd6a | 26 | protected $permissionsCreate = ['admin.template.canManageTemplate']; |
158bd3ca TD |
27 | |
28 | /** | |
0fcfe5f6 | 29 | * @inheritDoc |
158bd3ca | 30 | */ |
058cbd6a | 31 | protected $permissionsDelete = ['admin.template.canManageTemplate']; |
158bd3ca TD |
32 | |
33 | /** | |
0fcfe5f6 | 34 | * @inheritDoc |
158bd3ca | 35 | */ |
058cbd6a | 36 | protected $permissionsUpdate = ['admin.template.canManageTemplate']; |
12aa6f89 | 37 | |
bae8dd1e | 38 | /** |
0fcfe5f6 | 39 | * @inheritDoc |
bae8dd1e | 40 | */ |
058cbd6a | 41 | protected $requireACP = ['create', 'delete', 'update']; |
bae8dd1e | 42 | |
12aa6f89 | 43 | /** |
0fcfe5f6 | 44 | * @inheritDoc |
0e8867ac | 45 | * @return Template |
12aa6f89 MW |
46 | */ |
47 | public function create() { | |
0e8867ac | 48 | /** @var Template $template */ |
12aa6f89 MW |
49 | $template = parent::create(); |
50 | ||
51 | if (isset($this->parameters['source'])) { | |
52 | $editor = new TemplateEditor($template); | |
53 | $editor->setSource($this->parameters['source']); | |
54 | } | |
55 | ||
56 | return $template; | |
57 | } | |
58 | ||
2d8a8589 | 59 | /** |
0fcfe5f6 | 60 | * @inheritDoc |
2d8a8589 AE |
61 | */ |
62 | public function delete() { | |
63 | $count = parent::delete(); | |
64 | ||
65 | LanguageFactory::getInstance()->deleteLanguageCache(); | |
66 | ||
67 | return $count; | |
68 | } | |
69 | ||
12aa6f89 | 70 | /** |
0fcfe5f6 | 71 | * @inheritDoc |
12aa6f89 MW |
72 | */ |
73 | public function update() { | |
74 | parent::update(); | |
e3369fd2 | 75 | |
4a130a51 | 76 | foreach ($this->getObjects() as $template) { |
12aa6f89 MW |
77 | // rename file |
78 | $templateName = (isset($this->parameters['data']['templateName']) ? $this->parameters['data']['templateName'] : $template->templateName); | |
79 | $templateGroupID = (isset($this->parameters['data']['templateGroupID']) ? $this->parameters['data']['templateGroupID'] : $template->templateGroupID); | |
80 | if ($templateName != $template->templateName || $templateGroupID != $template->templateGroupID) { | |
81 | $template->rename($templateName, $templateGroupID); | |
82 | } | |
83 | ||
84 | // update source | |
85 | if (isset($this->parameters['source'])) { | |
86 | $template->setSource($this->parameters['source']); | |
87 | } | |
88 | } | |
89 | } | |
dcb3a44c | 90 | } |