Zur Boardunity Forenstartseite
  #1  
Alt 08.10.2003, 19:44
Mitglied
 
Registriert seit: 10.2003
Ort: Bottrop
Beiträge: 777

If-Abfragen in Templates


Hi. Erstmal wollte ich gern ein Lob aussprechen. Gefällt mir hier sehr gut und versuche mich auch schon seit ein paar Tagen einzulesen. "

Da ich gesehen habe, dass hier sehr viele Leute sind, die sich mit PHP usw. sehr gut auskennen wollte ich einfach mal um etwas hilfe bitten.

Ich würde mich nicht als vollkommenen Anfänger bezeichnen, aber so gut wie ihr bin ich noch nicht.
Zur Zeit versuche ich meine Fähigkeiten an einem Newssystem zu messen. Ist auch schon fast fertig und wenn ihr ehrlich bin find ich`s nicht schlecht... nur hat es imho ein Manko, dass ich einfach nicht beseitigt bekomme... und sind die Templates.
Ich habe dafür eine Klasse geschrieben die (imho) ganz gut ist. Habe auch einiges so gemacht, wie ich denke, dass es gut ist, aber bei den If-Abfragen in den Templates habe ich leider einigermassen grosse Probleme.
Ich habe nun schon eine entsprechende Funktion dafür geschrieben. Die Funktioniert auch, aber nicht so, wie ich es mir wünschen würde. So sind z.B. grösser/kleiner(&gleich) nicht möglich. ich kann also zZ. nur Strings nach gleich oder ungleich abfragen.
Deshalb wollte ich mal fragen, ob ihr mir eventuell dabei helfen könntet.
Also... so sieht`s momentan aus:
PHP-Code:
     function _ifelse($tpl) { 
                 if(
preg_match_all("`<\s*if\s*('|\")?([a-z0-9_-]+?)\\1\s*(==|<=|>=|<|>|!=)\s*('|\")?([a-z0-9_-]+?)\\4\s*>(.*?)<else>(.*?)</if>`is"$tpl$matchesPREG_SET_ORDER)) { 
            for(
$i=0$i count($matches); $i++) { 
                               eval(
"if(\$matches[\$i][2] ".$matches[$i][3]." \$matches[\$i][5]) { \$replace = \$matches[\$i][6]; } else { \$replace = \$matches[\$i][7]; } \$tpl = str_replace(\$matches[\$i][0], \$replace, \$tpl);");            
            } 
                 } 
        return 
$tpl
     } 
Ich sag schonmal danke an alle die mir da helfen. Weil ich hab da momentan keine Idee mehr... bzw. keine die nicht in einer Fehlerorgie enden... "
__________________
Patrick Gotthardt
Patrick Gotthardt on Software
  #2  
Alt 09.10.2003, 12:55
Mobile2Day
 
Registriert seit: 12.2001
Ort: München
Beiträge: 65
Ich hab grad leider keine Zeit um detailiert auf dieses Problem einzugehen oder mich da reinzudenken. Aber ich benutze schon seit einiger Zeit die TemplateEngine Smarty. Damit hast du verdammt viele Möglichkeit offen. Unter anderem ist dort auch das IF-ELSE Problem enthalten. Wenn du lust hast, schau es dir an.

Link: http://smarty.php.net

__________________
Karl Förster
Webentwickler
mobile2day.de


mobile2day.de - Home of PDAs and Smartphones
  #3  
Alt 09.10.2003, 13:15
Mitglied
 
Registriert seit: 10.2003
Ort: Bottrop
Beiträge: 777
Hi. Danke. Smarty kenne ich bereits, aber da ich lernen will ist es nicht optimal. Und abgesehen davon versuche ich dieses Templatesystem auf meine Bedürfnisse zu spezifizieren. Wenn ich jedesmal, wenn etwas nicht klappt auf etwas fertiges zurückgreife brauche ich überhaupt nichts zu Programmieren... deswegen frage ich lieber ob es jemanden gibt, der mir eventuell dabei hilft und mir meine Fehler zeigt, damit ich sie verstehen und vermeiden kann...

Wenn du keine Zeit hast ist das auch nicht weiter schlimm. Ich habe eine Frage gestellt und wenn mir jemand dabei hilft bin ich ihm sehr dankbar. Bis dahin reicht meine Lösung aus, obwohl sie leider viele Manko`s hat... (verschachtelte If-Abfragen klappen nicht, grössen Abfragen klappen nicht, usw.), aber immerhin funktioniert sie.
Also kann ich warten, bis jemand die Zeit hat mir zu helfen. Ich danke dir trotzdem sehr.

__________________
Patrick Gotthardt
Patrick Gotthardt on Software
  #4  
Alt 09.10.2003, 18:12
Mitglied
 
Registriert seit: 10.2003
Ort: Bottrop
Beiträge: 777
Oh je... erstmal danke für die Antwort.
Leider kann ich mit Template Compiling nichts anfangen... sorry.

Könntest du mir das bitte erklären? Danke.

__________________
Patrick Gotthardt
Patrick Gotthardt on Software
  #5  
Alt 11.10.2003, 09:20
Mitglied
 
Registriert seit: 10.2003
Ort: Bottrop
Beiträge: 777
mhh... das müsste ich dann aber mit eval ausführen oder? Das wollte ich eigentlich nicht, weil ich für Variablen eine Formatierung habe, die ich auch einheitlich beibehalten möchte...

__________________
Patrick Gotthardt
Patrick Gotthardt on Software
  #6  
Alt 11.10.2003, 10:41
Mitglied
 
Registriert seit: 10.2003
Ort: Bottrop
Beiträge: 777
hmm... da haste allerdings auch wieder recht...

Momentan ersetze ich Variablen über str_replace... das sollte den Speed doch eigentlich nicht zu sehr beanspruchen oder? (momentan auf localhost ~0.03 Sekunden - bei 2|3 Queries)

Oh man... da muss ich noch viel lernen....

Hmm... *puh*
Danke dir... dann werde ich mal gucken, ob ich das umbasteln kann...

__________________
Patrick Gotthardt
Patrick Gotthardt on Software
  #7  
Alt 11.10.2003, 10:56
Benutzerbild von exe
exe exe ist offline
titellos
 
Registriert seit: 07.2003
Ort: München
Beiträge: 867
Der Geschwindigkeitsverlust fällt bei einem relativ simplen Template noch eher human aus. Eine Idee diesen Verlust auszugleichen wäre die Templates nach PHP zu kompilieren. D.h. jedesmal wenn ein Template geändert wurde wird es automatisch in ein PHP Script übersetzt. Um es dann anzuzeigen wird es einfach includet.

Beispiel:
Code:
<html>
<head>
<title>Blah</title>
</head>

<body>

Hallo <tpl $user>,
<br><br>
dein Benutzerstatus ist <tpl $userstatus>

</body>
</html>
würde dann in folgendes PHP-Script umgewandelt:

PHP-Code:
<html>
<head>
<title>Blah</title>
</head>

<body>

Hallo <?php echo $templatedata['user']; ?>,
<br><br>
dein Benutzerstatus ist <?php echo $templatedata['userstatus']; ?>

</body>
</html>
Die Smarty Template Engine baut auf dieses Prinzip aus und ich konnte mich da selbst bei komplizierten Templates nie über die Geschwindigkeit beschweren..

__________________
Johannes Klose
Calitrix Wiki - Wiki auf Basis von PHP und MySQL
  #8  
Alt 12.10.2003, 10:01
Mitglied
 
Registriert seit: 10.2003
Ort: Bottrop
Beiträge: 777
Hmm... hört sich auch logisch an... Danke.

Ich werde mir mal eure Tips merken und gucken, was ich am besten Umsetzen kann.

Aber ich denke für ein Newssystem sollte meine Variante noch erträglich sein... ausserdem ist die Versionsnummer eh noch unter 1... "

Also danke auf jedenfall.
Werde eure Vorschläge mal austesten... bin gespannt, ob ich das hinbekomme... "

__________________
Patrick Gotthardt
Patrick Gotthardt on Software
Antwort


Stichworte
-

Themen-Optionen
Thema bewerten
Thema bewerten:

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.
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Invisionboard 2.0 - Templates bardy Web Design und Grafik 11 26.07.2004 17:16
Moveable Type Templates joern Blog, CMS, Wiki und Sonstige 4 06.06.2004 23:54
Wie ändere ich am schnellsten/sinnvollsten die Templates bzw. den Style? Silmarillion Web Design und Grafik 7 23.05.2004 11:22
Templates umgestalten.... MrNase Web Design und Grafik 0 23.04.2004 13:54
templates aus der db oder per files? Björn Web Design und Grafik 3 11.11.2003 19:17






1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24