Search the FirstSpirit Knowledge Base
Hallo allerseits,
der bei uns in den Projekten verwendete Deployment-Prozess geht (aus verschiedenen Gründen) immer von einer Vollgenerierung aus. Dabei sind folgende Optionen bei "Generierung ausführen" ausgewählt:
Nun wurde festgestellt, dass neu hinzugefügte Dateien in der Medien-Verwaltung, die nicht referenziert werden (wie z. B. CSS-Dateien), bei dieser Vollgenerierung nicht mit deployed werden. Änderungen an bestehenden (ebenfalls nicht referenzierten) Dateien werden allerdings korrekt bei einer Vollgenerierung übernommen.
Das scheint nach aktuellem Kenntnisstand an der nicht mehr vorhandenen Option "Alle Medien in diesem Ordner bei der Generierung kopieren" zu liegen. Bei uns ist derzeit FirstSpirit 4.2 R2 im Einsatz.
Eine Teilgenerierung über diese neu hinzugefügten und nicht referenzierten Medien-Dateien scheint hingegen zum Erfolg zu führen.
Ist es nun möglich, diese Dateien immer im Zuge einer Vollgenerierung mit zu übernehmen, egal ob sie referenziert sind oder nicht?
Vielen Dank im Voraus,
Daniel Bachran
Hallo Herr Bachran,
wenn wirklich immer alle Medien [aus bestimmten Ordnern] bei der Generierung mit erzeugt werden sollen, gibt es zwei mögliche Herangehensweisen.
a) Definieren Sie eine zweite Generierungsaktion nach der bisherigen Vollgenerierung. Definieren Sie diese Generierungsaktion als Teilgenerieurng und tragen Sie als Startpunkt den Root Knoten der Medien-Verwaltung ein [bzw. die Ordner, deren Medien veröffentlicht werden sollen]. Deaktivieren Sie die beiden Punkte "Generierung nur wenn erforderlich" und "Generierungsverzeichnis vorher leeren" für diese Generierungsaktion.
Nachteil: Dateien, die nicht referenziert werden und bei denen "Datei parsen" aktiviert wurde, werden nicht erzeugt.
Hinweis: Dieses Vorgehen entspricht der Option "Alle Medien in diesem Ordner bei der Generierung kopieren", wenn Sie "nur" die entsprechenden Ordner ausgewählt haben.
b) Erzeugen Sie eine Dummy-Seite, die Referenzen auf alle [gewünschten] Medien erzeugt, selber aber nicht generiert wird.
Beispiel, um alle Dateien, bei denen die Option Datei parsen aktiviert wurde, zu veröffentlichen:
Erzeugen Sie eine Eingabekomponete <CMS_INPUT_FILE name=file" label="Datei"/>, in der sie später eine beliebige Datei aus der Medien-Verwaltung auswählen.
Im Template benutzen Sie diesen Quellcode:
$CMS_VALUE(#global.project.userService.store("MEDIASTORE",true).class)$
$CMS_SET(mediaClass,class("de.espirit.firstspirit.access.store.mediastore.Media"))$
$CMS_FOR(files,#global.project.userService.store("MEDIASTORE",true).children(mediaClass,true))$
$CMS_IF(files.type == file.medium.type)$
$CMS_IF(files.getParseFile())$
$CMS_REF(files)$
$CMS_END_IF$
$CMS_END_IF$
$CMS_END_FOR$$CMS_SET(#global.stopGenerate, true)$ $-- Mit diesem Aufruf verhindern Sie, dass diese Dummy Seite erzeugt wird --$
Nun eine Seite und Seitenreferenz aufgrund dieser Vorlage anlegen. Dann werden alle Dateien, bei denen Datei parsen aktiviert wurde, bei der Generierung mit erzeugt.
Viele Grüsse aus Dortmund,
Holger Höbbel
Hallo Herr Bachran,
wenn wirklich immer alle Medien [aus bestimmten Ordnern] bei der Generierung mit erzeugt werden sollen, gibt es zwei mögliche Herangehensweisen.
a) Definieren Sie eine zweite Generierungsaktion nach der bisherigen Vollgenerierung. Definieren Sie diese Generierungsaktion als Teilgenerieurng und tragen Sie als Startpunkt den Root Knoten der Medien-Verwaltung ein [bzw. die Ordner, deren Medien veröffentlicht werden sollen]. Deaktivieren Sie die beiden Punkte "Generierung nur wenn erforderlich" und "Generierungsverzeichnis vorher leeren" für diese Generierungsaktion.
Nachteil: Dateien, die nicht referenziert werden und bei denen "Datei parsen" aktiviert wurde, werden nicht erzeugt.
Hinweis: Dieses Vorgehen entspricht der Option "Alle Medien in diesem Ordner bei der Generierung kopieren", wenn Sie "nur" die entsprechenden Ordner ausgewählt haben.
b) Erzeugen Sie eine Dummy-Seite, die Referenzen auf alle [gewünschten] Medien erzeugt, selber aber nicht generiert wird.
Beispiel, um alle Dateien, bei denen die Option Datei parsen aktiviert wurde, zu veröffentlichen:
Erzeugen Sie eine Eingabekomponete <CMS_INPUT_FILE name=file" label="Datei"/>, in der sie später eine beliebige Datei aus der Medien-Verwaltung auswählen.
Im Template benutzen Sie diesen Quellcode:
$CMS_VALUE(#global.project.userService.store("MEDIASTORE",true).class)$
$CMS_SET(mediaClass,class("de.espirit.firstspirit.access.store.mediastore.Media"))$
$CMS_FOR(files,#global.project.userService.store("MEDIASTORE",true).children(mediaClass,true))$
$CMS_IF(files.type == file.medium.type)$
$CMS_IF(files.getParseFile())$
$CMS_REF(files)$
$CMS_END_IF$
$CMS_END_IF$
$CMS_END_FOR$$CMS_SET(#global.stopGenerate, true)$ $-- Mit diesem Aufruf verhindern Sie, dass diese Dummy Seite erzeugt wird --$
Nun eine Seite und Seitenreferenz aufgrund dieser Vorlage anlegen. Dann werden alle Dateien, bei denen Datei parsen aktiviert wurde, bei der Generierung mit erzeugt.
Viele Grüsse aus Dortmund,
Holger Höbbel
Lösung b) skaliert nicht, davon kann ich nur abraten
Daniel Bachran schrieb:
Nun wurde festgestellt, dass neu hinzugefügte Dateien in der Medien-Verwaltung, die nicht referenziert werden (wie z. B. CSS-Dateien), bei dieser Vollgenerierung nicht mit deployed werden.
Ich frage mich, wieso die CSS-Datei nicht referenziert wird? Ich würde erwarten, das diese aus mindestens einer Vorlage referenziert wird. Damit wird diese auch deployed, wenn es eine mindestens eine Seite gibt, die auf dieser Vorlage basiert (und die auch generiert wird). Ansonsten wäre die Datei auch überflüssig und würde zu Recht nicht deployed.
Holger Höbbel schrieb:
Hinweis: Dieses Vorgehen entspricht der Option "Alle Medien in diesem Ordner bei der Generierung kopieren", wenn Sie "nur" die entsprechenden Ordner ausgewählt haben.
Diese Option gibt es schon seit geraumer Zeit nicht mehr in der Software (3.1? Eventuell aus Kompatibiltät noch in 4.0...)
Hallo allerseits,
danke für die hilfreichen Antworten. Im Admin-Handbuch wird dieser Aspekt zwar erklärt, aber da ich mich gerade erst in FirstSpirit einarbeite, wollte ich sichergehen, dass ich hier auch alles richtig verstanden habe.
Ich werde also Lösung a) weiterverfolgen.
pjodeleit wrote:
Ich frage mich, wieso die CSS-Datei nicht referenziert wird? Ich würde erwarten, das diese aus mindestens einer Vorlage referenziert wird. Damit wird diese auch deployed, wenn es eine mindestens eine Seite gibt, die auf dieser Vorlage basiert (und die auch generiert wird). Ansonsten wäre die Datei auch überflüssig und würde zu Recht nicht deployed.
Das liegt daran, dass bei uns in den Projekten verschiedene, komplere Formular direkt in JSP/JSF umgesetzt wurden und in FirstSpirit nur als IFRAME eingebettet sind.
Dateien, die von diesen Formularen referenziert werden, sind FirstSpirit damit nicht bekannt, müssen aber sehr wohl im Zuge eines Volldeployments auf den Server transferiert werden.
Zukünftig werde ich mir auch einmal die Dokumentation zum Modul FirstSpirit Integration ansehen um zu evaluieren, ob hier eine Migration einiger der Formulare möglich ist...
Viele Grüße aus Berlin und nochmals herzlichen Dank!
Daniel Bachran
Hallo Herr Bachran,
bitte beachten Sie bei Lösung a), dass Dateien, bei denen die Option "Datei parsen" aktiviert wurde, nicht veröffentlicht werden, auch wenn Sie in einem Ordner befinden, der veröffentlicht werden soll!
Dies sollte bezüglich Ihres Problems nicht problematisch sein, da die CSS Dateien ja extern genutzt werden und somit wahrscheinlich keinen FirstSpirit Quellcode beinhalten und diese Dateien somit nicht geparsed werden müssen.
Viele Grüsse aus Dortmund,
Holger Höbbel
Hallo Herr Höbbel,
danke nochmal für den Hinweis, das werden wir entsprechend beachten und stellt tatsächlich hier derzeit kein Problem dar.
Viele Grüße
Daniel Bachran