Question

Disons que nous devons accéder au contenu de notre page publiée dans un déploiement personnalisé.Cette partie du code se trouve à l'intérieur de la méthode processPage qui se trouve dans notre CustomModule qui étend la classe PageDeploy.

De cette façon, j'obtiendrai la page en cours de publication, mais le contenu de cette page ne sera pas transformé (les composants qui se trouvent dans cette page ne seront pas rendus).

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

Si je sais que je peux désactiver le nettoyage des TransportPackages dans cd_deployer.conf.xml, en modifiant le nettoyage sur false : <WorkFolder Location="C:\tridion\work" Cleanup="false"/>,Je vois que Tridion génère deux versions de ma page :

  1. root\page.html (qui a un contenu non rendu, avec le chemin pageFile.ToString())
  2. root ransformed\page.html (qui a un contenu complet - le contenu que je veux)

Pourquoi alors, lorsque je crée un nouveau fichier avec le chemin du fichier de page transformé et que je le lis, j'obtiens du code HTML avec encore moins de contenu que le HTML d'origine ?Est-ce parce que dans cette phase de déploiement, la page n'est toujours pas rendue et complète ou... ?

Merci!

Était-ce utile?

La solution

Votre page utilise-t-elle des présentations de composants dynamiques ?Si tel est le cas, le code HTML au niveau de la page publié et déployé ne contiendra qu'une "instruction d'inclusion" pour la présentation du composant.

<tcdl:ComponentPresentation ... />

La seule chose qui se produit lors du déploiement est que le langage « indépendant de la technologie » utilisé lors de la publication/du transport est traduit soit en une balise JSP, soit en une inclusion de contrôle serveur ASP.NET, dans les deux cas, il est généralement traduit en quelque chose commençant par tridion:ComponentPresentation.

Le fragment HTML de la présentation du composant dynamique lui-même sera publié séparément et stocké en tant qu'élément distinct dans le stockage configuré.

Le HTML complet ne sera composé que lorsque la page sera demandée (pour être servie à un visiteur).À ce stade, la bibliothèque de balises JSP ou le contrôle serveur ASP.NET sera invoqué, lira le fragment HTML de la présentation du composant à partir du stockage et l'injectera dans le « wireframe » HTML de la page.

Avec cette connaissance, cela explique en effet pourquoi vous ne trouvez pas le fragment HTML pour les présentations de composants dynamiques dans votre extension Deployer :la fusion des fragments DCP dans le shell Page ne se produit que lorsque la page est demandée, pas lorsqu'elle est déployée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top