About Nickoli Roussakov

Nick is a SDL Tridion Consultant and takes part in solving a wide range of business challenges in content management primarily through the use of SDL Tridion, .NET and J2EE.
Nick manages the North American side of Content Bloom, undertaking a variety of tasks including consultancy, development and developer mentoring.

Trick to Submitting a POST Request with Java DXA 1.7

We had a scenario while building a form on Java DXA 1.7 and tried to have it submit via POST, not GET. We had the form working perfectly via GET, but when we changed the method to POST the response was a 403 Forbidden. We poked in many directions, such as directory security settings and web.xml configs. In the end it was the CSRF configuration built into DXA that was the answer…

Continue reading

Tridion and Solr Versioning: a SI4T Story

Here is a quick story with a lesson learnt: One of our clients was running Tridion 2011SP1 and installed Solr 4.8.1, and asked us to configure SI4T. We banged our heads against this thing until major head trauma occurred. The outcome was not successful. The lesson learnt is that Tridion 2011SP1 is compatible up to Solr 4.7 only. Starting with Solr 4.8 you’ll need to be running Tridion 2013 +. Read on for details…

Continue reading

DD4T and SDL SmartTarget 2014 Integration

There are a number of steps required to install SmartTarget and all the required pieces, including FredHopper and the new SmartTarget CD Webservice Extension. That’s right; Tridion’s OData Webservice now comes with a SmartTarget extension to grab your Promotions’ items… I digress. In this article I am going to assume that you’ve done your homework and read the SDL Live Content documentation regarding the necessary moving parts, wiring and plumbing, and have it all installed. (If you’re looking for an introduction to SmartTarget 2014, have a look at John Winter’s article: A look at SmartTarget 2014). So here we’ll just jump right into answering the question of how to integrate DD4T.NET with SmartTarget 2014 and I will share an MVC HTML Helper Extension class providing us with control to render SmartTarget’s Promotion Items in your DD4T-driven MVC.NET application.

Continue reading

Tridion Dynamic Component Linking – Authors can’t be expected to understand this, can they?

Just recently a client had asked me an interesting question about Tridion’s Dynamic Component Linking.  They understood the concepts, but didn’t know how to manage this “feature” across multiple novice authors/editors within their organization.  So here is what I think the answer is.

Continue reading

Publish an Image to a Structure Group Mirroring Folder

I often run into a scenario where clients ask to publish an image to a directory on the server.  Below is a TBB that does just this.  It publishes an image to a Structure Group that has the same relative path as the Folder. So you can right-click on a image and choose Publish in Tridion and then have it end up in, what appears to be the same folder on the delivery server (works great for untrained developers that just want to reference a src path).

Continue reading

The Solution to Hardcoding Component Template IDs in Nested Component Presentations

Sometimes we have a need to render a nested Component using its Component Template.  The Tridion API provides us with the following function:

@@RenderComponentPresentation(nestComp.ID, "tcm:x-y-z")@@

Now, the problem with the above is that if we hardcode TCM IDs all over the place, our template becomes non-Content Porter friendly. If we port this thing from our DEV CM to QA and PROD CMs, then we have to have a step in our deployment procedure runbook to update the TCM IDs everywhere where this is done.

One way to solve this is to provide the ability to refer to the nested Component Template by name instead of the TCM ID.  So the template code will look as follows:

@@RenderComponentPresentation(nestComp.ID, "${myNestedCTName}")@@

This can be accomplished by a simple Template Building Block that pushes the names of all the Component Templates available in the system onto the Package.  Here is the TBB and an explanation of how to use it.

Continue reading

Configuring the Tridion Cache Channel Service with WebSphere Application Server JMS

In enterprise environments there is a high chance of having your SDL Tridion Content Delivery side being hosted on an IBM WebSphere Application Server infrustructure.  Setting up the Tridion Cache Channel Service should be done via the Java Messaging Service at places where such infrastructure exists: the client invested a lot into it probably for a good reason and failover is most likely a key requirement.  In this article we’ll take a look at how to set up the Tridion Cache Channel Service using JMS on IBM WebSphere Application Server (WAS).

Continue reading

Publishing Performance of DCPs

Does publishing a Component linked to many Dynamic Component Templates lead to publishing performance issues?

I recently ran into a scenario where, due to an update to business requirements, I had to change Component Templates from statically embedded to dynamic.  In my case there were 14 different CTs linked to the same Schema.  This means that when 1 Component is published there are 14 Component Presentations being rendered and sent to the Broker.  The question then arose, does this kind of a design lead to publishing performance issues?

Continue reading

Storage Extension Boilerplates (for Pages to Filesystem and DCPs to Broker)

So tonight I geeked out and created a boilerplate Java project with debugging properly enabled for Tridion Storage Extensions when publishing Pages to the filesystem.  There are a couple tutorials out there explaining how to do this for ComponentPresentation and for a custom type, but not how to do this Pages.  There are a couple of interesting points with this exercise that aren’t really explained elsewhere, so I thought I’d highlight them with this post.  Also, some copy-paste boilerplate code should be handy.

Continue reading

Tridion Language Switcher

language-switcherSDL Tridion is known for its superior capabilities when it comes to managing multi-lingual websites, and such websites typically have a some kind of a switch to allow switching between languages.  In this article I’ll attempt to explain the concept of setting the Publication Context and how to use Tridion’s Dynamic Linking to allow us not only switch from a site in one language to another, but to do it for any given page on the site.

Continue reading