Pain-maker
Mitglied
Hi @ all!
Hab in meine Template-Klasse ein IF-Abfrage-System eingefügt was ich selbst gebastelt habe. Es funktioniert auch einwandfrei mit Globalen Variablen, mit Variablen aus der aufrufenden Datei allerdings nicht. Wie kann ich das beheben?
Die Funktion:
Der Aufruf:
So funktioniert es also wunderbar.
Nun habe ich aber eine Datei (members.php) mit einer FOR-Schleife mit der Variablen $j und der Variablen $getMembers (aus MySQL). Nun soll immer eine neue Tabellen-Zeile nach 2 Ergebnissen erzeugt werden. Das geht in der Datei auch gut aber ich hätte das nun mal gerne im Template:
Die Variable $j und $getMembers kennt meine Klasse aber natürlich nicht... Das ist mein Problem.
Ich hoffe ihr könnt mir vielleicht weiterhelfen!
MFG Pain-maker
Hab in meine Template-Klasse ein IF-Abfrage-System eingefügt was ich selbst gebastelt habe. Es funktioniert auch einwandfrei mit Globalen Variablen, mit Variablen aus der aufrufenden Datei allerdings nicht. Wie kann ich das beheben?
Die Funktion:
PHP:
<?php
private function replaceIfs() {
while(preg_match("/(<\[IF\((.+)\)\]>)(.+)(<\[ENDIF\]>)/isUe", $this->template, $keys) != FALSE) {
@eval("\$condition = \"\".".$keys['2'].".\"\";");
if($condition) {
$this->template = str_replace($keys['0'], $keys['3'], $this->template);
} else {
$this->template = str_replace($keys['0'], "", $this->template);
}
}
return true;
}
?>
Der Aufruf:
Code:
<[IF($_SESSION['login']===TRUE)]>
<p align="center">
<span class="small">Willkommen $_SESSION[username]!</span><br>
<a href="logout.php"><span class="small">[Abmelden]</span></a>
</p>
<[ENDIF]>
So funktioniert es also wunderbar.
Nun habe ich aber eine Datei (members.php) mit einer FOR-Schleife mit der Variablen $j und der Variablen $getMembers (aus MySQL). Nun soll immer eine neue Tabellen-Zeile nach 2 Ergebnissen erzeugt werden. Das geht in der Datei auch gut aber ich hätte das nun mal gerne im Template:
Code:
<[IF(($j % 2 && $j >= 1) || $j==count($getMembers)-1)]>
</tr>
<tr>
<[ENDIF]>
Die Variable $j und $getMembers kennt meine Klasse aber natürlich nicht... Das ist mein Problem.
Ich hoffe ihr könnt mir vielleicht weiterhelfen!
MFG Pain-maker