Closed ghost closed 12 years ago
Gut, dass Du es noch mal ansprichst. Lass uns kurz über "best practice" nachdenken. Momentan ist die Logik wie folgt:
templates
-Ordner
$objPage->outputFormat
unterschieden werden.html5
und xhtml
werden nicht unterstützt.Theme-Ordner
html5
und xhtml
werden unterstützt.Es gibt etliche Templates, bei denen es sich nicht lohnt, die Unterscheidung HTML5/XHTML zu machen. In diesem Fall ist es praktisch, beide Templates gleichzeitig überschreiben zu können. Habe ich zumindest so angenommen :)
Ich habe auch schon darüber nachgedacht, die Unterordner komplett wegzulassen und stattdessen die Dateiendungen .html5
und .xhtml
einzuführen. Das Problem daran ist, dass weder der Apache noch die gängigen PHP-IDEs diese Dateien standardmäßig handeln können.
--- Originally created on May 25th, 2011, at 09:31am
Deshalb habe ich ja primaer ein anderes Verfahren favorisiert, welches sich einfach in das System eingliedert, und zwar nicht das Trennen in Verzeichnisse, sondern ausschlieslich das Anpassen des Dateinamens. Also im Sinne von
Dies funktionert mit alles Webservern und Systemen, und es ist auch ohne Core-Anpassungen machbar. Zumal man dann auch recht einfach weitere AusgabeFormate unterstuetzen kann, ohne im Core irgendentwas anpassen zu muessen.
--- Originally created by lindesbs on May 25th, 2011, at 09:35am
Zudem liesse sich im BE die visuelle Unterscheidung immer noch realisieren. Ich denke da an Icons vor den Templatenamen und dem bekannten panelLayout-Filter. Dann kann man sich auf Wunsch nur alle xhtml oder html5 oder xy formatierten Templates ausgeben lassen.
--- Originally created on May 25th, 2011, at 09:53am
und es ist auch ohne Core-Anpassungen machbar
Dafür ist es nicht rückwärtskompatibel, denn alle angepassten .tpl
-Dateien müssten entsprechend umbenannt werden. Und auch wenn man im BE mit Icons oder ähnlichem arbeitet, ist es im FTP-Programm sehr unübersichtlich.
Aber gut, ich werde mal sehen, ob sich das ändern lässt. Bei einer Dateiendung a la .html5.tpl
sehe ich jedoch schon jetzt Probleme, weil z.B. der Template-Editor das als die Datei fe_page.html5
mit der Endung .tpl
interpretieren wird :)
--- Originally created on May 25th, 2011, at 09:59am
die "alten" TPL koennen ja so bleiben.
Dann ist halt "altes" HTML immernoch fe_page.tpl Und die "neuen" haben halt den Zusatz Suffix.
Und der TemplateEditor macht jedenfalls in der 79357d1a049389811a22e4c22bb9fdf8 die Arbeit mit diesem Verfahren richtig. Beim Editieren als auch beim Umbenennen bleibt der initiale Suffix erhalten.
--- Originally created by lindesbs on May 25th, 2011, at 10:04am
Dafür ist es nicht rückwärtskompatibel, denn alle angepassten .tpl-Dateien müssten entsprechend umbenannt werden. Könnte man nicht bei der Installroutine beim Update auf die 2.10 einfach alle Template-Ordner scannen und xy.tpl in xy.xhtml.tpl umbenennen?
Nur mal so als Idee, die ich gerne in die Runde werfen möchte :)
--- Originally created on May 25th, 2011, at 10:36am
So, in cb8a08fb30c01e45875ed4cd4293bf42 habe ich mal den anderen Ansatz implementiert.
--- Originally created on May 25th, 2011, at 12:42pm
Hm, in cb8a08fb30c01e45875ed4cd4293bf42 machst du genau das, was du du in #5 bemaengelt hast. Absolut keinerlei rueckwaertskompatibilitaet mehr vorhanden.
Du hast dreimal die fileTypes definiert
http://dev.contao.org/projects/typolight/repository/entry/branches/contao-2.10/system/modules/tpl_editor/dca/tl_templates.php#L42 http://dev.contao.org/projects/typolight/repository/entry/branches/contao-2.10/system/modules/tpl_editor/dca/tl_templates.php#L55 http://dev.contao.org/projects/typolight/repository/entry/branches/contao-2.10/system/modules/tpl_editor/dca/tl_templates.php#L203
Du laesst ausschliesslich xhtml und html5 zu. Somit sind ALLE Erweiterungen ausgesperrt, die mit tpl arbeiten.
--- Originally created by lindesbs on May 25th, 2011, at 01:11pm
Jetzt ist es aber nicht mehr rückwärtskompatibel oder? Du suchst ja jetzt effektiv nach
$strKey = $strTemplate . '.' . $strFormat;
oder habe ich was übersehen? Testen kann ich leider im Moment nicht, werde das aber auf jeden Fall noch nachholen.
Ausserdem, was mir noch aufgefallen ist, beim Anlegen eines neuen Templates führst Du folgende Prüfung durch:
!preg_match('/\.(html5|xhtml)$/', $strTemplate)
War nicht irgendwie ursprünglich angedacht, dass man die Möglichkeit bietet, weitere Template-Typen zu unterstützen? Also evtl. da direkt auf $GLOBALS['TL_DCA']['tl_templates']['config']['validFileTypes'] zurückgreifen?
Dann bin ich aber immer noch der Meinung, dass ein Filtern nach Output-Format ganz praktisch wäre, nicht?
--- Originally created on May 25th, 2011, at 01:18pm
Hmpf, zu spät^^ :D
--- Originally created on May 25th, 2011, at 01:18pm
Ok, das werde ich noch anpassen.
--- Originally created on May 25th, 2011, at 02:23pm
Der Theme-Manager ist auch noch auf .tpl
beschränkt.
--- Originally created on May 25th, 2011, at 02:24pm
Das System war halt komplett auf tpl ausgelegt, weshalb ich ja auch das Verfahren wie in #3 vorgeschlagen hatte
--- Originally created by lindesbs on May 25th, 2011, at 02:28pm
So, in der 0260a738b3957c2a6d6af7ed6488863e sollte es nun passen.
--- Originally created on May 25th, 2011, at 03:18pm
Lokal auf meinem Rechner hat sich jetzt der gute Firefox den Frontend-Templates "*.xhtml
" angenommen. :)
(Stört mich aber auch nicht weiter, zumal ich die Templates ohnedies anders öffne...)
--- Originally created on May 25th, 2011, at 03:34pm
Hast Du den entsprechenden Eintrag aus der .htaccess.default
übernommen?
AddHandler application/x-httpd-php .tpl .html5 .xhtml
--- Originally created on May 25th, 2011, at 03:44pm
Aber Dir ist schon klar, das du durch diesen htaccess Eintrag
Einfach im tl_files eine datei erzeugen info.tpl mit Schadcode, oder dem auslesen von Daten.
Diese koennen dann naemlich ganz einfach im Browser von extern aufgerufen werden und werden natuerlich als PHP ausgewertet.
Meiner Meinung nach ein NO GO
--- Originally created by lindesbs on May 25th, 2011, at 03:51pm
Zum einen sind alle Templates-Ordner durch entsprechende .htaccess
-Dateien geschützt. Zum anderen wurden die entsprechenden Dateien bisher bei direktem Aufruf im Klartext angezeigt, was meiner Meinung nach noch viel schlimmer ist, denn nicht selten werden in eigenen Templates Zugangsdaten für die Datenbank etc. angegeben. Der Umweg über den PHP-Parser sorgt wenigstens dafür, dass diese Ausgabe verschwindet.
Du hast aber insofern Recht, als dass vermutlich niemand diese Dateien direkt aufrufen wird. Wir können also genauso gut folgendes verwenden:
<FilesMatch "\.(tpl|html5|xhtml)$">
Order allow,deny
Deny from all
</FilesMatch>
--- Originally created on May 25th, 2011, at 03:56pm
Jepp, das habe ich. Nicht, dass wir uns hier missverstehen: Gemeint war lediglich die MIME-Verknüpfung der registrierten Dateitypen im Windows Explorer. Die Erweiterung ".xhtml
" wird nun mal standardmäßig durch den Webbrowser (in meinem Fall "Firefox") im Betriebssystem registriert und infolgedessen beim Öffnen eben durch den XML-Parser interpretiert.
Who cares? Stören tut mich das nicht wirklich, da ich - wie gesagt - die Templates sowieso mit meinem Editor öffne und bearbeite...
--- Originally created on May 25th, 2011, at 04:01pm
In 0f4a6914ebd1e709039efffa576840c6 werden jetzt auch wieder die .tpl
-Dateien geladen (Rückwärtskompatibilität).
--- Originally created on May 25th, 2011, at 08:10pm
Ist es jetzt eigentlich notwendig, eigene neue Templateendungen ("Einstellungen" > "Unterstützte Templateformate") in der .htaccess zu ergänzen?
--- Originally created on October 22nd, 2011, at 12:13am
--- Originally completed on May 25th, 2011, at 03:18pm
Es koennen nicht gleichzeitig Templates fuer xhtml und html5 angepasst werden.
Bsp.: fe_page.tpl existiert in beiden Versionen.
Im Theme kann ich nur einen Ordner definieren. Kopiere ich nun ein Theme, wird dies ohne die Pfadangabe standardmaessig in templates kopiert. Jedoch mit dem Verlust XHTML | HTML5
Erst durch manuelles Erstellen von Zusatzordnern im Templateverzeichnis (ueber FTP z.B.) koennen nun die PFade im Kopierordner angepasst werden.
Loesung : Defaultmaessig im Templatesverzeichnis jeweils den HTML5 und den XHTML Ordner erstellen
Related issues: #3087
--- Originally created by lindesbs on May 24th, 2011, at 06:02pm (ID 3103)