ExtensionIconViewHelper.php 2.89 KB
Newer Older
1
<?php
2
3
namespace T3o\TerFe2\ViewHelpers;

4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/*******************************************************************
 *  Copyright notice
 *
 *  (c) 2011 Kai Vogel <kai.vogel@speedprogs.de>, Speedprogs.de
 *
 *  All rights reserved
 *
 *  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.
 *
 *  The GNU General Public License can be found at
 *  http://www.gnu.org/copyleft/gpl.html.
 *
 *  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!
 ******************************************************************/
27

28
29
30
/**
 * Extension icon view helper
 */
31
class ExtensionIconViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper
32
{
33

34
35
36
37
    /**
     * @var string
     */
    protected $tagName = 'img';
38

39
    /**
40
41
     * @var \Tx_TerFe2_Provider_ProviderManager
     * @inject
42
43
     */
    protected $providerManager;
44

45
46
47
48
49
50
51
52
53
54
55
    /**
     * Initialize arguments
     *
     * @return void
     */
    public function initializeArguments()
    {
        parent::initializeArguments();
        $this->registerUniversalTagAttributes();
        $this->registerTagAttribute('alt', 'string', 'Specifies an alternate text for an image', TRUE);
    }
56
57


58
59
60
    /**
     * Renders an extension icon for given version object
     *
61
     * @param \Tx_TerFe2_Domain_Model_Version $version Version object
62
63
64
     * @param string $fileType File type
     * @return string Rendered image tag
     */
65
    public function render(\Tx_TerFe2_Domain_Model_Version $version = NULL, $fileType = 'png')
66
67
68
69
    {
        if ($version === NULL) {
            $version = $this->renderChildren();
        }
70

71
72
73
74
        $imageUrl = '';
        $provider = $version->getExtensionProvider();
        if (!empty($provider)) {
            $imageUrl = $this->providerManager->getProvider($provider)->getIconUrl($version, $fileType);
75
            if (empty($imageUrl) || !file_exists(\Tx_TerFe2_Utility_File::getAbsolutePathFromUrl($imageUrl))) {
76
77
78
                $imageUrl = $this->providerManager->getProvider($provider)->getIconUrl($version, 'gif');
            }
        }
79

80
        if (empty($imageUrl) || !file_exists(\Tx_TerFe2_Utility_File::getAbsolutePathFromUrl($imageUrl))) {
81
            $imageUrl = \TYPO3\CMS\Core\Utility\GeneralUtility::locationHeaderUrl('typo3/clear.gif');
82
        }
83

84
85
86
87
88
89
90
        $this->tag->addAttribute('src', $imageUrl);
        $this->tag->addAttribute('height', 16);
        $this->tag->addAttribute('width', 16);
        return $this->tag->render();
    }

}