Most likely your Dynamic Component Template output type is set to HTML Fragment. This instructs Tridion to not do anything with the rendered output as it is plain static HTML.
Change your template output type to REL when storing DCPs in the database, or JSP Scripting if storing them on the filesystem.
From your description, I suspect you may have cache enabled on your app servers, but not using (or not correctly configured) the Cache Channel Service.
There's some info on the Tridion object Cache on Tridion World and also on SDL Live Content (login required)
The configuration seems OK as far as I can remember the 2009 config... can you double ...
Apart from the empty <ul/> you are also going to face the issue of empty <li/> tags if individual links do not resolve, so you will be better off going the list of Tridion.ContentDelivery.Web.Linking.ComponentLink option.
You mention this"Also if I put ASP code in the CT this ASP code is showed in the page as text."
If you want to have asp code (i assume you mean asp.net code) and link resolving (which also uses an asp net server control) in a dynamic component presentation, then you should make sure to publish this dcp as an ascx control, not just as a html text fragment. ...
You could test for specific Schema's for example
if (c.Link.InternalLink.Schema.Title == "Multimedia Schema Title")
This would give you more control if the desired output is different based on Multimedia type (e.g. image, document, video, podcast, etc..)
You could also use
Yes, there is. In the cd_link_conf.xml of the (Session-enabled) Content Service there is a OverrideDiscoveryService attribute. If you set that to true, the Content Service will switch back to old-style link resolving using the mappings defined in cd_link_conf.xml and if you don't define any mappings in there, you will get relative URLs.
Unfortunately, the ...
In a Java-based app that takes advantage of Dynamic Component Linking you can do this:
<%@ page import="com.tridion.linking.ComponentLink, com.tridion.linking.Link" %>
string componentUri = "@@Component.ID@@";
ComponentLink componentLink = new ComponentLink("@@PublicationUri@@");
String formActionUrl = componentLink.getLink(...
If you want the flexibility for each content type (=schema) to have a totally different URL pattern, then there is not much you can do about it, however, I don't see it as being very complicated to have a simple schema->url pattern configuration file - you could even publish this from the CMS.
If you can sacrifice some of this flexibility, you could take ...
The best way to ensure that dynamic links (in RTF or in the output in general) in Dynamic Component Presentations (DCPs) published to the broker DB are resolved is to use REL as the output format of the dynamic Component Template.
Other output formats published to the database will just return the component presentation contents as plain text. Ensure that ...
In the Templating Base project on SDL Tridion World there is a method GetPage() this is something which usually is called on a Page Template only, but can also be used to get to the Page object on a Component Template (provided it exists, which is only the case for embedded Component Presentations when they are published, or the Page they are on is previewed)...
It would be good if you could supplement your question with what you have tried and what research you have done so far!
Will Price has excellent posts on Tridion Developer site related to this here:
Cleaning and Extending Dynamic Linking
Extending Linking for .NET
In essence, there are two parts to this:
Ensuring that URLs without a filename or extension ...
The link in pankaj's answer does have some great points, if that doesn't resolve it, I'd recommend adding the following information to your question:
The DWT code where you perform the HREF to your component link
Confirm the link you wish to link to is published
The language you are using to publish the content asp, rel, etc
An overview of your CD ...
What you can do is create new classes for the 'missing' functionality from the original Tridion.ContentDelivery.Web.UI assembly
you just need to create the class that inherits from the base class
public class ComponentPresentation : Tridion.ContentDelivery.Web.UI.ComponentPresentation
and if you don't override anything, you'll have this available in ...
Since DXA 1.1, Component Links to Multimedia Components are resolved as Binary Links (so a direct link to the MM Component's binary content).
I see you have tagged dxa java, which means that you will need DXA 1.2 (the first official DXA Java release).
There's clearly something going on with the java subsystem needed by Tridion. The fact it gets reported as a linking issue is probably just because that's the first Tridion API call your page contains.
Here's what I would do.
First, eliminate the "maybe I'm missing a jar" discussion by:
Copying all Tridion configuration files into /bin/config
Copying all ...
A Component link is resolved at request time, since that is the only moment when the correct link can be shown (it could be that the item you are linking to is moved to another Page or unpublished, after this Page has been published). So in your Template code there is nothing you can do, nor is there a tridion: attribute that you can use to add a query ...
Did Quirijn's comment fix the issue?
Looking at it, this indeed seems to be the case. Perhaps you could check / confirm the correct API libs are located in your website /bin/lib folder - or coming from a configured TRIDION_HOME location.
Full documentation to installing content delivery api in .net is located in the SDL Tridion content website here: http:/...
Another approach would be to use a Templated Web Control. You can have something similar to this.
<asp:ResolvedAwareLink runnat="server" ComponentUri="[TcmUri]">
<a href="<%# Container.Link%>"><%# Container.LinkText %></a>
Another approach is to "extend" your tcdl:Link Renderer (REL) and make sure that if the link is not resolved, you don't get those extra html elements... Unfortunately there's not an elegant way of avoiding the li/ul empty elements other than taking care of them by evaluating whether the link has or has not been resolved prior to rendering them. To me the "...
I am not sure you'll find something close to a tutorial, most of the active bloggers/participants in the Tridion Community learned how to do this before there was an active online community.
Things to take into consideration:
Make sure you have a working developer environment with Tridion loaded. Given you're using Java, I'd like to point you to this page ...
As Will's articles suggest, using a custom Tag Renderer is one way to do this. It's a clean approach, but does require advanced CMS knowledge and programming skill to implement.
A really really simple approach is to create each Page within its own SG with "index.aspx" or "default.aspx" being the page filename, hence relying on the dafault.aspx/index page ...
The short answer is 'yes' and 'yes'.
The long answer: in your cd_storage_conf.xml you can specify the item type mapping DynamicLinkInfo to use a Content Delivery Database (FKA the Broker DB). While keeping all your other mappings to file system, this ensues that only your linking (i.e. Component, Binary and Page) info will end up in the CD DB.
Alternatively, you could choose a different prefix for your custom functionality.
It will be more obvious that it's your code and thus less confusing and easier to troubleshoot.
If you use TCDL for your links, you can create a tag handler that transforms tcdl:ComponentLink to your prefix instead of "tridion". If you are instead outputting tridion:...
It appears the Deployer does not resolve tcdl tags inside out, which means it does not support nested tags unfortunately.
However when looking at your construct I would say that is sounds rather expensive to use a Dynamic Component Presentation, just for a single label value.
I would personally create a labels Component and publish that as a resource ...
Quick References on Dynamic Component Presentations:
Use either ComponentPresentationAssembler or ComponentPresentationFactory depends on your usage.
Use the ComponentPresentationAssembler class to execute any code in the Component Presentation, then add the result to the Web page.
The ComponentPresentationAssembler class ...
It looks like you're missing the configuration in web.xml for the tridion: JSP tag.
You should have an entry in your web.xml that reads more-or-less like this:
Cross-publication linking has always worked - as far as I remember - as long as everything is correctly configured.
I used this in a language selector logic before:
Get Current Page ID ("tcm:13-123-64")
Get target publication Id ("14") which I have as part of my selector's source xml
Get link to Page with ID "tcm:13-123-64" in context of Publication 14
Error reading contents of xml file: formdata.xml for session TWF_B1FD2C99DCD508DA73725176F4BA7FE130E06C4F, Premature end of file., Premature end of file.
It looks like above error causes due to the formdata.xml contains invalid XML.
So when it reaches to getComponentPresentation, function gets values as text and not the tcm id.
And also I suspect that:
Whomever did your implementation of Tridion decided that the design of your site would have this limitation of a maximum of two banners.
This is in no way a Tridion limitation, but an implementation choice. Unless someone here was involved in your implementation I strongly doubt you'll find the answer on this site. You should connect to the admin team on ...
The fact that you are seeing the correct <tridion:ComponentPresentation runat="server" ... /> tag indicates that the Language of your Publishing Target is set up correctly (ASP.NET) and that your Deployer is configured to transform the Component Presentations' TCDL tags to the correct (.NET) format.
It is difficult without seeing the rest of your ...