|
|
|
|
|
|
|||||||
| PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen |
|
|
|
LinkBack (3) | Themen-Optionen | Thema bewerten |
|
|
#1 (permalink)
|
|
Erfahrener Benutzer
Registriert seit: 24.10.2008
Beiträge: 150
PHP-Kenntnisse: Fortgeschritten ![]() |
Guten Tag,
Ich habe ein kleines Problem beim ersetzen von Template Variablen. Template: Code:
Test
Test
{multiply name="personen"}
PHP-Code:
Einfache {multiply} ersetze ich mit folgendem Code: PHP-Code:
Um alle benötigten Informationen zu erhalten habe ich folgendes geschrieben: PHP-Code:
Später sortiere ich das ganze noch nach dem zugewiesenem Index absteigend, weil ich denke, dass ich so zuerst die inneren ersetze, allerdings komme ich nicht weiter, wie ich meine beiden Funktionen zusammen bekomme. Das Ersetzen in der ersten Funktion dürfte erst an einer bestimmten Position starten (kein Problem, Position habe ich), aber nun weiß ich nicht wie ich es machen soll, dass er die Informationen aus dem Personen Array nimmt und darin dann mit den Hobbys weiter macht, eine rekursive Funktion wäre natürlich am besten, sodass ich beliebig viele {multiply} ineinander schachteln kann. Tschuldigung für den vielen Text, aber ich hoffe es steigt trotzdem irgendwer durch und kann mir helfen |
|
|
|
|
|
|
|
PHP Code Flüsterer
Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten
|
|
|
|
#2 (permalink) |
|
Moderator und Wett-König
|
Hallo KarlEgon,
auf den ersten Blick würde ich sagen: nimm Smarty, da bist du schneller am Ziel.
__________________
Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
|
|
#3 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 06.09.2008
Beiträge: 189
![]() |
Oder sieh dir mal diesen Thread an, wenn du nicht auf Smarty zurückgreifen möchtest.
MfG, Andy
__________________
I'm so tired of slitting the throats of people calling me a violent psychopath. |
|
|
|
|
|
#4 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 24.10.2008
Beiträge: 150
PHP-Kenntnisse: Fortgeschritten ![]() |
Habe mir den Thread durchgelesen, aber das ist nicht so ganz das was ich will.
Smarty habe ich benutzt, will ich aber nicht mehr. Ich will es nämlich ein bisschen modular haben. Im moment definiere ich in den Templates verschiedene Sections(z.B. north, south, center usw.) Nun kann ich durch $tpl->addTemplate("templatefile.tpl","center"); beliebig viele Templates zu diesen Sections hinzufügen. Diese Möglichkeit habe ich meiner Meinung nach bei Smarty nicht. Und auf <?php echo $this->var ?> will ich nicht umsteigen. Diese Möglichkeit will ich schon gerne haben. Habe bis jetzt noch kein TemplateSystem gesehen, wo dies unterstützt wird. |
|
|
|
|
|
#5 (permalink) | |
|
Moderator und Wett-König
|
Hallo KarlEgon,
Zitat:
Solltest du Fragen dazu haben, kannst du dich vertrauensvoll an mich wenden!
__________________
Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Geändert von dr.e. (27.10.2008 um 15:03 Uhr). Grund: Link zur Doku eingefügt |
|
|
|
|
|
|
#6 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 24.10.2008
Beiträge: 150
PHP-Kenntnisse: Fortgeschritten ![]() |
Mhhh das Ding kann ja schon ganz schön viel, aber ich denke das ist mir zu überladen.
Im moment sieht meine Template Klasse so aus: PHP-Code:
|
|
|
|
|
|
#7 (permalink) | |
|
Moderator und Wett-König
|
Hallo KarlEgon,
Zitat:
Versuch doch bitte - ehe du Resignation zeigst - zu beschreiben, wie deine Applikation aussehen soll und welche Anforderungen umzusetzen sind. Ich bin mir 100%ig sicher, dass es dafür eine elegante und nicht überladene Antwort und Lösung mit dem APF gibt. Die Wette gilt!
__________________
Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
|
|
|
#8 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 24.10.2008
Beiträge: 150
PHP-Kenntnisse: Fortgeschritten ![]() |
Also
Ein Beispiel Template: Code:
//main.tpl <html><head></html><title>{$titel}</title></head> <body><div id="header">{$seitentitel}{section name="north"}</div> <div id="left">{section name="west"}</div> <div id="right">{section name="east"}</div> <div id="content"><h1>{$seitentitel}</h1>{section name="center"}</div> <div id="footer">{section name="south"}</div></body> Code:
//Navigation.tpl <div id="navi">{multiply name="navi"} <a href="{$navi.link}">{$navi.name}</a> {/multiply}</div> Code:
//Status.tpl <div id="status">Fertigstellungsgrad: {$fertig} %</div> PHP-Code:
Also wenn ich in der For-Schleife der PHP Datei noch ne For-Schleife mache und das ganze dann dem navi zum Beispiel unter dem Namen subnavi hinzufüge, dann kann ich im Template im navi-{multiply} noch ein subnavi-{mutliply} definieren. Bei meinem "Template-System" habe ich noch die möglichkeit Areas zu verstecken. PHP Code wird rausgefiltert und natürlich überflüßige Dinge entfernt (wenn zum Beispiel irgendwo ein {section} übrigbleibt oder so) Joar ich glaube das war es erstmal so. Geändert von KarlEgon (28.10.2008 um 15:39 Uhr). |
|
|
|
|
|
#9 (permalink) |
|
Moderator und Wett-König
|
Hallo KarlEgon,
wenn ich das richtig sehe, sollte die Anforderung also mit ein paar Templates und DocumentController, die die Ausgabelogik kapseln zu erschlagen sein. Weitere "includes" in Templates können dabei ganz einfach mit dem <core:importdesign /> erledigt werden. Zur Gestaltung von wiederverwendbaren Elementen kannst du das <html:template />-Tag nehmen. Dieses steht im APF-DOM-Model im DocumentController (=MVC-Controller) dann als eigenes Objekt zur Verfügung und kann entsprechend genutzt werden. Hier die relevanten Stellen in der Doku: * Adventure PHP Framework - Standard TagLibs * Adventure PHP Framework - Standard TagLibs Falls eine Ausgabe von Objekten in einer Liste direkt stattfinden kann, ist der Iterator-Tag (siehe Adventure PHP Framework - Standard TagLibs) eine ganz nette Alternative. Deine Templates würden dann in etwa so aussehen: main.html: Code:
<html>
<head>
<title>{$titel}</title>
</head>
<body>
<div id="header">
<core:importdesign namespace="sites::karlegon::pres::template" template="header" />
</div>
<div id="left">
<core:importdesign namespace="sites::karlegon::pres::template" template="left" />
</div>
<div id="right">
<core:importdesign namespace="sites::karlegon::pres::template" template="right" />
</div>
<div id="content">
<core:importdesign namespace="sites::karlegon::pres::template" template="content" />
</div>
<div id="footer">
<core:importdesign namespace="sites::karlegon::pres::template" template="footer" />
</div>
</body>
</html>
Noch ein Controller-Beispiel zum Schluss: den Fertigstellungsgrad füllst du im APF so aus: Template-Datei: Code:
<@controller namespace="sites::karlegon::pres::controller" class="status_controller" file="status_controller" @>
<div id="status">
Fertigstellungsgrad: <html:placeholder name="ready"/> %
</div>
PHP-Code:
PHP-Code:
__________________
Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
|
|
#10 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 24.10.2008
Beiträge: 150
PHP-Kenntnisse: Fortgeschritten ![]() |
Sieht schonmal nicht schlecht aus, aber kann ich auch dynamisch Templates hinzufügen über dieses <core:importdesign> ? So das ich erst im Controller sage welche Templates benutzt werden sollen und für eine "Variable" sollen auch mehrere Templates eingesetzt werden können.
Gibt es irgendwo ne PDF Version der Dokumentation? Oder nur diese CHM Versionen? |
|
|
|
|
|
|
|
PHP Code Flüsterer
Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten
|
|
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
LinkBacks (?)
LinkBack to this Thread: http://www.php.de/php-fortgeschrittene/48424-erledigt-variablen-einem-template-ersetzen.html
|
||||
| Erstellt von | For | Type | Datum | |
| Adventure PHP Framework - Downloads | This thread | Refback | 05.12.2008 21:54 | |
| Adventure PHP Framework - Literatur | This thread | Refback | 21.11.2008 12:58 | |
| forum.adventure-php-framework.org [de] • Thema anzeigen - Einführung <core:appendnode />-Tag | This thread | Refback | 20.11.2008 19:41 | |
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Erledigt] ob_start verwirft gesetzte Variablen?! | tohms | PHP Tipps 2008 | 3 | 19.10.2008 16:50 |
| Lieber Template oder Normal für ein community? | mysteryxxx | PHP Tipps 2008 | 8 | 17.09.2008 23:04 |
| Klasse statt globaler Variablen | ecomeback | PHP-Fortgeschrittene | 6 | 15.07.2008 16:30 |
| Übergeben von Variablen an in PHP eingebundenes Perl-Script | shredder01 | PHP Tipps 2008 | 3 | 04.04.2008 09:25 |
| Teil einer Variablen mit einer Variablen ersetzen ? | simsalabim | PHP Tipps 2007 | 11 | 20.03.2007 20:36 |
| variablen aus db ersetzen | snatch-ic | PHP Tipps 2006 | 7 | 21.05.2006 01:51 |
| template in template einfuegen | tonne | PHP Tipps 2005-2 | 8 | 10.11.2005 22:24 |
| In Fuktionen alle Variablen Global stellen ? | atom-dragon | PHP Tipps 2005-2 | 5 | 22.07.2005 04:30 |
| Template System oder Lösung gesucht | PHP Tipps 2005 | 14 | 21.05.2005 22:07 | |
| Variablen übergeben bzw. auslesen? | PHP Tipps 2005 | 4 | 30.01.2005 03:56 | |
| suche ein bestimmtes template system | PHP Tipps 2004-2 | 2 | 07.11.2004 19:49 | |
| [Erledigt] Template Parser | PHP-Fortgeschrittene | 9 | 06.10.2004 23:04 | |
| mit print Variablen in String ersetzen | PHP Tipps 2004 | 3 | 27.09.2004 21:29 | |
| Variablen per adresse übergeben | rocco | PHP Tipps 2004 | 7 | 24.07.2004 12:03 |
| Template Scripting | PHP-Fortgeschrittene | 2 | 04.06.2004 18:34 | |