[!!!][TASK] Remove CMS base ViewHelper classes
[Packages/TYPO3.CMS.git] / typo3 / sysext / extensionmanager / Classes / ViewHelpers / UpdateScriptViewHelper.php
index d974f10..1edb205 100644 (file)
@@ -1,79 +1,68 @@
 <?php
 namespace TYPO3\CMS\Extensionmanager\ViewHelpers;
 
-/***************************************************************
- *  Copyright notice
+/*
+ * This file is part of the TYPO3 CMS project.
  *
- *  (c) 2013 Francois Suter, <francois.suter@typo3.org>
- *  All rights reserved
+ * It is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, either version 2
+ * of the License, or any later version.
  *
- *  This script is part of the TYPO3 project. The TYPO3 project is
- *  free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
  *
- *  The GNU General Public License can be found at
- *  http://www.gnu.org/copyleft/gpl.html.
- *  A copy is found in the textfile GPL.txt and important notices to the license
- *  from the author is found in LICENSE.txt distributed with these scripts.
- *
- *
- *  This script is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  This copyright notice MUST APPEAR in all copies of the script!
- ***************************************************************/
+ * The TYPO3 project - inspiring people to share!
+ */
+
+use TYPO3\CMS\Core\Imaging\Icon;
+use TYPO3\CMS\Core\Imaging\IconFactory;
+use TYPO3\CMS\Core\Utility\GeneralUtility;
 
 /**
  * View helper for update script link
- *
- * @author Francois Suter <francois.suter@typo3.org>
+ * @internal
  */
-class UpdateScriptViewHelper extends \TYPO3\CMS\Fluid\ViewHelpers\Link\ActionViewHelper {
+class UpdateScriptViewHelper extends Link\ActionViewHelper
+{
+    /**
+     * initialize arguments
+     */
+    public function initializeArguments()
+    {
+        parent::initializeArguments();
+        $this->registerArgument('extensionKey', 'string', 'Extension key', true);
+    }
 
-       /**
-        * @var \TYPO3\CMS\Extbase\Object\ObjectManagerInterface
-        * @inject
-        */
-       protected $objectManager;
-
-       /**
-        * @var string
-        */
-       protected $tagName = 'a';
-
-       /**
-        * Renders a link to the update script screen if the extension has one
-        *
-        * @param string $extensionKey Extension key
-        * @return string The rendered a tag
-        */
-       public function render($extensionKey) {
-               $tag = '';
-
-               // If the "class.ext_update.php" file exists, build link to the update script screen
-               /** @var $updateScriptUtility \TYPO3\CMS\Extensionmanager\Utility\UpdateScriptUtility */
-               $updateScriptUtility = $this->objectManager->get('TYPO3\\CMS\\Extensionmanager\\Utility\\UpdateScriptUtility');
-               if ($updateScriptUtility->checkUpdateScriptExists($extensionKey)) {
-                       $uriBuilder = $this->controllerContext->getUriBuilder();
-                       $action = 'show';
-                       $uri = $uriBuilder->reset()->uriFor(
-                               $action,
-                               array('extensionKey' => $extensionKey),
-                               'UpdateScript'
-                       );
-                       $this->tag->addAttribute('href', $uri);
-                       $this->tag->addAttribute('title', \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('extensionList.update.script', 'extensionmanager'));
-                       $this->tag->setContent(\TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIcon('extensions-extensionmanager-update-script'));
-                       $tag = $this->tag->render();
-               }
-               return $tag;
-       }
+    /**
+     * Renders a link to the update script screen if the extension has one
+     *
+     * @return string The rendered a tag
+     */
+    public function render()
+    {
+        $extensionKey = $this->arguments['extensionKey'];
+        $tag = '';
 
+        // If the "class.ext_update.php" file exists, build link to the update script screen
+        /** @var $updateScriptUtility \TYPO3\CMS\Extensionmanager\Utility\UpdateScriptUtility */
+        $updateScriptUtility = $this->objectManager->get(\TYPO3\CMS\Extensionmanager\Utility\UpdateScriptUtility::class);
+        /** @var IconFactory $iconFactory */
+        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
+        if ($updateScriptUtility->checkUpdateScriptExists($extensionKey)) {
+            $uriBuilder = $this->renderingContext->getControllerContext()->getUriBuilder();
+            $action = 'show';
+            $uri = $uriBuilder->reset()->uriFor(
+                $action,
+                ['extensionKey' => $extensionKey],
+                'UpdateScript'
+            );
+            $this->tag->addAttribute('href', $uri);
+            $this->tag->addAttribute('title', \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('extensionList.update.script', 'extensionmanager'));
+            $this->tag->setContent($iconFactory->getIcon('extensions-extensionmanager-update-script', Icon::SIZE_SMALL)->render());
+            $tag = $this->tag->render();
+        } else {
+            return '<span class="btn btn-default disabled">' . $iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL)->render() . '</span>';
+        }
+        return $tag;
+    }
 }
-
-
-?>
\ No newline at end of file