wie formatiert man templates mit CSS ?

MissPiggy

Erfahrenes Mitglied
Ich habe lange nach einem verständlichem Tutorial für templates gesucht, habe es dann aufgeben die Funktion richtig zu verstehen, und habe dann eine Anleitung rausgesucht, wo zwar nicht erklärt ist wie das ganze funktioniert, aber wie das aussieht (mit smarty):
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Bla</title>
        <meta http-equiv="Content-Type" content="text/xhtml; charset=ISO-8859-1" />
    </head>
    <body>
        <p>
            Willkommen {$name}
        </p>
        <ul>
        {foreach from=$newsbeitraege item=newsbeitrag}
            <li>
                <div class="newsbeitrag">
                    <div class="newsdatum">
                        {$newsbeitrag.Datum}
                    </div>
                    <div class="newstitel">
                        {$newsbeitrag.Titel}
                    </div>
                    <div class="newsautor">
                        {$newsbeitrag.Autor}
                    </div>
                    <div class="newsbeitrag">
                        {$newsbeitrag.Inhalt}
                    </div>
                </div>
            </li>
        {/foreach}
        </ul>
    </body>
</html>
soweit kein Problem, ich kann nun meine eigenen Daten nehmen und da einfügen.
Aber ich kann das ganze nicht mit CSS formatieren. Wenn ich zb mit
<style> .classname {font-family:.....;background-color:....;} </style> formatieren will, kommt da eine php Fehlermeldung. Muss man da vielleicht die Formatierung an anderer Stelle vornehmen .muss das zB in einer externen Date geschehen? Oder ändert sich die Form durch das template?
 
Ich schätze, dass Smarty die CSS-Deklarationsblock als Smarty-Syntax identifiziert, da beide die selben Begrenzungszeichen nutzen.

Am einfachsten – und auch geschicktesten – wäre, wenn du die Style Sheets aus externen Quellen in das Dokument einbindest.
 
stimmt du hast recht, aus einer eingebundenen Datei geht es.

Ich habe aber davon wieder Abstand genommen, es bringt überall Probleme mit sich, zB wenn man im HTML Teil Formularfelder wie dropdownmenus hat, klappt das ganze schon wieder nciht,da ist es einfacher wenn ich die herkömmlich formatiere.

Trotzdem danke. Man soll ja alles mal versuchen ;)
 
von der Verwendung von templates, bei Formularelementen funktionieren sie nicht so wie in dem angegeben Beispiel (und Formularelemente kommen bei recht häufig in den scripten vor), und wenn ich das richtig verstanden habe kann man auch $_POST und $_GET Variablen nicht mehr normal verwenden.

Und Arrayelemtente gebe ich eh meist in Tabellenform aus, wo ich mit der Formatierung keinr Probleme habe
 
Also ich mache alles mit Smarty von CSS bis Javascript, alles kein Problem. Typischer Aufbau:
PHP:
<html>
<head>
  <title>Titel</title>

{literal}
<style>
<!--

body {
  margin: 0px;
  background-color: #CCCCCC;
}

-->
</style>
{/literal}

</head>

<body>

... hier weiterer Code und Smartyzeugs

</body>
</html>

Du siehst ... mit {literal} ... {/literal} kannst du den Parser von Smarty veranlassen den Teil dazwischen nicht zu beachten.

Nachtrag zum Thema $_GET und $_POST
Auch hier kannst du zugreifen über die $smarty Variable ... $smarty.get.variablenname oder $smarty.post.variablenname ...

Ich lege die Doku wärmstens ans Herz:
http://smarty.php.net/manual/de/
 
Zuletzt bearbeitet:
Ich habe schon in der smarty documentation gelesen, allerdings hilft sie mir nicht wirklich weiter - es werden viele Dinge nicht weiter erklärt.
(Beispiel:
HTML:
<SELECT name=firma>
{html_options values=$vals selected=$selected output=$output}
</SELECT>
Wie diese Veriablen mit Inhalten gefüllt werden, wird nicht erwähnt Das nur als Beispiel. Und ich habe bislang kein verständliches deutsches Tut gefunden wo sowas erklärt wird :(

Was mich allerdings ein wenig erstaunt hat:
ich bin in Template-tuts ab und an auf sowas gestossen:
<body bgcolor="%hintergrundfarbe%">
Laut SELFHTML sollte man Tags grundsätzlich nur noch über Stylesheets formatieren. Gilt das nicht wenn man Templates nutzt, oder sind diese Seiten einfach etwas unprofessionell ?
 
Du hast recht, die Beispiele wie der php Teil auszusehen hat sind dort in der Tat wesentlich umfangreicher. Es ist aber allgemein so, dass es viele gute englische Tuts, aber nur wenig gute deutsche gibt. Mir fällt es einfach schwerer, die Bedeutung zu verstehen, wenn ich vorher erstmal überlegen muss, was da nun eigentlich steht. Aber langsam gewöhne ich mich dran...

Da steht das options ein assoziatives array ist, was mit auch einleuchtet, wenn es, wie in dem dort beschrieben Beispiel, die Werte zu '$value' und '$output' enhält.
Wenn option und vaule gleich sind <option>bla</option>, legt man dann ein array an in dem values und keys gleich sind?

Es dauert wohl eine ganze Weile, bis man soviel Erfahrung damit hat, dass das template weniger Arbeit macht als das script direkt zu formatieren ;)
 
Zurück