Startseite / Vorlagenentwicklung / Vorlagensyntax / Systemobjekte / #global / projektbezogen

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
(Zeichenkette)

#global.project.brokenLinkPage

Liefert den Namen der eingestellten Ersatzseite zurück.

String
(Zeichenkette)

#global.project.description

Liefert die Beschreibung des Projekts zurück
(siehe Seite Neues Projekt anlegen im Bereich "Tutorials").

String
(Zeichenkette)

#global.project.id

Liefert die ID des Projekts zurück.

Long

#global.project.groups

Liefert alle Gruppen eines Projektes zurück (siehe dazu auch Seite zu Projekteigenschaften im Bereich "Tutorials").

List<Group>

#global.project.languages

Liefert alle Sprachen eines Projektes zurück (siehe dazu Seite zu Server- und Projekteigenschaften im Bereich "Tutorials"). Mit der Methode .shouldGenerate() des Datentyps Language kann geprüft werden, ob eine Sprache generiert wird oder nicht.

List<Language>

#global.project.masterLanguage

Liefert die Mastersprache eines Projekts zurück
(siehe dazu Seite zu Projekteigenschaften im Bereich "Tutorials").

Language

#global.project.masterLanguage.abbreviation

Liefert das Kürzel der Mastersprache eines Projekts zurück.

String
(Zeichenkette)

#global.project.masterLanguage.name

Liefert den Namen der Mastersprache zurück, z. B. Deutsch, English usw.

String
(Zeichenkette)

#global.project.name

Liefert den Namen des Projekts zurück
(siehe Seite Neues Projekt anlegen im Bereich "Tutorials").

String
(Zeichenkette)

#global.project.originalResolution

Liefert die Originalauflösung zurück
(siehe dazu Seite zu Projekteigenschaften im Bereich "Tutorials").

Resolution

#global.project.resolutions

Liefert alle Auflösungen eines Projektes zurück
(siehe dazu Seite zu Projekteigenschaften im Bereich "Tutorials"). Mit der Methode .isOriginal() des Datentyps Resolution kann geprüft werden, ob die Auflösung die Originalauflösung ist.

List<Resolution>

#global.project.templateSets

Liefert alle Vorlagensätze eines Projektes zurück.

List<TemplateSet>

#global.project.users

Liefert alle Benutzer eines Projektes zurück
(siehe dazu auch Seite zum Anlegen und Zuweisen von Benutzern).

List<User>

#global.project.remoteProjectConfigurations

Liefert alle Remote-Projektkonfigurationen zurück
(siehe dazu entsprechende Seite im Bereich "Weiterführende Themen").

List <RemoteProjectConfiguration>

   

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.

Wichtig 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>

3. Beispiel: Filtern von Projekteigenschaften

In manchen Fällen kann es von Bedeutung sein, aus der Menge von Projekteigenschaften (wie z. B. Sprachen, Auflösungen, Vorlagensätze, Benutzer) einige nach bestimmten Kriterien herauszufiltern, um auf diese dann wiederum spezielle Methoden anwenden zu können.

Dazu kann die Methode .filter verwendet werden. (Siehe dazu auch Seite Abbildungs-Ausdrücke (Lambda).)

Menge

Syntax

alle Sprachen eines Projekts

$CMS_VALUE(#global.project.languages)$

alle Sprachen eines Projekts außer der Mastersprache

$CMS_VALUE(#global.project.languages.filter(x -> !x.masterLanguage))$

alle Sprachen eines Projekts, die generiert werden

$CMS_VALUE(#global.project.languages.filter(x -> x.shouldGenerate))$

alle Sprachen, die generiert werden, außer der Mastersprache

$CMS_VALUE(#global.project.languages.filter(x -> !x.masterLanguage && x.shouldGenerate))$

alle Auflösungen eines Projekts

$CMS_VALUE(#global.project.resolutions)$

alle Auflösungen eines Projekts außer der Auflösung ORIGINAL

$CMS_VALUE(#global.project.resolutions.filter(x -> !x.original))$

alle Benutzer eines Projekts

$CMS_VALUE(#global.project.users)$

alle Benutzer des Projekts, die Projekt-Administrator sind

$CMS_VALUE(#global.project.users.filter(x -> x.isProjectAdmin(#global.project)))$

alle Remote-Projektkonfigurationen eines Projekts

$CMS_VALUE(#global.project.remoteProjectConfigurations)$

alle Remote-Projektkonfigurationen außer dem lokalen Projekt

$CMS_VALUE(#global.project.remoteProjectConfigurations.filter(x -> x.projectName != #global.project.name))$

  

© 2005 - 2024 Crownpeak Technology GmbH | Alle Rechte vorbehalten. | FirstSpirit 2024.11 | Datenschutz