mstaender
I'm new here

Verwaltung von Seiten und deren Generierung aus einem Modul heraus

Hallo,

ich programmiere noch nicht so lange für FS und daher fehlt mir trotz DTB/DTA noch hier und da etwas Erfahrung. Momentan dabei ein kleines Modul zu schreiben das es erlaubt Newsletter in FS zu erstellen und über unser externes System zu versenden. Dazu habe ich eine konzeptionelle und eine eher technische Frage:

1. Verwaltung von Newslettern
Da Newsletter ja durchaus länglich und komplex werden können habe ich mir ein Newslettertemplate (Absatzvorlage) gebaut und den aktuellen Newsletter erstmal auf einer "Newsletterseite" im zentralen Inhaltsbereich angezeigt. Wenn jetzt mehr Newsletter hinzu kommen stellt sich mir folgende Frage: wie würde man denn in FirstSpirit ein Set an Newslettern am besten verwalten?

Bei Datenquellen ist mir zwar klar wie man eine Übersichts- und Detailseite macht aber mir ist noch nicht ganz eingängig ob man das auch mit Seiten machen kann. Problem ist, dass der Newsletter aus vielen Artikeln besteht und einen Newsletter als Datenquelle anzugeben könnte den Kunden schockieren, daher die Frage was da die gängige Praxis ist.

2. Generierung von einem Ausgabekanal

Ich suche gerade die Info wie man aus einem Modul eine bestimmte Page generieren kann. Mir reicht es, wenn ich an den Output des HTML-Kanals käme.
Hier hatte ich gerade auch dieses Posting gesehen: https://community.e-spirit.com/message/13077#13077

Dort verweist ein Kollege auf https://community.e-spirit.com/message/3972 aber genau wie der Threadersteller habe ich da keinen Zugriff drauf. Das Skript würde mich mal interessieren.

Auch bei anderen Themen zu der Frage habe ich keine direkte Antwort gefunden, z.B. https://community.e-spirit.com/ideas/1194

Ich habe also noch nicht rausgefunden wie man für eine Seite an den Ausgabekanal/Ouput kommt. Die DeploymentUtils Klasse aus der Doku hat mich jetzt auch noch nicht wirklich weiter gebracht bisher, irgendwie fehlt mir noch ein kleiner Schubser denke ich.

Danke schon mal,

Marcus

0 Kudos
9 Replies
MarsDD
Occasional Observer

Hi Marcus,

in der Class GenerateTask kannst du über


setGenerateFlag(Language language, TemplateSet templateSet, boolean generate)

die Sprache sowie das TemplateSet für die Generierung definieren.

Viele Grüße aus Dresden

Marcel

0 Kudos

Hi Marcel und vielen Dank für die Antwort.

Ich habe jetzt sehr lange versucht mit den gegebenen Infos zurecht zu kommen aber bisher erschließt sich mir nicht, wie das funktioniert.

Eigentlich würde ich gerne einfach an den HTML Code herankommen der in der Preview angezeigt wird. Muss ich wirkllich diesen Umweg gehen indem ich im Server-Manager einen Generieren-Task, den mir dann in meinem Code hole, irgendwas konfiguriere (obigen Code oder createEntityEntry usw.), dann den Task ausführen lasse und dann... was genau dann? Die generierte Datei finden und einlesen?

Gibt es nicht zufällig irgendwo Code (siehe Ausführung oben, den scheint es hinter den Kulissen schon zu geben) wo ich mir das ansehen könnte?

MfG Marcus

0 Kudos
MarsDD
Occasional Observer

Hi Marcus,

mein Hinweis bezog sich auf den Punkt 2 - eine Seite mit einerm gewissen TemplateSet bzw Sprache zu generieren.

Viele Grüße

Marcel

0 Kudos

Hi Marcel,

das ist mir schon klar und meine Antwort bezog sich nach einem Tag Grübeln und Testen auf deine Antwort.

Ich benötige eigentlich nur den HTML Code der auch in der Preview angezeigt wird und offenbar auch ohne Generierung schon vorhanden ist und bisher habe ich einfach noch keinen sinnvollen Lösungsweg. Irgendwie habe ich jetzt den Generierungs-Task als Objekt bekommen aber die Frage die ich im vorherigen Post nochmal gestellt habe sind leider immer noch offen Smiley Sad

MfG Marcus

0 Kudos
MarsDD
Occasional Observer

Hi Marcus,

wenn Du es beim Punkt 2 auch um das Thema "Newsletter" geht, wirst Du wohl an Grenzen stoßen. Outlook z.B. kann mit diversen HTML-Elementen, welche wohl im Generat deiner Seite enthalten sind, nix anfangen.

Deploy doch mal testeshalber deine Seite und füge den HTML Code in eine Outlook-Mail ein, senden und mal schauen, wie es ankommt Smiley Wink

Ich hatte mal eine ähnliche Anforderung bei einem Kunden, kann Dir bei Bedarf gerne weiterhelfen Smiley Wink

Viele Grüße

Marcel

0 Kudos

Hi Marcel,

das Darstellungsproblem ist in der Tat gerade bei Outlook ein riesen Problem.

Unser ursprünglicher Plan war es, dass der Kunde in unserem System den Newsletter generiert (sehr darstellungssicher) aber er möchte den NL (leider) direkt über FS erstellen. Elemente wie

li etc. sind dann natürlich streng verboten aber das Ziel des Kunden ist es ein Template für den Newsletter einmal so zu gestalten, dass er darstellbar ist.

Zur Sicherheit werde ich im Freigabeworkflow auch vorgerenderte Previews in verschiedenen (über 30) Clients anzeigen lassen (externer Service), darunter auch diverse Mac-Outlook- und Whatever-Renderer.

Wenn du mir ein wenig mit dem "Wie komme ich nun an den Code" helfen könntest wäre ich dankbar. Das hat mich inzwischen schon sehr viel Zeit gekostet und als DTA-Frischling habe ich immer noch nicht die Erfahrung wie ich mir jetzt zusammenreime wie das funktioniert Smiley Wink

An vielen anderen Stellen funktioniert das: immerhin habe ich mir jetzt erarbeitet, wie das mit den Workflows funktioniert, wie man Tasks definiert und anspricht, etc. Aber manches erschließt sich mir bisher leider immer noch nicht Smiley Wink

MfG Marcus

0 Kudos

Hallo Marcus,

bist du bei deinem problem inwzischen weiter gekommen?

Ich benötige die gleiche Funktionalität, nur mit Medien. Genau gesagt würde ich gerne in einem Modul den "geparsten" Inhalt einer Datei im Mediastore erhalten.

Grüße

Sandro

0 Kudos

Hi,

ein Ansatz das über GOM-Objekte zu löse ist leider auch irgendwie gescheitert bisher und ziemlich kompliziert.

Ich dachte es wäre einfach ein Ausgabemodul zu schreiben, welches den Output eines Ausgabekanals statt z.B. auf einen Webserver woanders hin schickt (etwa an meinen REST-Service) aber bisher sehe ich keine Möglichkeit sinnvoll an den final generierten Content oder den Preview-Content heran zu kommen...

MfG Marcus

0 Kudos

Den Output des Ausgabekanals "wo anders" als ins FileSystem zu schicken geht prinzipiell über die UX-Bridge. Diese muss aber zusätzlich (für einen nicht geringen Betrag) lizensiert werden und ist für meinen Anwendungsfall (Minifizierung von JS/CSS während bzw. kurz vor einer Generierung und Ablage der Minifizierten Dateien mit geparstem Inhalt im Medienstore) deutlich überdimensioniert.

@Kollegen von e-Spirit: Gibt es wirklich keine Möglichkeit über die API an den Generierten Output einer Seite/Medium zu kommen, ohne sich dafür einen Generierungsauftrag anzulegen und dann die generierte Datei wieder vom Filesystem einzulesen?

Grüße

Sandro

0 Kudos