projektbezogene #global-Aufrufe
Die Anforderungen einer Web-Site können es erforderlich machen, auf die Einstellungen oder andere Projektinformationen zuzugreifen. Soll beispielsweise innerhalb der Web-Site ein Sprachwechsel ermöglicht werden, ist es sinnvoll zuvor die definierten Projektsprachen zu ermitteln.
Für solche Einsatzzwecke bietet das Systemobjekt #global die Möglichkeit auf Eigenschaften des Projekts zuzugreifen. Dazu wird der Ausdruck #global.project verwendet, der ein Objekt vom Datentyp Project zurückliefert.
In der nachfolgenden Tabelle sind die wichtigsten Aufrufe aufgeführt:
Aufruf | Bedeutung | Rückgabedatentyp |
---|---|---|
#global.project.brokenLinkMedia | Liefert den Namen des eingestellten Ersatzmediums zurück | String |
#global.project.brokenLinkPage | Liefert den Namen der eingestellten Ersatzseite zurück. | String |
#global.project.description | Liefert die Beschreibung des Projekts zurück. | String |
#global.project.id | Liefert die ID des Projekts zurück. | |
#global.project.groups | Liefert alle Gruppen eines Projektes zurück. | |
#global.project.languages | Liefert alle Sprachen eines Projektes zurück. Mit der Methode .shouldGenerate() des Datentyps Language kann geprüft werden, ob eine Sprache generiert wird oder nicht. | |
#global.project.masterLanguage | Liefert die Mastersprache eines Projekts zurück. | |
#global.project.masterLanguage.abbreviation | Liefert das Kürzel der Mastersprache eines Projekts zurück. | String |
#global.project.masterLanguage.name | Liefert den Namen der Sprache zurück, die gerade erzeugt wird, z.B. Deutsch, English usw. | String |
#global.project.name | Liefert den Namen des Projekts zurück. | String |
#global.project.originalResolution | Liefert die Originalauflösung zurück. | |
#global.project.resolutions | Liefert alle Auflösungen eines Projektes zurück. Mit der Methode .isOriginal() des Datentyps Resolution kann geprüft werden, ob die Auflösung die Orignalauflösung ist. | |
#global.project.templateSets | Liefert alle Präsentationskanäle eines Projektes zurück. | |
#global.project.users | Liefert alle Benutzer eines Projektes zurück. | |
Beispiele
Nachfolgend werden einige Beispiele zur Verwendung der Anweisung innerhalb von Vorlagen gezeigt. Die Beispiele sollen die konkrete Auswirkung der Anweisung verdeutlichen und eine Hilfe für den Vorlagenentwickler bei der Erstellung eigener Vorlagen sein.
Für die Verwendung innerhalb eines Projekts, müssen die hier gezeigten Beispiele angepasst werden! Beispielsweise müssen Variablennamen auf die spezifischen Variablennamen des Projekts geändert werden, in dem die Anweisung verwendet werden soll. |
1. Beispiel: Drop-Down-Box mit allen generierten Projektsprachen
<select size="1" name="language" onchange="window.location.href=this.options[this.selectedIndex].value">
$CMS_FOR(l, #global.project.languages)$
$CMS_IF(l.shouldGenerate)$
<option value="$CMS_REF(#global.node, lang:l.abbreviation)$">$CMS_VALUE(l.name + " (" + l.abbreviation + ")")$</option>
$CMS_END_IF$
$CMS_END_FOR$
</select>
Im Beispiel werden alle Projektsprachen mit #global.project.languages ermittelt. Mit der $CMS_FOR(...)$-Anweisung wird nun jede einzelne Projektsprache behandelt. Ist die Option Sprache generieren für die Sprache aktiviert (Projekteinstellungen: Sprachen; Überprüfung mit .shouldGenerate()), wird ein Drop-Down-Box-Eintrag ausgegeben. In der Drop-Down-Box wird der Name der Sprache und zusätzlich (in Klammern eingefasst) die Abkürzung angezeigt. Das Ziel des Eintrags ist die aktuelle Seite in der entsprechenden Sprache.
Exemplarische Ausgabe:
<select size="1" name="language" onchange="window.location.href=this.options[this.selectedIndex].value">
<option value="/preview/671041/show/site/DE/current/671044/681046">Deutsch (DE)</option>
<option value="/preview/671041/show/site/EN/current/671044/681046">English (EN)</option>
<option value="/preview/671041/show/site/ES/current/671044/681046">Español (ES)</option>
</select>
2. Beispiel: Ausgabe eines Bildes in allen Projektauflösungen
$CMS_FOR(r, #global.project.resolutions)$
<p>
$CMS_IF(r.isOriginal)$
<img src="$CMS_REF(media:"florida")$"/>
<p>Bild -
unskaliert
- ($CMS_VALUE(ref(media:"florida").width)$x$CMS_VALUE(ref(media:"florida").height)$)</p>
$CMS_ELSE$
<img src="$CMS_REF(media:"florida", res:r)$" />
<p>Bild -
$CMS_IF(r.width > 0)$
breitenskaliert
$CMS_IF(r.height > 0)$
und höhenskaliert
$CMS_END_IF$
$CMS_ELSIF(r.height > 0)$
höhenskaliert
$CMS_END_IF$
- ($CMS_VALUE(ref(media:"florida", res:r).width)$x$CMS_VALUE(ref(media:"florida", res:r).height)$)</p>
$CMS_END_IF$
</p>
$CMS_END_FOR$
Im Beispiel werden alle Auflösungen mit #global.project.resolutions ermittelt. Mit der $CMS_FOR(...)$-Anweisung wird nun jede Auflösung einzeln behandelt:
- Handelt es sich um die Originalauflösung (.isOriginal), so wird das Bild unskaliert mit dem Text "Bild - unskaliert - " und der Breite und Höhe in Pixel ausgegeben.
- Bei anderen Auflösungen wird das Bild in der entsprechenden Auflösung ausgegeben. Dabei wird ermittelt, ob das Bild in der Breite und/oder Höhe skaliert wird und anschließend die entsprechende Breite und Höhe in Pixel ausgegeben. Ein Bild wird immer dann skaliert, wenn entweder die Breiten- oder die Höhenangabe in der Auflösung einen Wert größer als 0 aufweist.
Exemplarische Ausgabe:
<p>
<img src="/preview/671041/show/media/DE/current/773042/ORIGINAL"/>
<p>Bild - unskaliert - (4134x2766)</p>
</p>
<p>
<img src="/preview/671041/show/media/DE/current/773042/W100" />
<p>Bild - breitenskaliert -(100x67)</p>
</p>
<p>
<img src="/preview/671041/show/media/DE/current/773042/H100" />
<p>Bild - höhenskaliert -(149x100)</p>
</p>