Hallo,
ich arbeite mich grade durch das Quake-Net Tutorial und habe da ein paar Verständnis-Fragen zum Template-Aabschnitt (obwohl es eigentlich eher was mit der Syntax zu tun hat).
Zunächst einmal der Rückgabe doppel/dreifach Array im Beispiel-NewsScript:
Alles anzeigen
Warum dort das der zweite Array-Name? Das ganze würde doch auch funktionieren mit "$a['data']=$news;"
Klar, man müsste dann im Template auch den Namen ändern, aber auch "foreach ($data as $beitrag) {" müsste doch eigentlich funktionieren.
Ist das nur wegen der Ästhetik gemacht worden? Oder gibt es einen technischen Zusammenhang?
Dann hätt ich noch eine Frage zum Template selbst:
Alles anzeigen
Dort wird in jeder Zeile in der sich PHP-Code befindet erst ein PHP-Tag geöffnet "<?php" und dann am Ende der Zeile wieder geschlossen "?>", sofern dazwischen HTML-Code steht, kann ich das ja nachvollziehen, aber manchmal folgt einfach auf einen schleißenden PHP-Tag in der nächsten Zeile wieder ein öffnender. Hat das einen besonderen Grund? Oder könnte man die hier markierten Tags auch einfach weg lassen?
Hoffe die Fragen sind nicht zu dämlich
Edit: Hm, das mit dem Markieren im Quelltext will iwie nicht so wie ich... die [b ] [/ b] Tags dazwischen sollten eigentlich einzelne Bereiche hervorheben und gehören nicht zum Code...
ich arbeite mich grade durch das Quake-Net Tutorial und habe da ein paar Verständnis-Fragen zum Template-Aabschnitt (obwohl es eigentlich eher was mit der Syntax zu tun hat).
Zunächst einmal der Rückgabe doppel/dreifach Array im Beispiel-NewsScript:
Quellcode
- <?php
- $a = array();
- $a['filename'] = 'news.tpl';
- $a['data'] = array();
- // Newsdaten irgendwie aus einer Datenbank holen
- if (false) {
- // Falls ein Datenbankfehler auftrat, kann hier nur simuliert werden, deswegen if (false)
- return "Es trat ein Fehler in der Datenbank auf: ...";
- }
- $news = array();
- // Array mit Newsbeiträgen füllen (normalerweise aus der Datenbank)
- $newsbeitrag = array();
- $newsbeitrag['Titel'] = 'Neue Homepage';
- $newsbeitrag['Datum'] = '2008-01-01 00:00:00';
- $newsbeitrag['Inhalt'] = 'Pünktlich zum Neujahr starten wir mit einer neuen Homepage.';
- $news[] = $newsbeitrag;
- $a['data'][b]['news'][/b] = $news;
- return $a; // nicht Vergessen, sonst enthält $ret nur den Wert int(1)
- ?>
Warum dort das der zweite Array-Name? Das ganze würde doch auch funktionieren mit "$a['data']=$news;"
Klar, man müsste dann im Template auch den Namen ändern, aber auch "foreach ($data as $beitrag) {" müsste doch eigentlich funktionieren.
Ist das nur wegen der Ästhetik gemacht worden? Oder gibt es einen technischen Zusammenhang?
Dann hätt ich noch eine Frage zum Template selbst:
Quellcode
- <?php
- /*
- * Daten:
- * 'news' -- Array mit Newsbeiträgen mit folgendem Aufbau
- * Array(
- * 'Titel', -- Der Titel der News
- * 'Datum', -- Erstelldatum
- * 'Inhalt' -- Inhalt der News
- * )
- */
- [b]?>[/b]
- [b]<?php[/b] if (count($data['news'])) { [b]?>[/b]
- [b]<?php[/b] foreach ($data['news'] as $beitrag) { ?>
- <h2><?php echo htmlspecialchars($beitrag['Titel']); ?></h2>
- <p class="beitrag">
- <span>Geschrieben am <?php echo htmlspecialchars($beitrag['Datum']); ?></span>:
- <?php echo htmlspecialchars($beitrag['Inhalt']); ?>
- </p>
- <?php } [b]?>[/b]
- [b]<?php[/b] } else { ?>
- <p class="info">
- Es sind keine News vorhanden
- </p>
- <?php } ?>
Dort wird in jeder Zeile in der sich PHP-Code befindet erst ein PHP-Tag geöffnet "<?php" und dann am Ende der Zeile wieder geschlossen "?>", sofern dazwischen HTML-Code steht, kann ich das ja nachvollziehen, aber manchmal folgt einfach auf einen schleißenden PHP-Tag in der nächsten Zeile wieder ein öffnender. Hat das einen besonderen Grund? Oder könnte man die hier markierten Tags auch einfach weg lassen?
Hoffe die Fragen sind nicht zu dämlich

Edit: Hm, das mit dem Markieren im Quelltext will iwie nicht so wie ich... die [b ] [/ b] Tags dazwischen sollten eigentlich einzelne Bereiche hervorheben und gehören nicht zum Code...