FabsH
I'm new here

Einbinden globaler Inhalte

Hallo zusammen,

ich komme gerade nicht weiter.. Ich will zum einen globale Inhalte (das dunkelgraue Zeugs) und zum anderen Werte aus meinen Projekteinstellungen in meine Vorlagen einbinden. Wie stelle ich das an?

So habe ich beispielsweise eine Globale Variable mit dem Namen page_title_suffix im Abschnitt Projekteinstellungen definiert (Bild 1). Eine Ausgabe mittels

$CMS_VALUE(#global.gca("page_title_suffix"))$

funktioniert leider nicht. Wie komme ich nun an diese Werte ran?

Das andere Problem ist, dass ich die globalen Inhalte nicht ausgegeben bekomme (hier z.B. den flexiblefooter, siehe Bild 1). Referenzname ist flexiblefooter. Ich habe es versucht über

$CMS_RENDER(template:"flexiblefooter")$

natürlich ohne Erfolg..

Wie löse ich diese beiden Probleme?

Ich danke! Smiley Happy

Fabian

Bild 1:

globale Projekteinstellungen.PNG

Labels (1)
0 Kudos
5 Replies
FabsH
I'm new here

Re: Einbinden globaler Inhalte

Für Problem 1 habe ich mittlerweile folgende Lösung gefunden:

<!-- Wert in eine Variable schreiben -->

$CMS_SET(meta_title_suffix)$$CMS_RENDER(template:"global_fallback",variable:"page_title_sufix",default:"")$$CMS_END_SET$

<!-- anschließende Ausgabe an beliebiger Stelle im HTML-Code -->

<title>

     $CMS_VALUE(pt_title)$<!-- Seitentitel -->

     $CMS_VALUE(meta_title_suffix)$<!-- Suffix für den Titel -->

</title>

Für bessere Vorschläge bin ich natürlich offen..

0 Kudos
tlegat
I'm new here

Re: Einbinden globaler Inhalte

Hallo Fabian,

ist die Variable page_title_suffix direkt in der Vorlage projectsettings definiert?

Dann kannst Du von überall darauf zugreifen. Allerdings ist zu bedenken, dass der Wert nicht von einer Seite abhängen darf, denn die Projekteinstellungen werden vor dem Seitenkontext aufgerufen.

$CMS_VALUE(page_title_suffix)$

sollte also gehen.

Zur Ausgabe des globalen Inhalts flexiblefooter - das ist kein Template, was Du mit CMS_RENDER ausgeben kannst. CMS_RENDER(template) gilt nur für (Format-)Vorlagen aus der Vorlagenverwaltung.

Stattdessen würdest Du hier den Ansatz wählen, mit dem Du es beim page_title_suffix versucht hast.

$CMS_VALUE(#global.gca("flexiblefooter"))$

Siehe auch die ODFS: http://www.e-spirit.com/odfs52/vorlagenentwick/variablen/definition-ausg/glob-einstellu/

Gruß,

Tibor

0 Kudos
FabsH
I'm new here

Re: Einbinden globaler Inhalte

Hey Tibor,

erstmal vielen Dank für deine Antwort!

Prinzipiell stimmt deine Antwort natürlich. Leider muss in unserem System auf die von mir dargestellte Lösung zurückgegriffen werden, da an vielen Stellen in unserem System globale Variablen überschrieben werden können. Das Template "global_fallback" prüft dabei die verschiedenen Stellen ab und liefert so den relevanten Variablenwert.

Nur leider bin ich noch nicht weitergekommen mit meinem zweiten Problem. Der Zugriff über

$CMS_VALUE(#global.gca("flexiblefooter"))$

funktioniert genauso wenig wie

$CMS_RENDER(...)$

Naja, wenn ich eine Lösung finde, werde ich diese mitteilen Smiley Happy

Grüße,

Fabian

0 Kudos
tlegat
I'm new here

Re: Einbinden globaler Inhalte

Hi Fabian,

warum solltest Du die Variable nicht überschreiben können?

Es wäre nur notwendig, die Variable im entsprechenden Kontext zu überschreiben. Über #global.dumpcontext kannst Du Dir anschauen, in welchem Kontext die Variable gespeichert ist, bei Projectsettings ist das wohl ROOT.

Grundsätzlich könntest Du aus meiner Sicht auf das RENDER Template verzichten, weil Du eben direkt auf die Variable oder das Objekt (Hashmap z.B.) zugreifen kannst, in dem Dein Wert gespeichert wurde.

Vielleicht hängst Du mal Dein Render Template an sowie flexiblefooter, sodass wir besser einschätzen können, was Du erreichen möchtest, z.B. welche Ausgabe Du erwartest.

Davon ganz ab: Heißt Deine Variable page_title_sufix oder page_title_suffix? In der Beschreibung und im ersten Kommentar sprichst Du unterschiedliche Variablen an.

0 Kudos
pavone
I'm new here

Re: Einbinden globaler Inhalte

Hallo Fabian,

benötigst Du noch weitere Hilfe oder haben Dir die Antworten von Tibor bereits geholfen? In diesem Fall wäre es super, wenn Du die "richtige Antwort" entsprechend markierst, damit auch andere Community-Teilnehmer diese auf den ersten Blick finden. Solltest Du zwischenzeitlich eine eigene Lösung gefunden haben, wäre es nett, wenn Du diese hier bereitstellst.

Viele Grüße

Tim

0 Kudos