Frage

Nehmen wir an, wir müssen in einem benutzerdefinierten Deployer auf den Inhalt unserer veröffentlichten Seite zugreifen.Dieser Teil des Codes befindet sich in der Methode „processPage“ in unserem CustomModule, das die Klasse „PageDeploy“ erweitert.

Auf diese Weise erhalte ich die Seite, die veröffentlicht wird, aber der Inhalt dieser Seite wird nicht transformiert (Komponenten auf dieser Seite werden nicht gerendert).

public void processPage(Page page, File pageFile) throws ProcessingException {
    File file = new File(pageFile.toString());
}

Wenn ich weiß, dass ich die Bereinigung der TransportPackages in cd_deployer.conf.xml deaktivieren kann, indem ich die Bereinigung auf „false“ ändere: <WorkFolder Location="C:\tridion\work" Cleanup="false"/>,Ich sehe, dass Tridion zwei Versionen meiner Seite generiert:

  1. root\page.html (mit nicht gerendertem Inhalt, mit Pfad pageFile.ToString())
  2. root ransformed\page.html (das den vollständigen Inhalt hat – Inhalt, den ich möchte)

Warum erhalte ich dann HTML-Code mit noch weniger Inhalt als der ursprüngliche HTML-Code, wenn ich eine neue Datei mit dem transformierten Seitendateipfad erstelle und lese?Liegt das daran, dass in dieser Phase der Bereitstellung die Seite noch nicht gerendert und vollständig ist oder...?

Danke!

War es hilfreich?

Lösung

Verwendet Ihre Seite dynamische Komponentenpräsentationen?Wenn dies der Fall ist, enthält der veröffentlichte und bereitgestellte HTML-Code auf Seitenebene nur eine „Include-Anweisung“ für die Komponentenpräsentation

<tcdl:ComponentPresentation ... />

Das Einzige, was während der Bereitstellung passiert, ist, dass die „technologieunabhängige“ Sprache, die während der Veröffentlichung/des Transports verwendet wird, entweder in ein JSP-Tag oder ein ASP.NET-Serversteuerelement-Include übersetzt wird. In beiden Fällen wird sie normalerweise in etwas übersetzt, das mit beginnt tridion:ComponentPresentation.

Das HTML-Fragment der dynamischen Komponentenpräsentation selbst wird separat veröffentlicht und als separates Element im konfigurierten Speicher gespeichert.

Der vollständige HTML-Code wird erst erstellt, wenn die Seite angefordert wird (zur Bereitstellung für einen Besucher).In diesem Stadium wird die JSP-Tag-Bibliothek oder das ASP.NET-Serversteuerelement aufgerufen, das HTML-Fragment für die Komponentenpräsentation aus dem Speicher gelesen und in das HTML-„Drahtmodell“ der Seite eingefügt.

Mit diesem Wissen erklärt es tatsächlich, warum Sie das HTML-Fragment für die dynamischen Komponentenpräsentationen in Ihrer Deployer-Erweiterung nicht finden können:Die Zusammenführung der DCP-Fragmente in der Page-Shell erfolgt nur, wenn die Seite angefordert wird, nicht, wenn sie bereitgestellt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top