Bug #19346 » class.tx_tstemplateanalyzer.php.v2.diff
typo3/sysext/tstemplate_analyzer/class.tx_tstemplateanalyzer.php (working copy) | ||
---|---|---|
* @author Kasper Skaarhoj <kasperYYYY@typo3.com>
|
||
*/
|
||
require_once(PATH_t3lib."class.t3lib_extobjbase.php");
|
||
require_once(PATH_t3lib . 'class.t3lib_extobjbase.php');
|
||
class tx_tstemplateanalyzer extends t3lib_extobjbase {
|
||
function init(&$pObj,$conf) {
|
||
parent::init($pObj,$conf);
|
||
function init(&$pObj, $conf) {
|
||
parent::init($pObj, $conf);
|
||
$this->pObj->modMenu_setDefaultList.= ',ts_analyzer_checkLinenum,ts_analyzer_checkSyntax,ts_analyzer_checkSyntaxBlockmode';
|
||
$this->pObj->modMenu_setDefaultList .= ',ts_analyzer_checkLinenum,ts_analyzer_checkSyntax,ts_analyzer_checkSyntaxBlockmode';
|
||
}
|
||
function modMenu() {
|
||
global $LANG;
|
||
return array (
|
||
'ts_analyzer_checkSetup' => '1',
|
||
... | ... | |
);
|
||
}
|
||
function initialize_editor($pageId,$template_uid=0) {
|
||
function initialize_editor($pageId, $template_uid = 0) {
|
||
// Initializes the module. Done in this function because we may need to re-initialize if data is submitted!
|
||
global $tmpl,$tplRow,$theConstants,$rootLine;
|
||
$tmpl = t3lib_div::makeInstance("t3lib_tsparser_ext"); // Defined global here!
|
||
$tmpl->tt_track = 0; // Do not log time-performance information
|
||
$tmpl->init();
|
||
$GLOBALS['tmpl'] = t3lib_div::makeInstance('t3lib_tsparser_ext'); // Defined global here!
|
||
$GLOBALS['tmpl']->tt_track = false; // Do not log time-performance information
|
||
$GLOBALS['tmpl']->init();
|
||
// Gets the rootLine
|
||
$sys_page = t3lib_div::makeInstance("t3lib_pageSelect");
|
||
$sys_page = t3lib_div::makeInstance('t3lib_pageSelect');
|
||
$rootLine = $sys_page->getRootLine($pageId);
|
||
$tmpl->runThroughTemplates($rootLine,$template_uid); // This generates the constants/config + hierarchy info for the template.
|
||
$GLOBALS['tmpl']->runThroughTemplates($rootLine, $template_uid); // This generates the constants/config + hierarchy info for the template.
|
||
$tplRow = $tmpl->ext_getFirstTemplate($pageId,$template_uid); // Get the row of the first VISIBLE template of the page. whereclause like the frontend.
|
||
if (is_array($tplRow)) { // IF there was a template...
|
||
return 1;
|
||
$GLOBALS['tplRow'] = $GLOBALS['tmpl']->ext_getFirstTemplate($pageId, $template_uid); // Get the row of the first VISIBLE template of the page. whereclause like the frontend.
|
||
if (is_array($GLOBALS['tplRow'])) { // IF there was a template...
|
||
return true;
|
||
}
|
||
}
|
||
function main() {
|
||
// Initializes the module. Done in this function because we may need to re-initialize if data is submitted!
|
||
global $SOBE,$BE_USER,$LANG,$BACK_PATH,$TCA_DESCR,$TCA,$CLIENT,$TYPO3_CONF_VARS;
|
||
global $tmpl,$tplRow,$theConstants,$rootLine;
|
||
|
||
// **************************
|
||
// Checking for more than one template an if, set a menu...
|
||
// **************************
|
||
$manyTemplatesMenu = $this->pObj->templateMenu();
|
||
$template_uid = 0;
|
||
if ($manyTemplatesMenu) {
|
||
$template_uid = $this->pObj->MOD_SETTINGS["templatesOnPage"];
|
||
$template_uid = $this->pObj->MOD_SETTINGS['templatesOnPage'];
|
||
}
|
||
// **************************
|
||
... | ... | |
// **************************
|
||
// BUGBUG: Should we check if the uset may at all read and write template-records???
|
||
$existTemplate = $this->initialize_editor($this->pObj->id,$template_uid); // initialize
|
||
$existTemplate = $this->initialize_editor($this->pObj->id, $template_uid); // initialize
|
||
if ($existTemplate) {
|
||
$theOutput.=$this->pObj->doc->divider(5);
|
||
$theOutput.=$this->pObj->doc->section("Current template:",'<img '.t3lib_iconWorks::skinImg($BACK_PATH, t3lib_iconWorks::getIcon('sys_template', $tplRow)).' align="top" /> <b>'.$this->pObj->linkWrapTemplateTitle($tplRow["title"]).'</b>'.htmlspecialchars(trim($tplRow["sitetitle"])?' - ('.$tplRow["sitetitle"].')':''));
|
||
$theOutput .= $this->pObj->doc->divider(5);
|
||
$theOutput .= $this->pObj->doc->section('Current template:', '<img ' . t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'] , t3lib_iconWorks::getIcon('sys_template', $GLOBALS['tplRow'])) . ' align="top" /> <b>' . $this->pObj->linkWrapTemplateTitle($GLOBALS['tplRow']['title']) . '</b>' . htmlspecialchars(trim($GLOBALS['tplRow']['sitetitle']) ? ' - (' . $GLOBALS['tplRow']['sitetitle'] . ')' : ''));
|
||
}
|
||
if ($manyTemplatesMenu) {
|
||
$theOutput.=$this->pObj->doc->section("",$manyTemplatesMenu);
|
||
$theOutput .= $this->pObj->doc->section('', $manyTemplatesMenu);
|
||
}
|
||
// debug($tmpl->hierarchyInfo);
|
||
... | ... | |
// debug($tmpl->hierarchyInfo);
|
||
$tmpl->clearList_const_temp = array_flip($tmpl->clearList_const);
|
||
$tmpl->clearList_setup_temp = array_flip($tmpl->clearList_setup);
|
||
$GLOBALS['tmpl']->clearList_const_temp = array_flip($GLOBALS['tmpl']->clearList_const);
|
||
$GLOBALS['tmpl']->clearList_setup_temp = array_flip($GLOBALS['tmpl']->clearList_setup);
|
||
$pointer = count($tmpl->hierarchyInfo);
|
||
$tmpl->hierarchyInfoArr = $tmpl->ext_process_hierarchyInfo(array(), $pointer);
|
||
$tmpl->procesIncludes();
|
||
$pointer = count($GLOBALS['tmpl']->hierarchyInfo);
|
||
$GLOBALS['tmpl']->hierarchyInfoArr = $GLOBALS['tmpl']->ext_process_hierarchyInfo(array(), $pointer);
|
||
$GLOBALS['tmpl']->procesIncludes();
|
||
$hierarArr = array();
|
||
$head = '<tr class="c-headLineTable">';
|
||
$head.= '<td>Title</td>';
|
||
$head.= '<td>Rootlevel</td>';
|
||
$head.= '<td>Clear Setup</td>';
|
||
$head.= '<td>Clear Constants</td>';
|
||
$head.= '<td>PID</td>';
|
||
$head.= '<td>Rootline</td>';
|
||
$head.= '<td>Next Level</td>';
|
||
$head.= '</tr>';
|
||
$hierar = implode(array_reverse($tmpl->ext_getTemplateHierarchyArr($tmpl->hierarchyInfoArr, "", array(), 1)), "");
|
||
$hierar= '<table id="ts-analyzer" border="0"" cellpadding="0"" cellspacing="1">' . $head . $hierar . '</table>';
|
||
$head .= '<td>Title</td>';
|
||
$head .= '<td>Rootlevel</td>';
|
||
$head .= '<td>Clear Setup</td>';
|
||
$head .= '<td>Clear Constants</td>';
|
||
$head .= '<td>PID</td>';
|
||
$head .= '<td>Rootline</td>';
|
||
$head .= '<td>Next Level</td>';
|
||
$head .= '</tr>';
|
||
$hierar = implode(array_reverse($GLOBALS['tmpl']->ext_getTemplateHierarchyArr($GLOBALS['tmpl']->hierarchyInfoArr, '', array(), 1)), '');
|
||
$hierar = '<table id="ts-analyzer" border="0" cellpadding="0" cellspacing="1">' . $head . $hierar . '</table>';
|
||
$theOutput.=$this->pObj->doc->spacer(5);
|
||
$theOutput.=$this->pObj->doc->section("Template hierarchy:", $hierar, 0, 1);
|
||
$theOutput .= $this->pObj->doc->spacer(5);
|
||
$theOutput .= $this->pObj->doc->section('Template hierarchy:', $hierar, 0, 1);
|
||
// Output options
|
||
$theOutput.=$this->pObj->doc->spacer(25);
|
||
$theOutput.=$this->pObj->doc->divider(0);
|
||
$theOutput.=$this->pObj->doc->section("Display Options", '', 1, 1);
|
||
$theOutput .= $this->pObj->doc->spacer(25);
|
||
$theOutput .= $this->pObj->doc->divider(0);
|
||
$theOutput .= $this->pObj->doc->section('Display Options', '', 1, 1);
|
||
$addParams = t3lib_div::_GET('template') ? '&template=' . t3lib_div::_GET('template') : '';
|
||
$theOutput .= '<div class="tst-analyzer-options">' .
|
||
t3lib_BEfunc::getFuncCheck($this->pObj->id, "SET[ts_analyzer_checkLinenum]", $this->pObj->MOD_SETTINGS["ts_analyzer_checkLinenum"], '', $addParams, 'id="checkTs_analyzer_checkLinenum"') .
|
||
t3lib_BEfunc::getFuncCheck($this->pObj->id, 'SET[ts_analyzer_checkLinenum]', $this->pObj->MOD_SETTINGS['ts_analyzer_checkLinenum'], '', $addParams, 'id="checkTs_analyzer_checkLinenum"') .
|
||
'<label for="checkTs_analyzer_checkLinenum">Line numbers</label> ' .
|
||
t3lib_BEfunc::getFuncCheck($this->pObj->id, "SET[ts_analyzer_checkSyntax]", $this->pObj->MOD_SETTINGS["ts_analyzer_checkSyntax"], '', $addParams, 'id="checkTs_analyzer_checkSyntax"') .
|
||
t3lib_BEfunc::getFuncCheck($this->pObj->id, 'SET[ts_analyzer_checkSyntax]', $this->pObj->MOD_SETTINGS['ts_analyzer_checkSyntax'], '', $addParams, 'id="checkTs_analyzer_checkSyntax"') .
|
||
'<label for="checkTs_analyzer_checkSyntax">Syntax highlight</label> ' .
|
||
(!$this->pObj->MOD_SETTINGS["ts_analyzer_checkSyntax"] ?
|
||
t3lib_BEfunc::getFuncCheck($this->pObj->id, "SET[ts_analyzer_checkComments]", $this->pObj->MOD_SETTINGS["ts_analyzer_checkComments"], '', $addParams, 'id="checkTs_analyzer_checkComments"') .
|
||
(!$this->pObj->MOD_SETTINGS['ts_analyzer_checkSyntax'] ?
|
||
t3lib_BEfunc::getFuncCheck($this->pObj->id, 'SET[ts_analyzer_checkComments]', $this->pObj->MOD_SETTINGS['ts_analyzer_checkComments'], '', $addParams, 'id="checkTs_analyzer_checkComments"') .
|
||
'<label for="checkTs_analyzer_checkComments">Comments</label> ' .
|
||
t3lib_BEfunc::getFuncCheck($this->pObj->id, "SET[ts_analyzer_checkCrop]", $this->pObj->MOD_SETTINGS["ts_analyzer_checkCrop"], '', $addParams, 'id="checkTs_analyzer_checkCrop"') .
|
||
t3lib_BEfunc::getFuncCheck($this->pObj->id, 'SET[ts_analyzer_checkCrop]', $this->pObj->MOD_SETTINGS['ts_analyzer_checkCrop'], '', $addParams, 'id="checkTs_analyzer_checkCrop"') .
|
||
'<label for="checkTs_analyzer_checkCrop">Crop lines</label> '
|
||
:
|
||
t3lib_BEfunc::getFuncCheck($this->pObj->id, "SET[ts_analyzer_checkSyntaxBlockmode]", $this->pObj->MOD_SETTINGS["ts_analyzer_checkSyntaxBlockmode"], '', $addParams, 'id="checkTs_analyzer_checkSyntaxBlockmode"') .
|
||
t3lib_BEfunc::getFuncCheck($this->pObj->id, 'SET[ts_analyzer_checkSyntaxBlockmode]', $this->pObj->MOD_SETTINGS['ts_analyzer_checkSyntaxBlockmode'], '', $addParams, 'id="checkTs_analyzer_checkSyntaxBlockmode"') .
|
||
'<label for="checkTs_analyzer_checkSyntaxBlockmode">Block mode</label> '
|
||
) . '</div>';
|
||
|
||
... | ... | |
// Output Constants
|
||
if (t3lib_div::_GET('template')) {
|
||
$theOutput .= $this->pObj->doc->section("Constants:", "", 0, 1);
|
||
$theOutput .= $this->pObj->doc->section('Constants:', '', 0, 1);
|
||
$theOutput .= $this->pObj->doc->sectionEnd();
|
||
$theOutput .= '
|
||
<table border=0 cellpadding=1 cellspacing=0>
|
||
... | ... | |
$theOutput .= '
|
||
<table border=0 cellpadding=1 cellspacing=0>
|
||
';
|
||
$tmpl->ext_lineNumberOffset = -2; // Don't know why -2 and not 0... :-) But works.
|
||
$tmpl->ext_lineNumberOffset_mode = "const";
|
||
$tmpl->ext_lineNumberOffset += count(explode(chr(10), t3lib_TSparser::checkIncludeLines("" . $GLOBALS["TYPO3_CONF_VARS"]["FE"]["defaultTypoScript_constants"]))) + 1;
|
||
$GLOBALS['tmpl']->ext_lineNumberOffset = -2; // Don't know why -2 and not 0... :-) But works.
|
||
$GLOBALS['tmpl']->ext_lineNumberOffset_mode = 'const';
|
||
$GLOBALS['tmpl']->ext_lineNumberOffset += count(explode(chr(10), t3lib_TSparser::checkIncludeLines('' . $GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_constants']))) + 1;
|
||
reset($tmpl->clearList_const);
|
||
foreach ($tmpl->constants as $key => $val) {
|
||
$cVal = current($tmpl->clearList_const);
|
||
if ($cVal == t3lib_div::_GET('template') || t3lib_div::_GET('template') == "all") {
|
||
reset($GLOBALS['tmpl']->clearList_const);
|
||
foreach ($GLOBALS['tmpl']->constants as $key => $val) {
|
||
$cVal = current($GLOBALS['tmpl']->clearList_const);
|
||
if ($cVal == t3lib_div::_GET('template') || t3lib_div::_GET('template') == 'all') {
|
||
$theOutput .= '
|
||
<tr>
|
||
<td><img src="clear.gif" width="3" height="1" /></td><td class="bgColor2"><b>' . $tmpl->templateTitles[$cVal] . '</b></td></tr>
|
||
<td><img src="clear.gif" width="3" height="1" /></td><td class="bgColor2"><b>' . $GLOBALS['tmpl']->templateTitles[$cVal] . '</b></td></tr>
|
||
<tr>
|
||
<td><img src="clear.gif" width="3" height="1" /></td>
|
||
<td class="bgColor2"><table border=0 cellpadding=0 cellspacing=0 class="bgColor0" width="100%"><tr><td nowrap>' .
|
||
$tmpl->ext_outputTS(array($val), $this->pObj->MOD_SETTINGS["ts_analyzer_checkLinenum"], $this->pObj->MOD_SETTINGS["ts_analyzer_checkComments"], $this->pObj->MOD_SETTINGS["ts_analyzer_checkCrop"], $this->pObj->MOD_SETTINGS["ts_analyzer_checkSyntax"], $this->pObj->MOD_SETTINGS["ts_analyzer_checkSyntaxBlockmode"]) .
|
||
$GLOBALS['tmpl']->ext_outputTS(array($val), $this->pObj->MOD_SETTINGS['ts_analyzer_checkLinenum'], $this->pObj->MOD_SETTINGS['ts_analyzer_checkComments'], $this->pObj->MOD_SETTINGS['ts_analyzer_checkCrop'], $this->pObj->MOD_SETTINGS['ts_analyzer_checkSyntax'], $this->pObj->MOD_SETTINGS['ts_analyzer_checkSyntaxBlockmode']) .
|
||
'</td></tr></table>
|
||
</td>
|
||
</tr>
|
||
... | ... | |
</td>
|
||
</tr>
|
||
';
|
||
if (t3lib_div::_GET('template') != "all") {
|
||
if (t3lib_div::_GET('template') != 'all') {
|
||
break;
|
||
}
|
||
}
|
||
$tmpl->ext_lineNumberOffset += count(explode(chr(10), $val)) + 1;
|
||
next($tmpl->clearList_const);
|
||
$GLOBALS['tmpl']->ext_lineNumberOffset += count(explode(chr(10), $val)) + 1;
|
||
next($GLOBALS['tmpl']->clearList_const);
|
||
}
|
||
$theOutput .= '
|
||
</table>
|
||
... | ... | |
// Output setup
|
||
if (t3lib_div::_GET('template')) {
|
||
$theOutput .= $this->pObj->doc->spacer(15);
|
||
$theOutput .= $this->pObj->doc->section("SETUP:", "", 0, 1);
|
||
$theOutput .= $this->pObj->doc->section('SETUP:', '', 0, 1);
|
||
$theOutput .= $this->pObj->doc->sectionEnd();
|
||
$theOutput .= '
|
||
<table border=0 cellpadding=1 cellspacing=0>
|
||
... | ... | |
$theOutput .= '
|
||
<table border=0 cellpadding=1 cellspacing=0>
|
||
';
|
||
$tmpl->ext_lineNumberOffset = 0;
|
||
$tmpl->ext_lineNumberOffset_mode = "setup";
|
||
$tmpl->ext_lineNumberOffset += count(explode(chr(10), t3lib_TSparser::checkIncludeLines("" . $GLOBALS["TYPO3_CONF_VARS"]["FE"]["defaultTypoScript_setup"]))) + 1;
|
||
$GLOBALS['tmpl']->ext_lineNumberOffset = 0;
|
||
$GLOBALS['tmpl']->ext_lineNumberOffset_mode = 'setup';
|
||
$GLOBALS['tmpl']->ext_lineNumberOffset += count(explode(chr(10), t3lib_TSparser::checkIncludeLines('' . $GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_setup']))) + 1;
|
||
reset($tmpl->clearList_setup);
|
||
foreach ($tmpl->config as $key => $val) {
|
||
if (current($tmpl->clearList_setup) == t3lib_div::_GET('template') || t3lib_div::_GET('template') == "all") {
|
||
reset($GLOBALS['tmpl']->clearList_setup);
|
||
foreach ($GLOBALS['tmpl']->config as $key => $val) {
|
||
if (current($GLOBALS['tmpl']->clearList_setup) == t3lib_div::_GET('template') || t3lib_div::_GET('template') == 'all') {
|
||
$theOutput .= '
|
||
<tr>
|
||
<td><img src="clear.gif" width="3" height="1" /></td><td class="bgColor2"><b>' . $tmpl->templateTitles[current($tmpl->clearList_setup)] . '</b></td></tr>
|
||
<td><img src="clear.gif" width="3" height="1" /></td><td class="bgColor2"><b>' . $GLOBALS['tmpl']->templateTitles[current($GLOBALS['tmpl']->clearList_setup)] . '</b></td></tr>
|
||
<tr>
|
||
<td><img src="clear.gif" width="3" height="1" /></td>
|
||
<td class="bgColor2"><table border=0 cellpadding=0 cellspacing=0 class="bgColor0" width="100%"><tr><td nowrap>'.$tmpl->ext_outputTS(array($val),$this->pObj->MOD_SETTINGS["ts_analyzer_checkLinenum"],$this->pObj->MOD_SETTINGS["ts_analyzer_checkComments"],$this->pObj->MOD_SETTINGS["ts_analyzer_checkCrop"],$this->pObj->MOD_SETTINGS["ts_analyzer_checkSyntax"],$this->pObj->MOD_SETTINGS["ts_analyzer_checkSyntaxBlockmode"]).'</td></tr></table>
|
||
<td class="bgColor2"><table border=0 cellpadding=0 cellspacing=0 class="bgColor0" width="100%"><tr><td nowrap>' . $GLOBALS['tmpl']->ext_outputTS(array($val), $this->pObj->MOD_SETTINGS['ts_analyzer_checkLinenum'], $this->pObj->MOD_SETTINGS['ts_analyzer_checkComments'], $this->pObj->MOD_SETTINGS['ts_analyzer_checkCrop'], $this->pObj->MOD_SETTINGS['ts_analyzer_checkSyntax'], $this->pObj->MOD_SETTINGS['ts_analyzer_checkSyntaxBlockmode']) . '</td></tr></table>
|
||
</td>
|
||
</tr>
|
||
';
|
||
if (t3lib_div::_GET('template') != "all") {
|
||
if (t3lib_div::_GET('template') != 'all') {
|
||
break;
|
||
}
|
||
}
|
||
$tmpl->ext_lineNumberOffset += count(explode(chr(10), $val)) + 1;
|
||
next($tmpl->clearList_setup);
|
||
$GLOBALS['tmpl']->ext_lineNumberOffset += count(explode(chr(10), $val)) + 1;
|
||
next($GLOBALS['tmpl']->clearList_setup);
|
||
}
|
||
$theOutput .= '
|
||
</table>
|
||
... | ... | |
}
|
||
}
|
||
if (defined("TYPO3_MODE") && $TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["ext/tstemplate_analyzer/class.tx_tstemplateanalyzer.php"]) {
|
||
include_once($TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["ext/tstemplate_analyzer/class.tx_tstemplateanalyzer.php"]);
|
||
}
|
||
?>
|
||
if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/tstemplate_analyzer/class.tx_tstemplateanalyzer.php']) {
|
||
include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/tstemplate_analyzer/class.tx_tstemplateanalyzer.php']);
|
||
}
|
- « Previous
- 1
- 2
- Next »