Forum > Rechnen in Templates
DOTLAN Intranet / Portal >> Konfiguration, Erweiterungen, Addons > Rechnen in Templates |
Antwort erstellen |
Autor | Thema: Rechnen in Templates | ||||
|
|
||||
NEW Clan: lpm Postings: 21 |
Im box_event*.tpl wird über {$bar} anscheinend vorformatierter Quelltext ausgespuckt, der nicht valide ist. Da man aber die Eckdaten für die Balkengraphik ebenfalls bekommt, würde ich das ganze selbst ausrechnen und ausgeben; Gibt es also irgend eine Hintertür mit der man in Templates (also den tpl Dateien) Turingmächtigkeit erhält. Das einzige was mir da einfällt wäre die gesamte Ausgabe ab der global.php zu cachen und selbst nochmal zu parsen. Diese Lösung widerstrebt mir aber, da so die gesamte Seite zwischengespeichert werden muss. Wir haben derzeit noch die v1.2.5a. Ist das vielleicht bei der neuen Version anders? Gibt es irgendwo einen detailierten Changelog? Grüße, Oscar |
||||
|
|
||||
NEW Clan: dotlan.net Postings: 1252 |
Der detaillierte Changelog liegt immer im ZIP Archiv. changelog.svn Alternativ kannst du die rohdaten nehmen und mittels Javascript den Balken berechnen und in die Breite zu ziehen.
|
||||
|
|
||||
NEW Clan: lpm Postings: 21 |
Dank' Dir erstmal für die schnelle Antwort; Ich bin aber eigentlich grade dabei das ganze JavaScript rauszuwerfen Hat das eigentlich Geschwindigkeits- oder Sicherheitsgründe, dass Du das Ausführen von Code in den tpls unterbindest? Denn soweit ich das den Fehlermeldungen entnehme, wird das doch sowieso letztenendes durch eval gejagt. |
||||
|
|
||||
NEW Clan: KST-LAN Postings: 418 |
Du kannst selbst in deiner style.php Variablen definieren und mittels {$GLOBALS['variable']} drauf zugreifen.
|
||||
|
|
||||
NEW Clan: dotlan.net Postings: 1252 |
Ja. Aber in der eval() funktion wird nur eine zuweisung gemacht. Die templates selbst werden nicht durch eval gejagt. Nunja und warum? Weil ich es damals so aufgebaut hatte und nie mehr geändert hatte. [Editiert von Griffon am 18.Aug.2008 um 22:56] |
||||
|
|
||||
NEW Clan: lpm Postings: 21 |
Ich habs jetzt so gelöst, dass ich anstatt der drei vorgefertigen Bilder auf {BASEDIR}styles/meinstyle/bar-{$anz_maximal}-{$anz_bezahlt}-{$anz_angemeldet}-{$anz_frei}.gif verweise. Das wird dann mit mod_rewrite auf eine bar.php umgeschrieben, die das gewünschte Bild erzeugt und direkt ausliefert. Ich hatte erst statt eines gifs ein svg, aber damit kam nur Opera klar (zeigt sich wieder was der beste Browser ist). Die globale Variable in der style.php ist ja nicht vom Kontext abhängig in dem ich sie verwenden will. Beim dem Problem mit dem Bild hätts grad noch funktioniert, indem man sich den Kram grad selbst aus der mysql pult. Nun wirds aber eine Spur anspruchsvoller; in box_forum_bit.tpl wird über {$title} ebenfalls eine vorformatierte Ausgabe in html ausgespuckt. Und die ist natürlich abhängig davon wer angemeldet ist und welche Einstellungen er hat. Und die einzelnen Daten scheinen auch nicht extra verfügbar zu sein. Das Problem besteht beim I bzw. N welches internen bzw. news-bezogenen Einträgen vorangestellt wird. Und bei dem Puzzle bin ich vorerst mit meinem Latein am Ende und bin für jede Idee dankbar. Ich betreibe da übrigens keine Korinthenkackerei, um die Seite als application/xhtml+xml auszuliefern muss sie nunmal anstandslos valide sein. @eval: Irgendwie musst Du ja die Platzhalter durch deren Inhalt ersetzen, und wie ich eben gelernt habe kann man da auch eigene Variablen benutzen. Da drängt sich eval oder ein reg. Ausdruck quasi auf. |
||||
|
|
||||
NEW Clan: KST-LAN Postings: 418 |
Wobei eval die schlechtere ist. Okay, in deinem Fall ist das wohl nix. Zeigt aber wieder (leider), dass vorformatierter Quelltext für Platzhalter Murks ist. |
||||
|
|
||||
NEW Clan: lpm Postings: 21 |
Ich habe mir mal den Spaß gemacht und den vom Dotlan erzeugten Quelltext mit einem statischen Automaten (also nicht mal regex Luxus*) nachzuverarbeiten ... geht gut ... gut langsam PHP oder eine rudimentäre while-Sprache wäre in den Templates schon nett. PHP hätte natürlich den Nachteil dass man das nicht cachen kann, da da ja jedes Mal was anderes rauskommen kann, aber man könnte irgend was Seiteneffektfreies nehmen. Templates in denen man Brainfuck benutzen kann, wären doch wohl das coolste überhaupt *g* *preg baut meines Wissens auch nur einen Automaten |
||||
|
|
||||
NEW Clan: lpm Postings: 21 |
Jetzt mal ernsthaft; Ich glaub' es ist unmöglich das Problem (halbwegs performant) zu lösen. Hat da jemand noch eine Idee?
|
||||
|
|
||||
NEW Clan: lanabuse.de Postings: 105 |
nicht so schön, aber wir lassen es bei jedem seitenaufruf über die style.php neu berechnen
|
||||
|
|
||||
NEW Clan: lpm Postings: 21 |
Hmmmm ... Du redest von der Grafik, oder? Das Problem ist mittlerweile behoben, es geht mir jetzt um die Kurzausgabe der Forenthemen. Die kann man ja nicht so ohne weiteres aus dem Hut ziehen, da das Abhängig von den Benutzereinstellungen und -rechten ist. Klar, das geht alles, aber dann kann ich mir das CMS auch gleich selbst frickeln |
||||
|
|
||||
NEW Clan: KST-LAN Postings: 418 |
Griffon müsste halt statt in seinen compilierten Klassen schon Quellcode zu generien noch mehr auf Templates setzen. Ansonsten gehts nicht wirklich perfomant. Gegenfrage: Brauchst du das Tatsache. Ich bezweifel, dass du soviele Seitenaufrufe hast, dass eine manuelle Neuberechnung in der style.php das Ganze so ausbremst. |
||||
|
|
||||
NEW Clan: lpm Postings: 21 |
Naja so viele frickelige Werte durch ein tpl zusammenkleben zu lassen, die man eigentlich nur auf eine sinnvolle Weise benutzen kann, sieht zur Entwurfszeit sinnlos aus. Zu Deiner Frage; Ich bin ja noch nicht durch alles durch, wie oft kommt das denn noch so vor? Wenn das öfter vorkommt ist das irgendwann dann ja auch nicht mehr vernachlässigbar das alles neu auszulesen. Außerdem mag ich es nicht, das Rad neu zu erfinden; Vielleicht kann Griffon die Abfrage veröffentlichen, die er benutzt *liebguck* [Editiert von zOiD am 20.Aug.2008 um 23:10] |
||||
|
|
||||
NEW Clan: KST-LAN Postings: 418 |
Ich habe mehr als genug Stellen gefunden, wo die Platzhalter vorformatiert waren. Ehrlich gesagt wirst du damit leben müssen, da teilweise recht tiefgreifend ist und an fast allen Stellen (Catering, Turniere, Event-Info, Forum glaube auch) ...
|
||||
|
|
||||
NEW Clan: lpm Postings: 21 |
Ok, das sind wohl schlechte Nachrichten. Aber es gibt für jedes Problem einen dirty Hack ... mal in XFrames einlesen ... Dank' Euch erstmal für die Mühe und Hilfe. |
||||
|
|
||||
NEW Clan: KST-LAN Postings: 418 |
Warum nicht einfach text/html statt application/xhtml+xml ausliefern?
|
||||
|
|
||||
NEW Clan: lpm Postings: 21 |
Weil XHTML nunmal als application/xhtml+xml ausgeliefert werden sollte (falls der Browser es unterstüzt). Da XML regulär ist, kann es schneller interpretiert werden. Alles in allem ist die Seite damit schneller dargestellt.
|
||||
|
|
||||
NEW Clan: lpm Postings: 21 |
Aber mal anders gefragt; Stehen die Variablen in denen die Teilzeichenketten stehen nicht auch zur Verfügung? Man müsste jetzt nur wissen wie die heißen und sie dann selbst benutzen.
|
||||
|
|
||||
NEW Clan: KST-LAN Postings: 418 |
Ich bezweifel, dass es zwischen HTML/XHTML *messbare* Geschwindigkeitsunterschiede gibt. Zur Diskussion text/html oder application/xhtml+xml: Das W3C selbst sagt über text/html und XHTML "may". Jedenfalls würde ich mich nicht die Arbeit machen, nur um XHTML mit dem richtigen (das ist ja unstrittig) media type ausliefern zu können. |
||||
|
|
||||
NEW Clan: lpm Postings: 21 |
Habe das Problem jetzt übrigens gelöst und die Idee mit den Nachprozessor nochmal verfolgt. Die Geschwindigkeitsprobleme hingen wohl mit meinem Gammel-Testserver zusammen. Wenn ich das Ding fertig habe und es stabil läuft stell ich es hier zur Verfügung, für den Fall, dass noch jemand ein Ähnliches Problem hat. Der Punkt ist, dass ich validen Code auch gleich als application/xhtml+xml ausliefern kann, wenn ich ihn schon habe. Und nicht valider Code kommt mir nicht ins Haus ^^. Und es gibt tatsächlich fühlbare (wenn auch nicht quantitativ messbare) Geschwindigkeitsunterschiede. |
||||
|
|
||||
NEW Clan: KST-LAN Postings: 418 |
Anstatt dass du das Pferd von hinten aufsattelst solltest du vielleicht die Stellen beschreiben, die fehlerhaft sind damit Griffon das grundsätzlich lösen kann.
|
||||
|
|
||||
NEW Clan: lpm Postings: 21 |
Kann ich zusätzlich machen
|
||||
[ Antwort erstellen ] |