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

#1 18.03.2011 11:43

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13.09.2010
Beiträge: 6.677
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 cyberman (08.01.2017 15:45)


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMSMS
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#2 08.01.2017 15:56

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13.09.2010
Beiträge: 6.677
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.


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMSMS
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#3 08.02.2017 11:07

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13.09.2010
Beiträge: 6.677
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


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMSMS
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline