Platzhalter beim Erstellen von Dateien in Vorlagen nutzen
Veröffentlichungsdatum: 19. Juli 2016
Änderungsdatum: 24. September 2020
platzhalter placeholder anlegen erstellen datei verzeichnis
Verwenden Sie Platzhalter, um bei Erstellen von Dateien die Datei- und Verzeichnispfade passend zur angelegten Datei zu setzen.
Beim Erstellen von Dateien auf Grundlage einer Dateivorlage mit Elementen (z.B. Listenoptionen) können Sie auf Platzhalter zurückgreifen. Auf diese Weise können Sie eine Weblication® CMS Liste (z.B. Bildergalerie) gleich mit den entsprechenden Pfaden zum Bildverzeichnis setzen.
Beispiel: Dateivorlage für eine neue Bildergalerie
Verwenden Sie beim Anlegen einer neuen Bildergalerie eine Dateivorlage (Template), die bereits das Element für die gewünschte Bildergalerie (z.B. galleryFancybox) beinhaltet.
Um den Pfad zum auszulesenden Bilderverzeichnis gleich zu benennen wie die Datei der Bildergalerie, setzen Sie einen Platzhalter ein ($wDocumentCreatorInsert['fileNameOnly']).
Beispiel: Auszug aus der Dateivorlage vorlage-bildergalerie.php
... <wd:item type="list.standard"> <wd:fragment id="pathMastertemplate">/[IHR-LAYOUT-PROJEKT]/wGlobal/mastertemplates/items/gallery.standard.wItemMastertemplate.php</wd:fragment> <wd:fragment id="editmaskType">gallery</wd:fragment> <wd:fragment id="listtemplate" type="src.default">/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/lists/galleryFancybox.wFilelist.php</wd:fragment> <wd:fragment id="dir" type="src.dir">/baseAssets/img/galleries/$wDocumentCreatorInsert['fileNameOnly']</wd:fragment> <wd:fragment id="dirRecursive" type="src.dir"/> ...
Verfügbare Platzhalter beim Erstellen einer neuen Datei
Folgende Platzhalter stehen für Dateivorlagen zur Verfügung:
- $wDocumentCreatorInsert['userName']
Beim Erstellen eines Dokumentes wird dieser Platzhalter in der Dateivorlage durch den Benutzernamen des Pflegebenutzers ersetzt.
z.B.:
$wDocumentCreatorInsert['userName'] -> mustermann - $wDocumentCreatorInsert['fileNameOnly']
Beim Erstellen eines Dokumentes wird dieser Platzhalter in der Dateivorlage durch den Dateinamen (ohne Dateiendung) der neuen Datei ersetzt.
Wird z.B. innerhalb /base/bildergalerien/ eine Datei mit dem Namen "galerie1.php" auf Grundlage der o.g. Dateivorlage erstellt, so wird der Platzhalter durch galerie1 ersetzt.
z.B.:
/baseAssets/img/galleries/$wDocumentCreatorInsert['fileNameOnly'] -> /baseAssets/img/galleries/galerie1 - $wDocumentCreatorInsert['dirName']
Beim Erstellen eines Dokumentes wird dieser Platzhalter in der Dateivorlage durch den Namen des Verzeichnisses ersetzt, in dem die Datei angelegt wird.
Wird z.B. innerhalb /base/bildergalerien/meine-Galerie eine Datei auf Grundlage der entsprechenden Dateivorlage erstellt, so wird der Platzhalter durch meine-Galerie ersetzt.
z.B.:
/baseAssets/img/galleries/$wDocumentCreatorInsert['dirName'] -> /baseAssets/img/galleries/meine-Galerie - $wDocumentCreatorInsert['filePath']
Beim Erstellen eines Dokumentes wird dieser Platzhalter in der Dateivorlage durch den Dateipfad der neuen Datei ersetzt.
Wird z.B. innerhalb /base/bildergalerien/ eine Datei mit dem Namen "galerie1.php" auf Grundlage der entsprechenden Dateivorlage erstellt, so wird der Platzhalter durch /base/bildergalerien/galerie1.php ersetzt.
z.B.:
/baseAssets/img/galleries$wDocumentCreatorInsert['filePath'] -> /baseAssets/img/galleries/base/bildergalerien/galerie1.php - $wDocumentCreatorInsert['dirPath']
Beim Erstellen eines Dokumentes wird dieser Platzhalter in der Dateivorlage durch den Verzeichnispfad der neuen Datei ersetzt.
Wird z.B. innerhalb /base/bildergalerien/2012/ eine Datei auf Grundlage der entsprechenden Dateivorlage erstellt, so wird der Platzhalter durch /base/bildergalerien/2012 ersetzt.
z.B.:
/baseAssets/img/galleries$wDocumentCreatorInsert['dirPath'] -> /baseAssets/img/galleries/base/bildergalerien/2012 - $wDocumentCreatorInsert['firstSubdirPath']
Beim Erstellen eines Dokumentes wird dieser Platzhalter in der Dateivorlage durch den Projektpfad inkl. erstem Unterverzeichnis der neuen Datei ersetzt.
Wird z.B. innerhalb /base/bildergalerien/2012/ eine Datei auf Grundlage der entsprechenden Dateivorlage erstellt, so wird der Platzhalter durch /base/bildergalerien ersetzt.
z.B.:
/baseAssets/img/galleries$wDocumentCreatorInsert['firstSubdirPath'] -> /baseAssets/img/galleries/base/bildergalerien - $wDocumentCreatorInsert['projectPath']
Beim Erstellen eines Dokumentes wird dieser Platzhalter in der Dateivorlage durch den Projektpfad der neuen Datei ersetzt.
Wird z.B. innerhalb /base/bildergalerien/ eine Datei auf Grundlage der entsprechenden Dateivorlage erstellt, so wird der Platzhalter durch /base ersetzt.
z.B.:
/baseAssets/img/galleries$wDocumentCreatorInsert['projectPath'] -> /baseAssets/img/galleries/base - $wDocumentCreatorInsert['projectAssetsPath']
Beim Erstellen eines Dokumentes wird dieser Platzhalter in der Dateivorlage durch den Assets-Projektpfad der neuen Datei ersetzt.
Wird z.B. innerhalb /base/aktuelles/meldungen/ eine Datei auf Grundlage der entsprechenden Dateivorlage erstellt, so wird der Platzhalter durch das zugehörige Assets-Projektverzeichnis (z.B.: /baseAssets) ersetzt.
z.B.:
src="$wDocumentCreatorInsert['projectAssetsPath']/img -> /baseAssets/img
(ab CMS-Version 011.001.079.000 verfügbar) - $wDocumentCreatorInsert['uid']
Beim Erstellen eines Dokumentes wird dieser Platzhalter in der Dateivorlage durch eine eindeutige ID (uid) ersetzt.
Wird z.B. innerhalb /base/veranstaltungen/termine/ eine Datei auf Grundlage der entsprechenden Dateivorlage erstellt, so wird der Platzhalter durch eine zufällige uid ersetzt.
z.B.:
uid="$wDocumentCreatorInsert['uid']" -> uid="a3971da4b088b986e81e532ae402f658"
(ab CMS-Version 011.001.079.000 verfügbar) - $wDocumentCreatorInsert['timestamp']
Beim Erstellen eines Dokumentes wird dieser Platzhalter in der Dateivorlage durch den aktuellen Zeitstempel (timestamp) ersetzt.
Wird z.B. innerhalb /base/ eine Datei auf Grundlage der entsprechenden Dateivorlage erstellt, so wird der Platzhalter durch den aktuellen Zeitstempel des Webservers ersetzt.
z.B.:
time="$wDocumentCreatorInsert['timestamp']" -> time="1426089385"
(ab CMS-Version 011.001.079.000 verfügbar) - $wDocumentCreatorInsert['day']
Beim Erstellen eines Dokumentes wird dieser Platzhalter in der Dateivorlage durch den aktuellen Tag des Monats (day) ersetzt.
Wird z.B. innerhalb /base/ eine Datei auf Grundlage der entsprechenden Dateivorlage erstellt, so wird der Platzhalter durch den aktuellen Tag (zweistellig, z.B. 01 oder 17) des Webservers ersetzt.
z.B.:
time="xxxx-xx-$wDocumentCreatorInsert['day']" -> time="xxxx-xx-17"
( ab CMS-Version 015.002.056.000 verfügbar) - $wDocumentCreatorInsert['month']
Beim Erstellen eines Dokumentes wird dieser Platzhalter in der Dateivorlage durch den aktuellen Monat (month) ersetzt.
Wird z.B. innerhalb /base/ eine Datei auf Grundlage der entsprechenden Dateivorlage erstellt, so wird der Platzhalter durch den aktuellen Monat (zweistellig, z.B. 01 oder 12) des Webservers ersetzt.
z.B.:
time="xxxx-$wDocumentCreatorInsert['month']-xx" -> time="xxxx-09-xx"
( ab CMS-Version 015.002.056.000 verfügbar) - $wDocumentCreatorInsert['year']
Beim Erstellen eines Dokumentes wird dieser Platzhalter in der Dateivorlage durch das aktuelle Jahr (year) ersetzt.
Wird z.B. innerhalb /base/ eine Datei auf Grundlage der entsprechenden Dateivorlage erstellt, so wird der Platzhalter durch das aktuelle Jahr (vierstellig, z.B. 2020) des Webservers ersetzt.
z.B.:
time="$wDocumentCreatorInsert['year']-xx-xx" -> time="2020-xx-xx"
( ab CMS-Version 015.002.056.000 verfügbar)
Beispiel: Auszug aus dem Verzeichnisereignis für das Anlegen des Bildverzeichnisses der Galerie
Um das über den Platzhalter zusammengesetzte Verzeichnis auch als solches gleich zur Verfügung haben, legen Sie über die Verzeichniseinstellungen des Bildergalerieordners (im Beispiel: /base/bildergalerien) ein onAfterCreateFile Ereignis an. Als Aktion erstellen Sie über PHP-Framework Funktionen das gewünschte Bildverzeichnis im Assets-Projekt.
Beispiel: Inhalt des onAfterCreateFile Ereignisses mit Aktion zum Verzeichnis anlegen
// WICHTIG:
// Die PHP-Tags sind nur in diesem Quelltext-Beispiel gesetzt und
// und dürfen im Ereignisfenster nicht gesetzt werden (siehe Screen)
$fileNameOnly = wPathName::getFileNameOnly($eventData['filePath']);
$newDir = "/baseAssets/img/galleries/".$fileNameOnly;
$dirTemplate = "/baseAssets/weblication/templates/directories/standard";
wRepository::createDir($newDir, $dirTemplate);- Wozu dienen Platzhalter beim Erstellen von Dateien in Dateivorlagen?
- Platzhalter werden genutzt, um bei der Erstellung von Dateien aus Dateivorlagen Datei- und Verzeichnispfade automatisch passend zur neu angelegten Datei zu setzen.
- Wie kann ich bei einer Dateivorlage die Pfade einer Bildergalerie automatisch setzen?
- Erstellen Sie die Dateivorlage (Template) so, dass sie bereits das gewünschte Galerie-Element enthält. Nutzen Sie anschließend Platzhalter wie <code class="codeInline">$wDocumentCreatorInsert['fileNameOnly']</code>, um beispielsweise das Bilderverzeichnis gleich mit dem passenden Namen zur Galerie-Datei zu benennen.
- Welcher Platzhalter hilft, den Dateinamen ohne Dateiendung für Pfade zu verwenden?
- Verwenden Sie <code class="codeInline">$wDocumentCreatorInsert['fileNameOnly']</code>. Ersetzt wird damit der Dateiname ohne Endung. Beispiel: Aus <code class="codeInline">.../galerie1.php</code> wird <code class="codeInline">.../galerie1</code>.
- Welcher Platzhalter liefert den Namen des Verzeichnisses, in dem die Datei angelegt wird?
- Verwenden Sie <code class="codeInline">$wDocumentCreatorInsert['dirName']</code>. Dieser wird beim Anlegen einer Datei durch den Namen des Zielverzeichnisses ersetzt.
- Wie erhalte ich in der Dateivorlage den vollständigen Dateipfad der neuen Datei?
- Nutzen Sie <code class="codeInline">$wDocumentCreatorInsert['filePath']</code>. Beim Erstellen wird dieser Platzhalter durch den Dateipfad der neuen Datei ersetzt.
- Wie erhalte ich in der Dateivorlage den Verzeichnispfad (statt der Datei)?
- Verwenden Sie <code class="codeInline">$wDocumentCreatorInsert['dirPath']</code>. Dieser Platzhalter wird durch den Verzeichnispfad der neuen Datei ersetzt.
- Was ist der Unterschied zwischen <code class="codeInline">dirPath</code>, <code class="codeInline">firstSubdirPath</code> und <code class="codeInline">projectPath</code>?
- - <code class="codeInline">$wDocumentCreatorInsert['dirPath']</code>: Pfad des Verzeichnisses, in dem die Datei liegt. - <code class="codeInline">$wDocumentCreatorInsert['firstSubdirPath']</code>: Projektpfad inklusive erstem Unterverzeichnis. - <code class="codeInline">$wDocumentCreatorInsert['projectPath']</code>: Projektpfad der neuen Datei (z.B. der Projektordner ohne weiteren Unterbau).
- Wie bekomme ich den Assets-Projektpfad (z.B. <code class="codeInline">/baseAssets</code>) in die Dateivorlage?
- Nutzen Sie <code class="codeInline">$wDocumentCreatorInsert['projectAssetsPath']</code>. Beispielhaft kann damit ein Pfad zu einem Bildordner gebaut werden, z.B. <code class="codeInline">src="$wDocumentCreatorInsert['projectAssetsPath']/img" -> /baseAssets/img</code> (ab CMS-Version 011.001.079.000 verfügbar).
- Wozu sind die Platzhalter <code class="codeInline">uid</code> und <code class="codeInline">timestamp</code> in Dateivorlagen nützlich?
- - <code class="codeInline">$wDocumentCreatorInsert['uid']</code>: ersetzt durch eine eindeutige ID. - <code class="codeInline">$wDocumentCreatorInsert['timestamp']</code>: ersetzt durch den aktuellen Zeitstempel des Webservers. (beide ab CMS-Version 011.001.079.000 verfügbar).
- Wie kann ich Datumsteile (Tag/Monat/Jahr) in einer Dateivorlage verwenden?
- Mit den Platzhaltern: - <code class="codeInline">$wDocumentCreatorInsert['day']</code> (Tag, zweistellig) - <code class="codeInline">$wDocumentCreatorInsert['month']</code> (Monat, zweistellig) - <code class="codeInline">$wDocumentCreatorInsert['year']</code> (Jahr, vierstellig) Diese sind ab CMS-Version 015.002.056.000 verfügbar.
- Wie kann ich sicherstellen, dass das per Platzhalter gebildete Verzeichnis sofort existiert?
- Legen Sie für den jeweiligen Ordner (z.B. Bildergalerie-Ordner) ein <code class="codeInline">onAfterCreateFile</code>-Ereignis an. Erstellen Sie darin das über den Platzhalter zusammengesetzte Verzeichnis direkt nach dem Anlegen der Datei.
- Welches Prinzip wird im Beispiel für <code class="codeInline">onAfterCreateFile</code> verwendet, um ein Bildverzeichnis anzulegen?
- Im Ereignis wird aus dem <code class="codeInline">filePath</code> der Galerie der <code class="codeInline">fileNameOnly</code> ermittelt und daraus der neue Verzeichnisname für den Assets-Pfad <code class="codeInline">/baseAssets/img/galleries/</code> zusammengesetzt. Anschließend wird das Verzeichnis per PHP-Framework Funktion <code class="codeInline">wRepository::createDir</code> erstellt.