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.
This is, of course, not related to DD4T and just the basic configuration in cd_link_conf.xml.
What needs to be specified is the Host element. As per the comments provided in the boilerplate cd_link_conf.xml file, specify the Domain, Port and Path. In my case, the Path was set to "http://localhost" and the domain was set to "http://localhost:889" causing ...
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 ...
As already answered by Rob and Quirijn, the LinkFactory from DD4T only does Component Linking. You can use the core Tridion Content Delivery API to page link though. Check the Tridion.ContentDelivery.Web.Linking.PageLink class and it's various GetLink methods.
//create a new PageLink instance for publication 199
var pageLink = new PageLink(199);
This NoClassDefFoundError error usually comes in case of any of the following scenario:
As you have also listed in your question, there are some dependent .jar or .war file which is missing or have wrong path set somewhere (in configs or code)
Your existing java installation (JDK or JRE) is corrupted (You may check by running java -version client to verify)
I would say the performance impact is the actual link resolving (db lookups, linking resolving logic). Tridion will do this crunching only once if you enable Tridion CD caching for page links and component links.
Remember that the Tridion CD caching is not time based, cached items are flushed when new content is published which might affect the cached data. ...
The linking level is configurable with "expandLinkDepth" parameter in the Core Template Building Blocks "Render Page Content" and "Render Component Content"
Render Page Content
\100 Master\Building Blocks\Framework\Developer\Templates\Sdl.Web.Tridion.Templates\Render Page Content
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 ...
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 "...
Linking service is moved to root of the content service. You can access it like
For example to get Component link
I will suggest to check logs files & validate your bin/config/cd_licenses.xml file, linking problem usually occurs when you have invalid license file.
You could have following issues in file
Machine name not matching with the name in license file
No of cores in your system are more than allowed limit in license.
Use the core service to grab the tcmid from the text field and and format the necessary syntax to pop that as the component link directly into the new field.
A few simple Google’s will serve the format/structure you need.
What Mark says is indeed the way to go - use core services to write a script that does the update for you.
I would work as follows:
Create a new field in your schema for the component link, and keep the text field
Build a core service script that does the following
get all components that use the schema (using code example below)
get the TCM id from the ...
Yes this should be possible, Tridion allows you to do a lot in terms of path configuration:
Inside here you can configure your publish path e.g /appBeta/app
In the storage_conf.xml file in your deployer you can specify the file system path, for example c:/webapps - combined above the publication would publish to c:/webapps/...
The .Net CD API does not list anything you could use for this and the cd_link_conf.xml is a java configuration file which does not comply with the .Net config file schema (so you have no hope of using .Net builtin configuration APIs).
As such I can only agree with your conclusion:
I guess the best alternative is to manually parse this file and store the ...
I am not sure though I was able to achieve following
Using Deployer Extension, I was able to read the cd_deployer_config.xml file but no other configuration file like cd_storage_config.xml I was able to read
Using Storage Extension, I was able to read the cd_storage_config.xml file but no other file like cd_deployer_config etc. I was able to read.
In a ...
As usual... it depends :)
Luckily this is really easy to test - just use a timer and resolve the same link 100 times and check the difference between first and subsequent link "resolves".
Do keep in mind that you need to include the "current page ID" in the link, or it won't be cached (because proximity rules may influence the link result). If you specify "...
Bart pointed me in the right direction; TryGetBinary does indeed not populate the Url property but it does load the contents of the binary from the broker which is not what I would want when resolving links anyway.
Fortunately the source reveals the GetUrlForUri() method which does exactly what I need:
// Attempt to resolve as binary link
targetUrl = this....
What you want to avoid here is having to republish every page each time the navigation changes. It sounds like you are including the navigation as a TBB in each page, which is inefficient.
In this situation, in my mind anyway, you want the navigation to be a page in its own right. You can then include that in your page template (via a JSP/.NET include or ...
Links to other Tridion items must be "managed", i.e., they have to be identified to Tridion as an xlink object rather than just an href. If you look at how Tridion Component Links are created in a rich text field, you'll see that they're stored as:
<a xlink:href="tcm:123-132">Some text</a>
Tridion then has enough information to convert this to ...
When your website is showing old linking information, this usually means you have a caching problem. Best way to check if it is related to an outdated cache, is to restart your web/application server (SDL Tridion Broker cache is memory based, so it will be cleared after a restart) and check the page again. After the restart when you request the page, you ...
I am almost 100% sure its not possible now, so here is a .NET class to get what you need (as a static property which is loaded only once...
public class Config
private static Dictionary<int, string> _domainMap = null;
public static Dictionary<int, string> DomainMap
if (_domainMap == null)
You can also use some of the attributes on the link controls themselves to control how the links are displayed. For instance, TextOnFail='false' will make the web control not render anything if the link isn't resolved.
Here is the link to the list of all supported attributes (login required): http://sdllivecontent.sdl.com/LiveContent/content/en-US/...
In your scenario of:
A uses B
Publishing A does not cause B to be published.
Publishing B causes A to be published (A uses B, B is used by A).
It gets a bit more confusing once you add publishing status to the formula. Basically, it becomes Republish all components that THIS item is used by).
You can get a good feel for how it's all calculated by ...
You can specify additional inline elements (such as abbr) to accept in your rich text fields in the following configuration file on the Content Manager server:
In addition to Rick's correct answer...
You can indeed use the OverrideDiscoveryService to get relative URLs.
The default cd_link_conf.xml in the content, session and preview micro services contains the following comment which I found confusing.
OverrideDiscoveryService - specifies whether OData discovery endpoint configuration should be overridden
My issue has been resolved after applying the Hotfix Rollup #1 for SDL Tridion 2013 SP1.
Also I got Tridion.ContentManager.Publishing.dll from SDL to replace with the existing dll and also some config changes in Tridion.ContentManager.config file.