Liaison dynamique entre plusieurs publications Web


6

J'ai un scénario dans lequel plusieurs sites Web sont gérés par Tridion et il existe des liens de composants que je souhaite résoudre entre les publications Web.

Par exemple: Il y a un site d'entreprise: ID de publication 14, et un site de niche: Publication ID 13.

Le site d'entreprise a une page "Qui sommes-nous" avec un "A propos de nous" composant article, et le site de niche a un lien vers l'article "À propos de nous".

Mon cd_link_conf.xml a les éléments suivants:

<Publication Id="13"> 
    <Host Domain="mynichesite.com" Port="80" Path="/"/> 
    </Publication> 
    <Publication Id="14"> 
    <Host Domain="mycorporatesite.com" Port="80" Path="/"/> 
    </Publication> 

Tout est publié dans le même courtier DB, de sorte que la table LINK_INFO contient tout. Cependant, lorsque vous naviguez sur le site de niche (pub 13), le lien dynamique vers l'article À propos de nous sur la page À propos de nous dans Pub 14 n'est pas résolu. Ai-je manqué une certaine configuration, ou dois-je avoir une logique pour obtenir l'URI TCM "pub 13" du composant About US avant d'essayer de résoudre le lien?

---- ---- ACTUALISATION

J'envisage maintenant d'écrire l'algorithme suivant pour obtenir mes liens de travail. Comme nous utilisons DD4T, je prévois d'étendre la méthode IComponent.ResolveUrl() ce qui suit:

  1. obtenir le lien composant URI TCM
  2. essayer dans la détermination actuelle pub. Si résolution, puis revenir, sinon ...
  3. essayez un autre pub en localisant le TcmUri au prochain pub (besoin de garder/obtenir la liste des pubs quelque part)
  4. essayer dans la détermination pub prochain. Si résoudre, puis retourner sinon ...
  5. répétez l'étape 3 jusqu'à sortir des pubs à analyser ou un lien est trouvé.

Toujours pas idéal, mais si vous avez déjà fait quelque chose comme ça, n'hésitez pas à partager.

  0

Je viens donc essayé d'utiliser l'URI TCM et cela a fonctionné. Fondamentalement, dans pub 14, changez le préfixe de publication de l'uri tcm en pub 13 puis appelez la résolution de lien. Il renvoie l'URL de la page appropriée. Cependant, cela va nécessiter un peu de logique pour vérifier tous les liens - pas idéal. 10 mai. 132013-05-10 14:43:28

5

La liaison de publication croisée a toujours fonctionné - autant que je m'en souvienne - tant que tout est correctement configuré.

J'ai utilisé ce dans une logique de sélection de la langue avant:

  • Obtenir actuel ID Page ("tcm: 13-123-64")
  • Get publication cible Id ("14") que j'ai dans le cadre de ma source de sélecteur xml
  • lien Get à la page avec l'ID "tcm: 13-123-64" dans le contexte de la publication 14

, vous semblez donc être presque là. Vous devez créer un objet Lien lié à la publication dans laquelle vous souhaitez rechercher l'élément.

Sachez que ce code fonctionne publication cross:

ComponentLink componentLink = new ComponentLink(14); // 14 is corporate 
Link link = componentLink.GetLink("tcm:13-123"); // 13 is niche 
link.Url; // returns http://mycorporatesite.com/path/to/page 

Cela résoudrait le lien « tcm: 13-123 », mais dans le contexte de la publication 14 (celui utilisé pour initialiser l'objet ComponentLink) , donc vous n'avez pas vraiment besoin de localiser les URI.

  0

Merci Nuno. Ma «localisation» voulait dire obtenir l'ID dans la publication contextuelle. Je suppose que mon problème est qu'une page le lien peut exister dans un pub, donc je n'ai pas la publication de contexte comme dans un sélecteur de langue. 10 mai. 132013-05-10 16:13:15

  0

Réponse supprimée! Je ne savais pas que tu pouvais le faire :) 10 mai. 132013-05-10 16:16:48