Hallo,
ich verwende parseTemplate, um die bestehenden Templatevariablen auszulesen und outputBackendTemplate, um das Template zu manipulieren.
Das funktioniert soweit auch ganz gut, aber sobald innerhalb meiner parseTemplate Funktion eine foreach Schleife ins Spiel kommt, kommt meine outputBackendTemplate Funktion nicht mehr klar.
Ich erhalte ständig den Fehler Warning: Invalid argument supplied for foreach() in system/modules/test/MyTestModule.php on line 48
An dem Array $objTemplate->modules kann es nicht liegen, weil mir das bei print_r(); auch völlig korrekt angezeigt wird.
Danke schon mal, falls mir jemand einen Tipp geben kann.
PHP-Code:
class MyTestModule extends \Backend
{
protected $strTemplate = 'be_main';
public function MyOutputBackendTemplate($strContent, $strTemplate)
{ //print_r($strTemplateVars);
if ($strTemplate == 'be_main')
{
$strContent = str_replace('</div><div id="main">',$this->MyParseTemplate($objTemplate).'</div><div id="main">sdsd', $strContent);
}
return $strContent;
}
public function MyParseTemplate($objTemplate)
{
//print_r($objTemplate->modules);
// open container
$strNavigation = '<h1>Test/h1><div id="tl_navigation">
<a href="'.$objTemplate->request.'#skipNavigation" class="invisible">'.$objTemplate->skipNavigation.'</a>
';
foreach ($objTemplate->modules as $strGroup=>$arrModules) {
$strNavigation .= $strGroup;
}
//echo $strNavigation2;
$strNavigation .= '</div>';
return $strNavigation;
}
}
In der config.php steht:
PHP-Code:
/**
* Hooks
*/
$GLOBALS['TL_HOOKS']['outputBackendTemplate'][] = array('MyTestModule', 'MyOutputBackendTemplate');
$GLOBALS['TL_HOOKS']['parseTemplate'][] = array('MyTestModule', 'MyParseTemplate');
Lesezeichen