3

I have a content field where I have highlighted a word (where) and made it a Component link, this gets published as:

<p>Joining us couldn't be easier, just fill out the Join us eform and someone will be in 
touch with you to let you know when and 
<%Response.Write compLink.GetLinkAsString("tcm:0-41-1","tcm:41-103594-64","tcm:41-87758","tcm:0-0-0"," title=""aDisclaimer"" xmlns:tridion=""http://www.tridion.com/ContentManager/5.0""","where",True,False)%> 
we meet!</p>

With additional code added prior to the page title when viewed in Visual studio 2008

<%
Dim compLink
%>
<%
Set compLink = Server.CreateObject("cd_link.ComponentLink")
%>
<%@ Page Title="" Language="VB" MasterPageFile="~/masters/Homepage.master" %>

My compound Component template includes the C# Binary Component links, publish binaries in package and default finish actions TBBS.

If this link is removed other Component links that use an embedded schema show as

<tridion:ComponentLink runat="server" 
    ComponentURI="tcm:41-87758" 
    LinkText="disclaimer" 
    LinkAttributes="title=&#34;CIC Footer&#34;" 
    PageURI="tcm:0-0-0" TemplateURI="tcm:0-0-0" AddAnchor="false" 
    TextOnFail="true"/>

Could you tell me where I am going wrong please, I am using SDL Tridion 2009, this is a new website, so I am wondering if I have the correct SDL Tridion references?

0

2 Answers 2

3

Your template code is creating an ASP component link, where in SDL Tridion 2009 (and up) we normally use TCDL and let the Deployer transform that into the actual code which is needed (based on what is in the cd_deployer_conf.xml file).

If you could change your implementation to replace the word where in your text with:

<tcdl:Link type="Component" origin="tcm:41-103594-64" destination="tcm:41-87758" 
           templateURI="tcm:0-0-0" linkAttributes="title='a Disclaimer'" 
           textOnFail="True" addAnchor="False">where</tcdl:Link>

Then the Deployer will treat it like all other dynamic Component links and generate the following for you on your page:

<tridion:ComponentLink runat="server" ComponentURI="tcm:41-87758" LinkText="where" 
                       LinkAttributes="title=&#34;a Disclaimer&#34;" 
                       PageURI="tcm:41-103594-64" TemplateURI="tcm:0-0-0" 
                       AddAnchor="false" TextOnFail="true" />

Which is the call to the ASP.NET dynamic linking control.

update

If you are using Modular Templating with a Dreamweaver (DWT) Template Building Block, then you could also change the word where with:

<a tridion:href="tcm:41-87758" title="a Disclaimer">where</a>

If you do this before the Link resolver TBB (normally in the Default Finish Actions), then the TCDL and eventually the dynamic link control, will also be generated for you.

2

Normally, links created in a Rich Text Field will be converted by Tridion into the platform agnostic <tcdl:link> syntax, and then the deployer will transform this to the language preferences of your application server.

Your template seems to be creating a VBScript "Classic ASP" link instead of <tcdl:link>. The thing that intrigues me is that you have both formats output from Tridion, which means that somewhere you have a custom template handling this transformation instead of a Tridion default template.

Sad to say it, but you're going to have to change the template that is used to render the component with this field to use the Tridion default link resolving logic - best option is to check how it's done for the other components that have correct links and try to copy it.

Finally - Are you using Compound Templates or VBScript templates?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.