Menü Templates Teil 2 (CMS)
Weiter geht’s mit einer Erweiterung der Templates. Ab jetzt kann man mit {IF:Name} eine If-Abfrage einbauen. Mit der Funktion show_if kann man diese dann zuweisen. Dafür gibt es in der /system/classes/template.php die Eigenschaft ifs und die Methode removeHiddenIfBlocks:
<?php class Template{ private $template = ""; private $loop_templates = array(); private $template_path = ""; private $loops = array(); private $ifs = array(); ... private function removeHiddenIfBlocks($template){ preg_match_all("/{IF:([w]+)[^}]*}((s*?.*?)*){/IF:\1}/", $template, $matches, PREG_SET_ORDER); foreach ($matches as $match){ if(!array_key_exists(strtoupper($match[1]), $this->ifs)){ $template = str_ireplace($match[0], "", $template); } elseif(!$this->ifs[strtoupper($match[1])]){ $template = str_ireplace($match[0], "", $template); } else{ $template = str_ireplace($match[0], $match[2], $template); } } return $template; } public function getCode(){ $this->template = $this->removeHiddenIfBlocks($this->template); foreach($this->loops as $key => $array){ $loop_template = implode("n",$array); $this->template = str_ireplace('<!--LOOP('.strtoupper($key).')-->', $loop_template, $this->template); } $this->replaceLanguageTokens(); $this->replaceIcons(); return $this->template; } public function output(){ echo $this->getCode(); } } ?>
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf meine Software FeatValue.
Über mich
Ich entwickle Webanwendungen mit viel Leidenschaft. Mein Wissen gebe ich dabei gerne weiter. Mehr über a coding project