19 Stimmen

PHP-Vorlagen - mit PHP

Was ist die eleganteste Template-Lösung (vorzugsweise in reinem PHP!), die du gesehen hast?

Insbesondere interessiere ich mich für die Bearbeitung von:

  1. Erfassung in einem sich wiederholenden Block, ob es sich um das erste oder letzte Element handelt
  2. Einfache Behandlung von ungeraden/geraden Fällen, wie bei einer Zebra-gestreiften Tabelle oder Ähnlichem
  3. Andere Modulo-Logik, bei der du etwas jede n-te Zeit machst.

Ich suche nach etwas, das dies weniger schmerzhaft macht:

Muss man wirklich den obigen Code-Wirrwarr schreiben, um etwas wie das Untenstehende zu erstellen?

    John
    Jack
    Jill
    Jason

Bin nur ich es, der obiges als fast abscheulich empfindet?

All diese Öffnen und Schließen von PHP-Tags lassen mich erschaudern.

2 Stimmen

Diese hier wurde meiner Meinung nach zu Tode geschlagen.

1 Stimmen

Ja, etwas über das Sehnen nach Fjorden hinaus ist es :)

5 Stimmen

Dieser Code ist weniger kompliziert als der im akzeptierten Antwort ;)

0voto

Meep3D Punkte 3764

Ich habe vor einiger Zeit ein einfaches Template-System in PHP erstellt, um dieses Problem zu lösen:

http://code.google.com/p/templatephp/

Es verwendet ein mehrdimensionales Array und erfordert die Hinzufügung einiger zusätzlicher Tags im HTML, um das kombinierte Template zu erstellen.

Es ist nicht so kompliziert (obwohl leistungsstark) wie Smarty und einige andere Lösungen, punktet aber oft in Sachen Einfachheit. Eine Demonstration der Menüerstellung:

Main Menu

{block:menu_items}
        {var:name}
{/block:menu_items}

Mit...

    array (
        'menu_items' => array (
                array (
                        'link' => 'home.htm',
                        'name' => 'Startseite'
                ),
                array (
                        'link' => 'about.htm',
                        'name' => 'Über uns'
                ),
                array (
                        'link' => 'portfolio.htm',
                        'name' => 'Portfolio'
                ),
                array (
                        'link' => 'contact.htm',
                        'name' => 'Kontakt'
                )
        )
);

Wird das Menü erstellt...

Main Menu

        Startseite
        Über uns
        Portfolio
        Kontakt

0 Stimmen

Als Seitenbemerkung sollte das Streifen von Tabellen mit CSS (unter Verwendung von jQuery) erfolgen, anstatt in die Vorlage integriert zu werden. Spart viele Kopfschmerzen.

0voto

Dave C Punkte 37
' . CRLF; // Starte HTML-Ausgabevariable
    foreach ($persons as $name)
    {
       $ho .= '  ' . $name . '' . CRLF;
       $color = ($color == 'weiß') ? 'grau' : 'weiß'; // wenn weiß, dann mach es grau, sonst weiß
    }
    $ho .= '' . CRLF;
    echo $ho;
?>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X