[FEATURE] Use mod dispatcher for tstemplate extensions
authorSusanne Moog <typo3@susannemoog.de>
Fri, 15 Jun 2012 15:23:17 +0000 (17:23 +0200)
committerHelmut Hummel <helmut.hummel@typo3.org>
Fri, 15 Jun 2012 19:01:31 +0000 (21:01 +0200)
Use the backend module dispatcher for the
tstemplate, tstemplate_analyzer, tstemplate_info,
tstemplate_objbrowser extensions.

Change-Id: I850e54c1948105c80f8221f43a96a128f10fa452
Resolves: #38093
Releases: 6.0
Reviewed-on: http://review.typo3.org/12099
Reviewed-by: Philipp Gampe
Tested-by: Philipp Gampe
Reviewed-by: Helmut Hummel
Tested-by: Helmut Hummel
t3lib/class.t3lib_tsparser_ext.php
typo3/sysext/tstemplate/ts/conf.php
typo3/sysext/tstemplate/ts/index.php
typo3/sysext/tstemplate_analyzer/class.tx_tstemplateanalyzer.php
typo3/sysext/tstemplate_info/class.tx_tstemplateinfo.php
typo3/sysext/tstemplate_objbrowser/class.tx_tstemplateobjbrowser.php

index dff2108..eeb4625 100644 (file)
@@ -344,10 +344,14 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
                                if ($PM == 'join') {
                                        $HTML .= $theIcon;
                                } else {
-                                       $aHref = 'index.php?id=' . $GLOBALS['SOBE']->id .
-                                                       '&tsbr[' . $depth . ']=' . ($deeper ? 0 : 1) .
-                                                       (t3lib_div::_GP('breakPointLN') ? '&breakPointLN=' . t3lib_div::_GP('breakPointLN') : '') .
-                                                       '#' . $goto;
+                                       $urlParameters = array(
+                                                       'id' => $GLOBALS['SOBE']->id,
+                                                       'tsbr[' . $depth . ']' => ($deeper ? 0 : 1),
+                                               );
+                                       if (t3lib_div::_GP('breakPointLN')) {
+                                               $urlParameters['breakPointLN'] = t3lib_div::_GP('breakPointLN');
+                                       }
+                                       $aHref = t3lib_BEfunc::getModuleUrl('web_ts', $urlParameters) . '#' . $goto;
                                        $HTML .= '<a name="' . $goto . '" href="' . htmlspecialchars($aHref) . '">' . $theIcon . '</a>';
                                }
 
@@ -357,9 +361,14 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
                                        $label = '<font color="#666666">' . $label . '</font>';
                                } else {
                                        if ($this->linkObjects) {
-                                               $aHref = 'index.php?id=' . $GLOBALS['SOBE']->id .
-                                                               '&sObj=' . $depth .
-                                                               (t3lib_div::_GP('breakPointLN') ? '&breakPointLN=' . t3lib_div::_GP('breakPointLN') : '');
+                                               $urlParameters = array(
+                                                               'id' => $GLOBALS['SOBE']->id,
+                                                               'sObj' => $depth,
+                                                       );
+                                               if (t3lib_div::_GP('breakPointLN')) {
+                                                       $urlParameters['breakPointLN'] = t3lib_div::_GP('breakPointLN');
+                                               }
+                                               $aHref = t3lib_BEfunc::getModuleUrl('web_ts', $urlParameters);
                                                if ($this->bType != 'const') {
                                                        $ln = is_array($arr[$key . '.ln..']) ? 'Defined in: ' . $this->lineNumberToScript($arr[$key . '.ln..']) : 'N/A';
                                                } else {
@@ -583,7 +592,12 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
                                        : t3lib_iconWorks::getSpriteIcon('mimetypes-x-content-template-static', array('title' => $alttext))
                        );
                        if (in_array($row['templateID'], $this->clearList_const) || in_array($row['templateID'], $this->clearList_setup)) {
-                               $A_B = '<a href="index.php?id=' . htmlspecialchars($GLOBALS['SOBE']->id . '&template=' . $row['templateID']) . '">';
+                               $urlParameters = array(
+                                               'id' => $GLOBALS['SOBE']->id,
+                                               'template' => $row['templateID'],
+                                       );
+                               $aHref = t3lib_BEfunc::getModuleUrl('web_ts', $urlParameters);
+                               $A_B = '<a href="'. htmlspecialchars($aHref) . '">';
                                $A_E = '</a>';
                                if (t3lib_div::_GP('template') == $row['templateID']) {
                                        $A_B = '<strong>' . $A_B;
index 92ae9c3..75c0c7c 100644 (file)
@@ -1,11 +1,13 @@
 <?php
-define('TYPO3_MOD_PATH', 'sysext/tstemplate/ts/');
-$BACK_PATH='../../../';
+
+$MCONF['script'] = '_DISPATCH';
+
+$MCONF['access'] = 'admin';
+$MCONF['name'] = 'web_ts';
 
 $MLANG['default']['tabs_images']['tab'] = 'ts1.gif';
-$MLANG['default']['ll_ref']='LLL:EXT:tstemplate/ts/locallang_mod.xml';
+$MLANG['default']['ll_ref'] = 'LLL:EXT:tstemplate/ts/locallang_mod.xml';
+
+
 
-$MCONF['script']='index.php';
-$MCONF['access']='admin';              // If this is changed so not only admin-users can manipulate templates, there need to be done something with the constant editor that is not allowed to 'clear all cache' then!!
-$MCONF['name']='web_ts';
 ?>
\ No newline at end of file
index 1fc65a9..b5b6ed4 100644 (file)
  * @author     Kasper Skårhøj <kasperYYYY@typo3.com>
  */
 
-
-
-unset($MCONF);
-require('conf.php');
-require($BACK_PATH . 'init.php');
-require($BACK_PATH . 'template.php');
 $GLOBALS['LANG']->includeLLFile('EXT:tstemplate/ts/locallang.xml');
-
 $BE_USER->modAccess($MCONF, TRUE);
 
 
@@ -104,8 +97,12 @@ class SC_mod_web_ts_index extends t3lib_SCbase {
                $this->doc->setModuleTemplate('templates/tstemplate.html');
 
                if ($this->id && $this->access) {
-                       $this->doc->form = '<form action="index.php?id=' . $this->id . '" method="post" enctype="' . $GLOBALS['TYPO3_CONF_VARS']['SYS']['form_enctype'] . '" name="editForm">';
-
+                       $urlParameters = array(
+                                       'id' => $this->id,
+                                       'template' => 'all',
+                               );
+                       $aHref = t3lib_BEfunc::getModuleUrl('web_ts', $urlParameters);
+                       $this->doc->form = '<form action="' . htmlspecialchars($aHref) . '" method="post" enctype="' . $GLOBALS['TYPO3_CONF_VARS']['SYS']['form_enctype'] . '" name="editForm">';
 
                                // JavaScript
                        $this->doc->JScode = '
@@ -115,10 +112,10 @@ class SC_mod_web_ts_index extends t3lib_SCbase {
                                window.location.href = URL;
                        }
                        function uFormUrl(aname) {
-                               document.forms[0].action = "index.php?id=' . $this->id . '#"+aname;
+                               document.forms[0].action = ' . t3lib_div::quoteJSvalue($aHref . '#', TRUE) . '+aname;
                        }
                        function brPoint(lnumber,t) {
-                               window.location.href = "index.php?id=' . $this->id . '&SET[function]=tx_tstemplateobjbrowser&SET[ts_browser_type]="+(t?"setup":"const")+"&breakPointLN="+lnumber;
+                               window.location.href = ' . t3lib_div::quoteJSvalue($aHref . '&SET[function]=tx_tstemplateobjbrowser&SET[ts_browser_type]=', TRUE) . '+(t?"setup":"const")+"&breakPointLN="+lnumber;
                                return false;
                        }
                </script>
@@ -309,7 +306,11 @@ class SC_mod_web_ts_index extends t3lib_SCbase {
                        } elseif($this->extClassConf['name'] == 'tx_tstemplateobjbrowser') {
                                if(!empty($this->sObj)) {
                                                // BACK
-                                       $buttons['back'] = '<a href="index.php?id=' . $this->id . '" class="typo3-goBack" title="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.goBack', TRUE) . '">' .
+                                       $urlParameters = array(
+                                                       'id' => $this->id,
+                                               );
+                                       $aHref = t3lib_BEfunc::getModuleUrl('web_ts', $urlParameters);
+                                       $buttons['back'] = '<a href="' . htmlspecialchars($aHref) . '" class="typo3-goBack" title="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.goBack', TRUE) . '">' .
                                                                        t3lib_iconWorks::getSpriteIcon('actions-view-go-back') .
                                                                '</a>';
                                }
@@ -334,10 +335,14 @@ class SC_mod_web_ts_index extends t3lib_SCbase {
        // ***************************
 
        function linkWrapTemplateTitle($title, $onlyKey = '') {
+               $urlParameters = array(
+                               'id' => $this->id,
+                       );
+               $aHref = t3lib_BEfunc::getModuleUrl('web_ts', $urlParameters);
                if ($onlyKey) {
-                       $title = '<a href="index.php?id=' . htmlspecialchars($GLOBALS['SOBE']->id . '&e[' . $onlyKey . ']=1&SET[function]=tx_tstemplateinfo') . '">' . htmlspecialchars($title) . '</a>';
+                       $title = '<a href="' . htmlspecialchars($aHref . '&e[' . $onlyKey . ']=1&SET[function]=tx_tstemplateinfo') . '">' . htmlspecialchars($title) . '</a>';
                } else {
-                       $title = '<a href="index.php?id=' . htmlspecialchars($GLOBALS['SOBE']->id . '&e[constants]=1&e[config]=1&SET[function]=tx_tstemplateinfo') . '">' . htmlspecialchars($title) . '</a>';
+                       $title = '<a href="' . htmlspecialchars($aHref . '&e[constants]=1&e[config]=1&SET[function]=tx_tstemplateinfo') . '">' . htmlspecialchars($title) . '</a>';
                }
                return $title;
        }
@@ -348,7 +353,7 @@ class SC_mod_web_ts_index extends t3lib_SCbase {
                /* @var $tmpl t3lib_tsparser_ext */
                $tmpl->tt_track = FALSE;        // Do not log time-performance information
                $tmpl->init();
-
+               $theOutput = '';
                $flashMessage = t3lib_div::makeInstance(
                        't3lib_FlashMessage',
                        $GLOBALS['LANG']->getLL('noTemplateDescription') . '<br />' . $GLOBALS['LANG']->getLL('createTemplateToEditConfiguration'),
@@ -389,9 +394,13 @@ class SC_mod_web_ts_index extends t3lib_SCbase {
                $first = $tmpl->ext_prevPageWithTemplate($this->id, $this->perms_clause);
                if ($first) {
                        $theOutput .= $this->doc->spacer(10);
+                       $urlParameters = array(
+                                       'id' =>  $first['uid'],
+                               );
+                       $aHref = t3lib_BEfunc::getModuleUrl('web_ts', $urlParameters);
                        $theOutput .= $this->doc->section($GLOBALS['LANG']->getLL('goToClosest'),
                                        sprintf($GLOBALS['LANG']->getLL('goToClosestDescription') . '<br /><br />%s<strong>' . $GLOBALS['LANG']->getLL('goToClosestAction') . '</strong>%s', htmlspecialchars($first['title']), $first['uid'],
-                                       '<a href="index.php?id=' . $first['uid'] . '">', '</a>'), 0, 1);
+                                       '<a href="' . htmlspecialchars($aHref) . '">', '</a>'), 0, 1);
                }
                return $theOutput;
        }
index 2af1b53..30ae649 100644 (file)
@@ -121,7 +121,13 @@ class tx_tstemplateanalyzer extends t3lib_extobjbase {
                $theOutput.=$this->pObj->doc->spacer(5);
                $theOutput.=$this->pObj->doc->section($GLOBALS['LANG']->getLL('templateHierarchy', TRUE), $hierar, 0, 1);
 
-               $completeLink = '<p><a href="index.php?id=' . $GLOBALS['SOBE']->id . '&amp;template=all">' . $GLOBALS['LANG']->getLL('viewCompleteTS', TRUE) . '</a></p>';
+               $urlParameters = array(
+                               'id' => $GLOBALS['SOBE']->id,
+                               'template' => 'all',
+                       );
+               $aHref = t3lib_BEfunc::getModuleUrl('web_ts', $urlParameters);
+
+               $completeLink = '<p><a href="' . htmlspecialchars($aHref) . '">' . $GLOBALS['LANG']->getLL('viewCompleteTS', TRUE) . '</a></p>';
                $theOutput .= $this->pObj->doc->spacer(5);
                $theOutput .= $this->pObj->doc->section($GLOBALS['LANG']->getLL('completeTS', TRUE), $completeLink, 0, 1);
                $theOutput.=$this->pObj->doc->spacer(15);
index 310dbfc..3d44592 100644 (file)
@@ -46,7 +46,11 @@ class tx_tstemplateinfo extends t3lib_extobjbase {
         */
        function tableRow($label, $data, $field) {
                $ret = '<tr><td>';
-               $ret.= '<a href="index.php?id=' . $this->pObj->id . '&e[' . $field . ']=1">' .
+               $urlParameters = array(
+                               'id' => $this->pObj->id,
+                       );
+               $aHref = t3lib_BEfunc::getModuleUrl('web_ts', $urlParameters);
+               $ret.= '<a href="' . htmlspecialchars($aHref . '&e[' . $field . ']=1') . '">' .
                        t3lib_iconWorks::getSpriteIcon('actions-document-open', array('title' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:editField', TRUE))) . '<strong>' . $label . '&nbsp;&nbsp;</strong></a>';
                $ret .= '</td><td width="80%" class="bgColor4">' . $data . '&nbsp;</td></tr>';
                return $ret;
@@ -72,7 +76,11 @@ class tx_tstemplateinfo extends t3lib_extobjbase {
                                $functions .= '<td' . $bgcol . ' nowrap="nowrap">';
                                $fI = t3lib_div::split_fileref($v);
                                if (t3lib_div::inList($this->pObj->textExtensions, $fI['fileext'])) {
-                                       $functions.= '<a href="index.php?id='.$this->pObj->id.'&e[file]='.rawurlencode($v).'">'.t3lib_iconWorks::getSpriteIcon('actions-document-open', array('title'=> $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:editFile', TRUE))) . '</a>';
+                                       $urlParameters = array(
+                                                       'id' => $this->pObj->id,
+                                               );
+                                       $aHref = t3lib_BEfunc::getModuleUrl('web_ts', $urlParameters);
+                                       $functions.= '<a href="' . htmlspecialchars($aHref . '&e[file]=' . rawurlencode($v)) . '">' . t3lib_iconWorks::getSpriteIcon('actions-document-open', array('title' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:editFile', TRUE))) . '</a>';
                                }
                                $functions.= '</td>';
                        }
@@ -216,7 +224,12 @@ class tx_tstemplateinfo extends t3lib_extobjbase {
                $newId = $this->pObj->createTemplate($this->pObj->id, $saveId);
                if($newId) {
                        // switch to new template
-                       t3lib_utility_Http::redirect('index.php?id=' . $this->pObj->id. '&SET[templatesOnPage]=' . $newId);
+                       $urlParameters = array(
+                                       'id' => $this->pObj->id,
+                                       'SET[templatesOnPage]' => $newId,
+                               );
+                       $aHref = t3lib_BEfunc::getModuleUrl('web_ts', $urlParameters);
+                       t3lib_utility_Http::redirect($aHref);
                }
 
                if ($existTemplate) {
@@ -443,7 +456,7 @@ class tx_tstemplateinfo extends t3lib_extobjbase {
                                        $this->pObj->id,
                                        'SET[includeTypoScriptFileContent]',
                                        $this->pObj->MOD_SETTINGS['includeTypoScriptFileContent'],
-                                       'index.php',
+                                       '',
                                        '&e[constants]=1',
                                        'id="checkIncludeTypoScriptFileContent"'
                                );
@@ -489,7 +502,7 @@ class tx_tstemplateinfo extends t3lib_extobjbase {
                                        $this->pObj->id,
                                        'SET[includeTypoScriptFileContent]',
                                        $this->pObj->MOD_SETTINGS['includeTypoScriptFileContent'],
-                                       'index.php',
+                                       '',
                                        '&e[config]=1',
                                        'id="checkIncludeTypoScriptFileContent"'
                                );
index 3822b75..bdd03c9 100644 (file)
@@ -404,13 +404,17 @@ class tx_tstemplateobjbrowser extends t3lib_extobjbase {
                        }
                                // Links:
                        $out = '';
+                       $urlParameters = array(
+                                       'id' => $this->pObj->id,
+                               );
+                       $aHref = t3lib_BEfunc::getModuleUrl('web_ts', $urlParameters);
                        if (!$this->pObj->MOD_SETTINGS['ts_browser_TLKeys_'.$bType][$this->pObj->sObj]) {
                                if (count($theSetup)) {
-                                       $out = '<a href="index.php?id=' . $this->pObj->id . '&addKey[' . rawurlencode($this->pObj->sObj) . ']=1&SET[ts_browser_toplevel_' . $bType . ']=' . rawurlencode($this->pObj->sObj) . '">';
+                                       $out = '<a href="' . htmlspecialchars($aHref . '&addKey[' . rawurlencode($this->pObj->sObj) . ']=1&SET[ts_browser_toplevel_' . $bType . ']=' . rawurlencode($this->pObj->sObj)) . '">';
                                        $out .= sprintf($GLOBALS['LANG']->getLL('addKey'), htmlspecialchars($this->pObj->sObj));
                                }
                        } else {
-                               $out = '<a href="index.php?id=' . $this->pObj->id . '&addKey[' . rawurlencode($this->pObj->sObj) . ']=0&SET[ts_browser_toplevel_' . $bType . ']=0">';
+                               $out = '<a href="' . htmlspecialchars($aHref . '&addKey[' . rawurlencode($this->pObj->sObj) . ']=0&SET[ts_browser_toplevel_' . $bType . ']=0') . '">';
                                $out .= sprintf($GLOBALS['LANG']->getLL('removeKey'), htmlspecialchars($this->pObj->sObj));
                        }
                        if ($out) {
@@ -420,7 +424,7 @@ class tx_tstemplateobjbrowser extends t3lib_extobjbase {
 
                                // back
                        $out = $GLOBALS['LANG']->getLL('back');
-                       $out = '<a href="index.php?id=' . $this->pObj->id . '"><strong>' . $out . '</strong></a>';
+                       $out = '<a href="' . htmlspecialchars($aHref) . '"><strong>' . $out . '</strong></a>';
                        $theOutput .= $this->pObj->doc->divider(5);
                        $theOutput .= $this->pObj->doc->section('', $out);
 
@@ -452,6 +456,10 @@ class tx_tstemplateobjbrowser extends t3lib_extobjbase {
                        $tree = $tmpl->substituteCMarkers($tree);
 
 
+                       $urlParameters = array(
+                                       'id' => $this->pObj->id,
+                               );
+                       $aHref = t3lib_BEfunc::getModuleUrl('web_ts', $urlParameters);
 
                                // Parser Errors:
                        $pEkey = ($bType == 'setup' ? 'config' : 'constants');
@@ -462,7 +470,7 @@ class tx_tstemplateobjbrowser extends t3lib_extobjbase {
                                foreach ($tmpl->parserErrors[$pEkey] as $inf) {
                                        $errorLink = '';
                                        if ($templateAnalyzerInstalled) {
-                                               $errorLink = ' <a href="index.php?id=' . $this->pObj->id . '&SET[function]=tx_tstemplateanalyzer&template=all&SET[ts_analyzer_checkLinenum]=1#line-' . $inf[2] . '">'
+                                               $errorLink = ' <a href="' . htmlspecialchars($aHref . '&SET[function]=tx_tstemplateanalyzer&template=all&SET[ts_analyzer_checkLinenum]=1#line-' . $inf[2]) . '">'
                                                        . $GLOBALS['LANG']->getLL('errorShowDetails')
                                                        . '</a>';
                                        }
@@ -483,7 +491,7 @@ class tx_tstemplateobjbrowser extends t3lib_extobjbase {
 
 
                        if (isset($this->pObj->MOD_SETTINGS['ts_browser_TLKeys_' . $bType][$theKey])) {
-                               $remove = '<td width="1%" nowrap><a href="index.php?id=' . $this->pObj->id . '&addKey[' . $theKey . ']=0&SET[ts_browser_toplevel_' . $bType . ']=0"><strong>' . $GLOBALS['LANG']->getLL('removeKey') . '</strong></a></td>';
+                               $remove = '<td width="1%" nowrap><a href="' . htmlspecialchars($aHref . '&addKey[' . $theKey . ']=0&SET[ts_browser_toplevel_' . $bType . ']=0') . '"><strong>' . $GLOBALS['LANG']->getLL('removeKey') . '</strong></a></td>';
                        } else {
                                $remove = '';
                        }