Portal > Foren > PHP > PEAR, PECL und Frameworks > Verständnissfrage zu Smarty
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 22.09.2006, 11:05 Nach oben    #1
\m/ let's rock \m/
 
Benutzerbild von la-finest
 
Registriert seit: 11.11.2005
Beiträge: 114
Standard Verständnissfrage zu Smarty

Hallo zusammen,

Ich benutze grad z.Zt Smarty für ein Projekt von mir.
Nun bin ich grad an einem kritischen Punkt angekommen wo ich trotz Kopf zerbrechen nicht weiterkomm.

Ich habe meine 1.Page fertig, sollen nun noch 3 andere hinzukommen.

Habe 1 Index.tpl, welche so aussieht:
HTML-Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
<head>
<title>{$title}</title>
  <link rel="stylesheet" type="text/css" href="{$css}">
<meta http-equiv="Content-Type" content="text/xhtml; charset=ISO-8859-1" />
</head>
<body>
{include file="header.tpl"}
{include file="navigation.tpl"}
{include file="content.tpl"}
{include file="footer.tpl"}
</body>
</html> 
und die content.tpl looks like:
HTML-Code:
<div id="content">
<p>{$header1}</p>
<table cellpadding="2" cellspacing="1">
 <tr id="heading">
  <td>
   {$header2}
  </td>
 </tr>
{foreach from=$news item=con}
  <tr id="{cycle values="lightrow, darkrow"}">
   <table style="border: 1px solid silver;">
    <tr>
     <td><b>{$con.news_title}</b></td>
    </tr>
    <tr>
     <td>{$con.news_content|wordwrap:75:"\n":true}</td>
    </tr>
    <tr>
     <td style="border-top: 1px solid silver"><i>eingetragen von {$con.author} am {$con.news_date|date_format:"%d.%m.%Y"} um {$con.news_date|date_format:"%H:%M"}</i></td>
    </tr>
   </table>
  </tr>
{/foreach}
</table>
</div> 
Nun möchte ich aber auch noch andere Seiten anlegen.

Soll ich nun für die Page eine neue .tpl File anlegen im Sinne von index.tpl.
Sprich about.tpl mit den includes und dann wieder einer .tpl für den content? Ist sowas im Sinne von Smarty und/oder TemplateEngines?

Oder wie würdet ihr sowas machen?

Viele Grüße,
la-finest
__________________
"Irgendwann, möglicherweise auch nie, werde ich dich bitten mir eine kleine Gefälligkeit zu erweisen. Aber solange ich das nicht tue, soll die Gerechtigkeit mein Geschenk an Dich sein." - Don Vito Corleone, aus "Der Pate"
la-finest ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.09.2006, 11:08 Nach oben    #2
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

Ich mach eine Index.tpl in der ich via {$content} mir ein {include ".."} einsetzen lasse und das dann geparst wird. Das tpl wird dann zwar 2 mal "durchsucht" und die platzhalter ersetzt, aber damit ist das alles äußerst dynamisch.
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.09.2006, 16:23 Nach oben    #3
Blubb... öfz
 
Benutzerbild von ljungi
 
Registriert seit: 16.03.2006
Ort: Berlin
Beiträge: 419
Standard

Warum machst du nicht direkt ein

{include file="$content.html"}

und übergibst für $content einfach nen namen?
__________________
Vive la France! Welcome to Sarkoworld...
ljungi ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.09.2006, 17:01 Nach oben    #4
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

weil platzhalter nach meinem wissen nicht geschachtelt werden sollten.
außerdem würde es wenn dann so aussehen:
{include file="{$content}.tpl"}
Ist sicherlich möglich, allerdings bevorzuge ich die Trennung.
Ich parse nach jedem Platzhalter, den ich ersetze nach neuen {include ...} damit ich so tiefe verschachtelungen realisieren kann. Ich habe daher Corvins Klasse dahingehend erweitert.
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.09.2006, 17:39 Nach oben    #5
...möp...
 
Benutzerbild von Creativ
 
Registriert seit: 10.10.2005
Ort: Wolfsburg
Beiträge: 79
Standard

wenn man das gleich includet muss man nicht die klammern benutzen.
Man könnte es also so machen:
{include file="./$template_folder/$body.tpl"}

Funktioniert bei mir einwandfrei.
Creativ ist gerade online  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.09.2006, 18:11 Nach oben    #6
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

wieder was gelernt
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.09.2006, 21:50 Nach oben    #7
Blubb... öfz
 
Benutzerbild von ljungi
 
Registriert seit: 16.03.2006
Ort: Berlin
Beiträge: 419
Standard

Zitat:
Zitat von Creativ Beitrag anzeigen
wenn man das gleich includet muss man nicht die klammern benutzen.
Kann man ohne Fehlermeldung gar nicht
__________________
Vive la France! Welcome to Sarkoworld...
ljungi ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.09.2006, 19:25 Nach oben    #8
Benutzer
 
Registriert seit: 31.12.2005
Beiträge: 90
Standard

Also mein Script ohne SMarty zu betrachten sieht in etwa so aus:

per modrewrite den Request in index.php?s=irgendeine_section umbauen, dann das Script:

PHP-Code:
// alle möglichen includes, klassen, configs etc

// hier die übergebene sectiondatei $_GET['s'] prüfen, ob auf der whiteliste (per in_array()), und dann includen
// in der includierten sectiondatei werden dann weitere smarty variablen assigned

// weitere smarty assigns, die immer gebraucht werden (wie z.b. sachen für den header, für die navi etc) 
und genau so sind auch meine templates aufgebaut. also wird eine variable $sectionFile assigned, das die aktuelle section enthält. und diese wird dann einfach im hauptbereich meiner index.tpl includet
björn ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mehrsprachigkeit mit Smarty Eyüp PEAR, PECL und Frameworks 7 08.06.2007 15:40
Smarty und number_format() Berti PEAR, PECL und Frameworks 12 23.02.2007 04:39
Smarty - Verschachtelungen? ljungi PEAR, PECL und Frameworks 5 31.03.2006 22:15
Navigation auf Smarty umstellen?! napsio PEAR, PECL und Frameworks 4 25.01.2006 19:22
PEAR Alternative zu Smarty ex³ PEAR, PECL und Frameworks 5 08.11.2005 21:19


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:22 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45