3264810b9bfe390b30a7c947442b05de22a17ee8
[Packages/TYPO3.CMS.git] / typo3 / sysext / extensionmanager / Classes / ViewHelpers / ToggleExtensionInstallationStateViewHelper.php
1 <?php
2 namespace TYPO3\CMS\Extensionmanager\ViewHelpers;
3
4 /***************************************************************
5 * Copyright notice
6 *
7 * (c) 2012-2013 Susanne Moog, <typo3@susannemoog.de>
8 * All rights reserved
9 *
10 * This script is part of the TYPO3 project. The TYPO3 project is
11 * free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by
13 * the Free Software Foundation; either version 2 of the License, or
14 * (at your option) any later version.
15 *
16 * The GNU General Public License can be found at
17 * http://www.gnu.org/copyleft/gpl.html.
18 * A copy is found in the text file GPL.txt and important notices to the license
19 * from the author is found in LICENSE.txt distributed with these scripts.
20 *
21 *
22 * This script is distributed in the hope that it will be useful,
23 * but WITHOUT ANY WARRANTY; without even the implied warranty of
24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25 * GNU General Public License for more details.
26 *
27 * This copyright notice MUST APPEAR in all copies of the script!
28 ***************************************************************/
29 /**
30 * Display a deactivate / activate link
31 *
32 * @author Susanne Moog <typo3@susannemoog.de>
33 */
34 class ToggleExtensionInstallationStateViewHelper extends \TYPO3\CMS\Fluid\ViewHelpers\Link\ActionViewHelper {
35
36 /**
37 * @var string
38 */
39 protected $tagName = 'a';
40
41 /**
42 * Renders an install link
43 *
44 * @param string $extension
45 * @return string the rendered a tag
46 */
47 public function render($extension) {
48 // Early return if package is protected and can not be unloaded
49 /** @var $packageManager \TYPO3\CMS\Core\Package\PackageManager */
50 $packageManager = $this->objectManager->get('TYPO3\\CMS\\Core\\Package\\PackageManager');
51 $package = $packageManager->getPackage($extension['key']);
52 if ($package->isProtected()) {
53 return '';
54 }
55
56 $uriBuilder = $this->controllerContext->getUriBuilder();
57 $action = 'toggleExtensionInstallationState';
58 $uri = $uriBuilder->reset()->uriFor($action, array(
59 'extensionKey' => $extension['key']
60 ), 'Action');
61 $this->tag->addAttribute('href', $uri);
62 $label = $extension['installed'] ? 'deactivate' : 'activate';
63 $this->tag->addAttribute('title', \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('extensionList.' . $label, 'extensionmanager'));
64 $icon = $extension['installed'] ? 'uninstall' : 'install';
65 $this->tag->addAttribute('class', 'onClickMaskExtensionManager');
66 $this->tag->setContent(\TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIcon('actions-system-extension-' . $icon));
67 return $this->tag->render();
68 }
69
70 }