Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 18. März 2011 11:43

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Smarty-Templates via {include ...} einbinden

Smarty geht im Normalfall davon aus, dass Templates als Dateien vorliegen, also z.Bsp. index.tpl.

Der Ort, wo Smarty nach diesen Templates sucht, wird über die Variable $template_dir definiert

http://www.smarty.net/docs/en/variable.template.dir.tpl

Smarty-seitig ist das Verzeichnis /templates voreingestellt. Für CMSMS wurde dies auf /tmp/templates geändert.

Seit einigen Versionen ist dieses Verzeichnis jedoch nicht mehr in "Standard-Lieferumfang" enthalten, so dass man unter Umständen auf Schwierigkeiten stößt, wenn man Befehle wie zum Beispiel include verwenden möchte

http://www.smarty.net/docs/en/language. … nclude.tpl

Für solche Zwecke ist es dann nützlich, das Verzeichnis /tmp/templates wieder manuell anzulegen, so dass man uneingeschränkt Smarty-Befehle wie

{include file='page_header.tpl'}

verwenden kann wink.

PS: CMSMS selbst legt einen Großteil der Templates für die Webseite in der Datenbank ab oder stellt diese in separaten /template Verzeichnisses innerhalb der Modulverzeichnisse bereit.

Beitrag geändert von Andynium (08. Januar 2017 15:45)

Offline

#2 08. Januar 2017 15:56

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: Smarty-Templates via {include ...} einbinden

cyberman schrieb:

PS: CMSMS selbst legt einen Großteil der Templates für die Webseite in der Datenbank ab oder stellt diese in separaten /template Verzeichnisses innerhalb der Modulverzeichnisse bereit.

Wie aktuell zu lesen war, sollen mit CMSMS 2.2 wieder dateibasierte Templates unterstützt werden

http://www.cmsmadesimple.org/2016/12/CMSMS-2-2-Update/ schrieb:

Support for file-based design and development workflows
Developers like to work with files. There are numerous reasons for this, including the ability to use their favorite editor, and the ability to take advantage of source code control. To this end, we've introduced a new core directory which we've entitled 'assets', this will hold all of your file-based design and application customizations, including custom templates, CSS, images, plugins, and Smarty config files.

You can now work with templates (and soon CSS) using your favorite editor, and all of your customizations (with the exception of modules you download or write yourself) are located within a single directory.

Diese sollen dann im Verzeichnis /assets plaziert werden.

Offline

#3 08. Februar 2017 11:07

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: Smarty-Templates via {include ...} einbinden

Der Befehl {include file=...} lässt sich übrigens nicht nur (wie der Parameter file vermuten ließe) auf Dateien anwenden, sondern auch auf Objekte.

So kann man über zum Beispiel via

{include file='cms_template:footer'}

auf den Globalen Inhaltsblock namens "footer" zugreifen, quasi als Ersatz für den GCB Aufruf.

Alternativ käme include auch als Ersatz für den problematischen eval Befehl in Frage, wie hier gezeigt

https://www.cmsmadesimple.de/forum/view … 490#p38490

Offline