TYPO3 CMS  TYPO3_8-7
FramesetRenderer.php
Go to the documentation of this file.
1 <?php
3 
4 /*
5  * This file is part of the TYPO3 CMS project.
6  *
7  * It is free software; you can redistribute it and/or modify it under
8  * the terms of the GNU General Public License, either version 2
9  * of the License, or any later version.
10  *
11  * For the full copyright and license information, please read the
12  * LICENSE.txt file that was distributed with this source code.
13  *
14  * The TYPO3 project - inspiring people to share!
15  */
16 
19 
26 {
34  public function make($setup)
35  {
36  $content = '';
37  if (is_array($setup)) {
38  $sKeyArray = ArrayUtility::filterAndSortByNumericKeys($setup);
39  foreach ($sKeyArray as $theKey) {
40  $theValue = $setup[$theKey];
41  if ((int)$theKey && ($conf = $setup[$theKey . '.'])) {
42  switch ($theValue) {
43  case 'FRAME':
44  $typeNum = (int)$GLOBALS['TSFE']->tmpl->setup[$conf['obj'] . '.']['typeNum'];
45  if (!$conf['src'] && !$typeNum) {
46  $typeNum = -1;
47  }
48  $content .= '<frame' . $this->frameParams($conf, $typeNum) . ' />' . LF;
49  break;
50  case 'FRAMESET':
51  $frameset = GeneralUtility::makeInstance(__CLASS__);
52  $content .= $frameset->make($conf) . LF;
53  break;
54  }
55  }
56  }
57  return '<frameset' . $this->framesetParams($setup) . '>' . LF . $content . '</frameset>';
58  }
59  return '';
60  }
61 
71  public function frameParams($setup, $typeNum)
72  {
73  $paramStr = '';
74  $name = $setup['obj'];
75  if ($setup['src'] || $setup['src.']) {
76  $src = $setup['src'];
77  if (is_array($setup['src.'])) {
78  $src = $GLOBALS['TSFE']->cObj->stdWrap($src, $setup['src.']);
79  }
80  $paramStr .= ' src="' . htmlspecialchars($src) . '"';
81  } else {
82  $LD = $GLOBALS['TSFE']->tmpl->linkData($GLOBALS['TSFE']->page, '', $GLOBALS['TSFE']->no_cache, '', '', ($setup['options'] ? '&' . $setup['options'] : '') . $GLOBALS['TSFE']->cObj->getClosestMPvalueForPage($GLOBALS['TSFE']->page['uid']), (int)$typeNum);
83  $finalURL = $LD['totalURL'];
84  $paramStr .= ' src="' . htmlspecialchars($finalURL) . '"';
85  }
86  if ($setup['name']) {
87  $paramStr .= ' name="' . $setup['name'] . '"';
88  } else {
89  $paramStr .= ' name="' . $name . '"';
90  }
91  if ($setup['params']) {
92  $paramStr .= ' ' . $setup['params'];
93  }
94  return $paramStr;
95  }
96 
105  public function framesetParams($setup)
106  {
107  $paramStr = '';
108  if ($setup['cols']) {
109  $paramStr .= ' cols="' . $setup['cols'] . '"';
110  }
111  if ($setup['rows']) {
112  $paramStr .= ' rows="' . $setup['rows'] . '"';
113  }
114  if ($setup['params']) {
115  $paramStr .= ' ' . $setup['params'];
116  }
117  return $paramStr;
118  }
119 }
static makeInstance($className,... $constructorArguments)
static filterAndSortByNumericKeys($setupArr, $acceptAnyKeys=false)
if(TYPO3_MODE==='BE') $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tsfebeuserauth.php']['frontendEditingController']['default']