Setting up Contextual Image Delivery in a (DD4T) MVC .NET Website

curryIf you hadn’t noticed, SDL Web released a new product recently: Contextual Image Delivery, which in short enables you to resize, crop, trim and convert formats for images. I thought I would see how easy it was to set up in an ASP.NET MVC environment, and it went pretty well, but there are a few subtleties Continue reading

Made easy by Event System: Mirror Live publishing on Staging

PublishTargetsWhile working on migrating a 2009 Event System to 2013 SP1, I was looking at a requirement implemented to ensure that publishing actions to Live are always mirrored on Staging – thus making sure that Staging also has the latest versions of content, and indeed has old content removed without relying on the Editors remembering to check the Staging checkbox on the Publish popup. The existing code was rather complex, but when I tried playing around with the 2013 Event System in .NET, I found it was rather simple to implement… 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

Context Engine Webinar Resources

teamwork Today I gave an overview of the SDL Tridion Context Engine and how it can be used to provide device detection functionality for SDL Tridion Websites, with a focus on how simple it is to install and use in a RESS / Responsive website.

In the event you missed this presentation, the slides are available after the jump.

Continue reading

SDL Tridion for Dummies – a proposal

SDL Tridion for DummiesPeople have been asking me for years, to write a SDL Tridion for Dummies book. With the release of SDL Tridion 2013 SP1, our documentation features two new getting started guides (Quick Guide to creating a Page Template and Quick Guide to creating a Component Template, note, the documentation requires login, see here for how to get the login details), and these can be seen as two chapters of a For Dummies book.

Now, while these two new quick guides are a revolutionary step forward for people who are completely new to SDL Tridion, I am still missing the explanation behind them. The guides explain you step by step what you need to do to create your first Page/Component Template based on an HTML design, but afterwards you still might not have a clue about what you actually did (or why you needed to do it).

So let me ask you, do you really need a SDL Tridion for Dummies book – the complete edition – taking it one step further than the documentation?

Continue reading

Forms without Java, XSLT or even XML

Forms Now you might have heard that I love WebForms and advocate it everywhere I can (which isn’t necessarily true, but let’s say it is for the sake of argument). So why, you may ask, is Bart writing a provider to an online forms solution?

The answer is really quite simple – well that’s what product management said about the idea; because we recognise that our users are using many different tools to enable and facilitate their diverse content management needs and one of these is the ability to create simple online forms. That is why we built the ECL framework and why we continue to look for ways to improve our customer’s content management experience. Actually, the answer is even simpler than that: just because I can, and because I just love ECL and by now I love it more than WebForms.

Continue reading

TcmTemplateSync: Work with TBBs outside of Tridion:

Working with TBBs outside Tridion? Nothing new there you say – I already edit my DWTs in Dreamweaver and my .NET TBBs in Visual Studio. But what about those other commonly used TBB types; Razor and XSLT, what if you don’t like Dreamweaver (or don’t have a license)? Now there is a tool to help you sync local copies of TBBs with the CMS, and break free from editing them in the CMS GUI: TcmTemplateSync Continue reading

The Community XSLT Mediator vs. SDL Tridion 2013 XSLT Template Building Blocks

A brief history of the XSLT Mediator for SDL Tridion
Back in 2007/08, Tridion introduced a modular template framework called Compound Templates with R5.3. At the time you could use a combination of Template Building Blocks written in Dreamweaver (DWTs), C# Fragments and .NET assemblies to manipulate items in a package and add them to the output of your Compound Template.

This was a giant leap forward from what are now called legacy templates (VBScript, JScript and classic XSLT Component Templates) in SDL Tridion 2013. The concept of Compound Templates remains strong today, and is the primary way that developers render their content.

One of the key features of the template framework, was that it could be extended to support additional programming languages through the creation of Mediators. Over the years as developers got frustrated with the out-of-the-box mediators (C# Fragments, DWT and .NET assemblies), a number of community built Mediators have reared their heads, including ones for XSLT, Razor and Java. 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