Search the FirstSpirit Knowledge Base
Hallo,
ich versuche derzeit eine Möglichkeit zu erarbeiten eine zentrale Scripteinbindung zu realisieren. Mein derzeitiger Ansatz nutzt eine Formatvorlage, welche per CMS_RENDER aufgerufen wird und mit dem Aufruf entsprechende Wertelisten übergeben werden.
Ein Aufruf könnte so aussehen:
$CMS_RENDER(template:"scriptuse",libs:"[jquery,modernizr,jquery-ui]",version:"[1.8.2,1.4.3,1.6.2]")$
In der Formatvorlage würde ich es dann so auflösen wollen (sämtlichen nicht relevanten Code habe ich weggelassen):
$CMS_FOR(libs_value, libs)$
Script: $CMS_VALUE(libs_value)$" | Version: $CMS_VALUE(version.get[#for.index])$"
$CMS_END_FOR$
Funktioniert das, oder gibt es bessere/praktikablere Ansätze?
Danke & Gruß
Ole
Hallo Ole,
mit den Korrekturen von Peter (
$CMS_RENDER(template:"scriptuse",libs:[{"name":"jquery","version":"1.8.2"}, {"name":"modernizr","version":"1.4.3"})$
) bekomme ich mit folgenden Code folgende Ausgabe:
$CMS_FOR(lib, libs)$
<!-- name: $CMS_VALUE(lib.name)$ -->
<!-- version: $CMS_VALUE(lib.version)$ -->
$CMS_END_FOR$
Ausgabe:
<!-- name: jquery -->
<!-- version: 1.8.2 -->
<!-- name: modernizr -->
<!-- version: 1.4.3 -->
Klappt das bei Dir auch?
Grüße Marian
Deine Parameter sind keine Listen. Wenn du den Aufruf anpasst, dann sollte es funktionieren
$CMS_RENDER(template:"scriptuse",libs:["jquery","modernizr","jquery-ui"],version:["1.8.2","1.4.3","1.6.2"])$
Alternativ kannst du auch komplexere Elemente in der Liste übergeben:
$CMS_RENDER(template:"scriptuse",libs:[{"name":"jquery","version":"1.8.2"}, {"name":"modernizr","version":"1.4.3"}])$
...
$CMS_FOR(lib, libs)$
Script: $CMS_VALUE(lib.name)$ | $CMS_VALUE(lib.version)$
$CMS_END_FOR$
[EDIT]
Syntax korrigiert, war JSON-Syntax
Hallo,
danke für den alternativen Ansatz. Mein Aufruf im Seitentemplate sieht jetzt so aus:
$CMS_RENDER(template:"scriptuse",libs:[{name:"jquery",version:"1.8.2"}])$
Und in der Formatvorlage lasse ich zum Testen erstmal nur den Namen ausgeben
$CMS_FOR(lib, libs)$
<!-- $CMS_VALUE(lib.name)$ -->
$CMS_END_FOR$
Jedoch ist die Ausgabe in der HMTL Seite leer
<!-- -->
Wo liegt mein Fehler?
Danke & Gruß
Ole
Hallo Ole,
direkt kann ich jetzt keinen Fehler erkennen. Was passiert, wenn Du libs oder libs.class.name ausgeben lässt, also ohne for-Schleife?
Grüße
Marian
Hallo,
für
<!-- $CMS_VALUE(libs.class.name)$ -->
bekomme ich in der Ausgabe
<!-- java.util.ArrayList -->
und für
<!-- $CMS_VALUE(libs)$ -->
kommt
<!-- [{=false}] -->
Danke & Gruß
Ole
Sorry, ich hatte JSON-Syntax benutzt. Habe mein Posting oben jetzt korrigiert..
Hallo Ole,
mit den Korrekturen von Peter (
$CMS_RENDER(template:"scriptuse",libs:[{"name":"jquery","version":"1.8.2"}, {"name":"modernizr","version":"1.4.3"})$
) bekomme ich mit folgenden Code folgende Ausgabe:
$CMS_FOR(lib, libs)$
<!-- name: $CMS_VALUE(lib.name)$ -->
<!-- version: $CMS_VALUE(lib.version)$ -->
$CMS_END_FOR$
Ausgabe:
<!-- name: jquery -->
<!-- version: 1.8.2 -->
<!-- name: modernizr -->
<!-- version: 1.4.3 -->
Klappt das bei Dir auch?
Grüße Marian
Hallo,
ja, klappt bei mir jetzt auch.
Kaum macht man es richtig ...
Danke & Gruß
Ole
PS: Die Doku ist ausbaufähig
PS: Die Doku ist ausbaufähig
Für Verbesserungs-Vorschläge sind wir immer offen
Anwendungsfälle und konkrete Beispiele wird man aber eher hier in der Community finden.