PlainRenderer::atagToHttp()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 9
rs 9.6666
cc 2
eloc 6
nc 2
nop 2
1
<?php
2
3
/**
4
 * PlainText Service
5
 */
6
7
namespace FRUIT\Ink;
8
9
use FRUIT\Ink\Rendering\RenderingInterface;
10
use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
11
use TYPO3\CMS\Core\Utility\GeneralUtility;
12
use TYPO3\CMS\Extbase\Object\ObjectManager;
13
use TYPO3\CMS\Extbase\SignalSlot\Dispatcher;
14
15
/**
16
 *  PlainText Service
17
 */
18
class PlainRenderer
19
{
20
21
    /**
22
     * The content object
23
     *
24
     * @var \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer
25
     */
26
    public $cObj;
27
28
    /**
29
     * Configuration
30
     *
31
     * @var
32
     */
33
    protected $conf;
34
35
    /**
36
     * Render the different elements and collect the single lines.
37
     * After the rendering the lines will be imploded. Notice:
38
     * All methods after this are CType rendering helper
39
     *
40
     * @param string $content
41
     * @param array  $conf
42
     *
43
     * @return array
44
     */
45
    public function render($content, $conf)
0 ignored issues
show
Unused Code introduced by
The parameter $content is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
46
    {
47
        $lines = array();
48
        $this->conf = $conf;
49
        $CType = (string)$this->cObj->data['CType'];
50
        if (isset($this->conf['forceCType']) && trim($this->conf['forceCType']) !== '') {
51
            $CType = trim($this->conf['forceCType']);
52
        }
53
54
        $renderer = array(
55
            'html'            => 'FRUIT\\Ink\\Rendering\\Html',
56
            'header'          => 'FRUIT\\Ink\\Rendering\\Header',
57
            'table'           => 'FRUIT\\Ink\\Rendering\\Table',
58
            'menu'            => 'FRUIT\\Ink\\Rendering\\Menu',
59
            'text'            => 'FRUIT\\Ink\\Rendering\\Text',
60
            'image'           => 'FRUIT\\Ink\\Rendering\\Image',
61
            'textpic'         => 'FRUIT\\Ink\\Rendering\\TextPicture',
62
            'templavoila_pi1' => 'FRUIT\\Ink\\Rendering\\Templavoila',
63
            'list'            => 'FRUIT\\Ink\\Rendering\\Plugin',
64
        );
65
66
        GeneralUtility::requireOnce(ExtensionManagementUtility::extPath('ink', 'Classes/Rendering/Plugin.php'));
67
        GeneralUtility::requireOnce(ExtensionManagementUtility::extPath('ink', 'Classes/Rendering/Image.php'));
68
        GeneralUtility::requireOnce(ExtensionManagementUtility::extPath('ink', 'Classes/Rendering/Menu.php'));
69
70
        $objectManager = new ObjectManager();
71
        /** @var Dispatcher $signalSlot */
72
        $signalSlot = $objectManager->get('TYPO3\\CMS\\Extbase\\SignalSlot\\Dispatcher');
73
        $returnData = $signalSlot->dispatch(__CLASS__, 'renderer', array('renderer' => $renderer));
74
        $renderer = $returnData['renderer'];
75
76
        if (isset($renderer[$CType])) {
77
            $className = $renderer[$CType];
78
            /** @var RenderingInterface $renderObject */
79
            $renderObject = $objectManager->get($className);
80
            $lines = $renderObject->render($this->cObj, $this->conf);
81
        } else {
82
            $lines[] = 'CType: ' . $CType . ' have no rendering definitions';
83
        }
84
        $content = implode(LF, $lines);
85
        return trim($content, CRLF . TAB);
86
    }
87
88
    /**
89
     * Function used by TypoScript "parseFunc" to process links in the bodytext.
90
     * Extracts the link and shows it in plain text in a parathesis next to the link text. If link was relative the site URL was prepended.
91
     *
92
     * @param    string $content : Empty, ignore.
93
     * @param    array  $conf    : TypoScript parameters
94
     *
95
     * @return    string        Processed output.
96
     * @see parseBody()
97
     */
98
    public function atagToHttp($content, $conf)
0 ignored issues
show
Unused Code introduced by
The parameter $content is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
99
    {
100
        $this->conf = $conf;
101
        $theLink = trim($this->cObj->parameters['href']);
102
        if (strtolower(substr($theLink, 0, 7)) == 'mailto:') {
103
            $theLink = substr($theLink, 7);
104
        }
105
        return $this->cObj->getCurrentVal() . ' ( ' . $theLink . ' )';
106
    }
107
}
108