No Faking? Publish from a Parent Publication without Faking a Publication Target

Just when you think you really know the ins and outs of SDL Tridion, surprise, here’s a neat trick from Kelly Thompson, 10 year+ Tridionaut and now Global Education Manager with SDL Web Content Management solutions (check out the “bring-a-friend for 50% off” Summer 2012 special).

Update (15-May 2012): This technique will push parent items through your child publication’s publication target. See Bart’s comment on how to prevent the extra items from being sent through (thanks, Bart!).

From a child publication’s publication target, set the parent publication as an allowed publication.

Add the parent publication as an allowed publication in the child publication's publication target.

Now you can publish from a parent item even if its publication doesn’t have its own dedicated publication target.

Select the advanced publishing option to also publish in child publications. Selecting “Show Items to Publish” will show what’s queued for corresponding child publications.

Select "Show Items to Publish" to see your items queued to the child publication.

Use target types, groups, and group scope to fine tune this to your needs. Thank Kelly for the insight.

Some thoughts on CMS/CDN Integration

Creating a architecture presentation the other day helped to crystallise some thoughts in my head on integrating a CMS like Tridion, and Content Delivery Networks (CDNs).

I have been involved with such matters before (see my SDL Tridion World Article on how to technically integrate a CDN through Storage Extensions) but I thought it was worth sharing my ideas on the considerations when working with a CMS and CDN.

SDL Tridion’s Enterprise Content Management features are a good match for companies with a truly global digital presence and audience. Such companies are also those most likely to benefit from the scaling features offered by a global Content Delivery Network, so Tridion + CDN is a hot topic.

Continue reading

So you committed the SDL Tridion proposal on Area 51. Now what?

A lot of people have been jumping on the commitment band wagon for the recently proposed Q & A site for Tridion on Stack Exchange’s Area 51 site. This is a great step toward the proposal making it to the beta phase. Thanks to all of you who have got involved so far.

For those who don’t know, Stack Exchange is the creator of some generic technical Q & A sites such as Stack Overflow, Super User and Server Fault. They also make their platform available to more focused communities for products like Drupal and Word Press, as well as completely non-technical sites on various topics as far reaching as gardening, literature and poker. These sites are built by the online communities that want them. Before Stack Exchange sanctions the use of their platform, they want to be sure the sites will get used, and are filled with good content backed by an active community of knowledgeable contributors. They do this by allowing anyone to propose a site on their staging area called Area 51, and measuring its progress as it moves through various phases from initial definition, through commitment and beta until the site becomes live. Continue reading

A Custom Resolver in practice

Back in February I posted an article about Custom Resolvers. Yesterday I rolled my first Custom Resolver into a production environment, so I figured it was time to share my findings.

Background

To set the scene, it probably helps to explain the business requirements first. We have a large implementation with over 300 publications. Many of these share content, some of which needs to be secured, and links to binaries that also need to be secured. We have a third party security solution, which is implemented as a proxy on top of our published site. The proxy looks for a security.xml in the folder of any request, and then prompts for login etc depending what is contained in the XML file. This works very well for pages, but the pages often link to binaries (which were all contained in the “/images” directory for each publication). In order to secure binaries with different sets of restrictions we needed to bind the binaries in different Structure Groups. To simplify the concept, we decided to publish a variant of each binary linked from a page to the same Structure Group as the page. This has the desired effect of securing all binaries that are linked from secured pages with the same restrictions.  When a binary is linked from multiple secured pages, multiple variants of the binary are published. Continue reading

The schemas are the easy bit… right?

After you have been developing with SDL Tridion for a while, its easy to be a bit blasé about Schemas. Thats the easy bit right? Bung a few fields in, mandatory or not? multi-value? Configure the RTF fields a bit and off we go… on to the tricky parts: templates, integrations with 3rd party systems, automation etc. etc.

Making a schema is so simple that it is easy to forget how complex good schema design is. In this article I hope to bring a reminder to implementors of all levels of ability just what makes good schema design. 

Continue reading

How to say goodbye to your migration tool

The question is simple: “How to say goodbye to your migration tool?”, the answer could be diverse. Dump it in the trashcan, store it in a safe, pay its bill, but my favorite one is: “with a handshake”. Now some of you might wonder what I’m rambling about, so let me explain myself.

To start of, many customers have asked me in the past to build them a content migration tool. Initially I always answered that question with another question: “Are you sure you need it and are you aware of its costs?”. Mostly the answer from them was: “Yes we see this as the best solution”, and so I started creating yet another migration tool. Being a developer I’ve always been intrigued by modular concepts and reusable tools, however that never seemed to work for the migration tools I, or my colleagues have build. They were always too specific for their task and could never really be reused in another project. Sure there are companies out there that offer migration services with automated tools, but even those need a little tweaking for every job, and the outcome is depending on the quality of its input.

A couple of months ago I started a new project (building the new sdl.com website), the customer (our marketing and communication department) was well willing to listen to my advice. When the topic of content migration came up, I advised against it of course. We were going to build a complete new website with a new content structure and a real BluePrint. None of the existing content would fit the new model, and building a migration tool would be very complex with a limited rate of success. As we all know, when you get low quality input (no matter how good of a developer you are) you can not build a tool that will give you high quality output. For a content migration tool this just means that you need to run and adjust the tool multiple times during the project, and in the end you still have to manually correct some (if not all) of the content. So we started without migration plans, all content needed to be rewritten, and before launch we would have a content creation phase.

It wasn’t long when the topic of our blogs came up, and then the press releases, etc. etc. and of course you can guess, they asked for a migration tool again. This content didn’t need to be rewritten, the content editors didn’t have time to manually copy all the archived press releases. It was time for me to come up with a plan for some content migration after all.

Now that we are nearing the end of our project, I can tell you that the content migration was painless. Before the content creation phase is even finished, we could already say goodbye to our “migration tool”. So how did I say goodbye? With a handshake of course… (by the way, her name was Anouk and she had blond hair). Okay I can’t say I build this “tool” (that was done by her mother and father 21 years ago ;o), but she was the best migration tool I had ever worked with. No matter how low the quality of input was, the output was always of high quality. Spelling mistakes were corrected during migration and links were checked for their existence and relevance. It was a pleasure to check her work, and when she was done early she came asking for more work all by herself.

From experience I can now tell you, there is no better way to migrate content than to do it manually. When you hire so called cheap labor (college students, etc.) it will cost you less and give you a higher rate of success. Plus, who wouldn’t prefer a blond 21 year old sitting across from you, over an old crappy computer which is blowing dust and burning cpu cycles?

Why we don’t use SDL Tridion Workflow

The SDL Tridion MVPs were chatting on Skype last week, and the subject of workflow came up. One MVP told us he was working on a particularly interesting workflow challenge, and another shared the fantastic one-liner “Rule #1 for SDL Tridion Workflow: Don’t do it”.

Now based on my last post “Welcome back SDL Tridion Workflow” I thought it would be interesting to take a look at why so few clients implement SDL Tridion’s workflow solution for managing their content. After all, I bet 9 out of 10 clients list workflow as a feature in RFIs when making their WCM selection shortlists. Continue reading

SiteEdit 2012 Overview

I have been very fortunate this week to have had the opportunity to attend the Site Edit 2012 bootcamp at SDL’s offices in NYC. It was a hands-on 2 day workshop where each of us was given an Amazon instance with Tridion and SiteEdit installed. Our goal was to get our hands dirty and solve a wide variety of challenges (including going through the install). Thank you Nuno for making it a great success!

Site Edit 2012, now officially renamed to “SDL Tridion User Interface 2012″, is a very impressive tool. It seems to load into editing mode much faster than its predecessor (at least on the Amazon instance I was playing with), and usability and options available from the toolbar are incredible.  The user experience that can be achieved is mind-blasting!

Here are some rough notes that I took on the new features.  I realize you, the reader, may not have the full context around some of the notes – nevertheless, I think these should  generate some excitement:

  • SiteEdit is now called Tridion UI 2012
  • Not yet ready to go, but if a customer is ready to use it, then they need to talk to SDL on a case-by-case basis.
  • Controlled release. Only a few customers going to implement.
  • The pages are now previewed in an iFrame within the CM interface
  • “Update Preview” 
    • Doesn’t publish in session. Renders the result in the CM and pushes it via web service call.
    • Avoids the publishing queue bottlenecks.
    • i.e. Re-rendering is done “on the fly” rather than the queue
  • “Finish Editing” button commits and publishes
  • In SiteEdit there are no more page templates. They are now called Page Types, which are like a pre-configured page with a template and other defaults. – hole notha level!
  • Functionality is provided to allow previewing the Page Type (just a url to a simple preview page)
  • A page template, associated to a page type can have a custom icon in the ribbon toolbar. This is a great feature to give content editors a better experience
  • Content Types are component templates linked to a page template
  • In Publication settings where you define the Content Types you can specify which folder components get created in via SiteEdit.
    • Can also specify how content is named: user defined or auto-generated (based on a pattern).
  • One ribbon in the toolbar shows all the page templates. Functionality exists allowing to change icons for each template.
  • Ambient Data Framework allows to virtually specify a different environment, e.g. Show how something would display in IE, even though you’re using Chrome; or chane the OS type, etc.
  • Can set blueprint context for pages (e.g. New pages are created and edited in Pub A while content is created/edited in Pub B).

There is another interesting feature called Session Footprint that is designed to help with previewing and testing your page as if the session was created under different environments and conditions.  You can select to show the page as if it ran in a different browser and a different OS, change the session timeout values, pull up specific dynamic component presentations based on search criteria and more.  The Footprint is engineered based on SDL’s Ambient Data Framework, and the whole thing is quite remarkable.

Another cool concept that is provided is called Regions.

  • Allow specifying limits on what kind of component presentations can be dropped in.  For example: only allow dropping components based on a given schema or a component template, or limit the number of components that can be added to a region.
  • This is done by addingsyntax in the design template, just like the regions for SmartTarget.

Last but not least, I’d like to share a very high-level technical architecture of this tool.

Site Edit Architecture

To conclude I’d like to say that the R&D folks have done an outstanding job with this tool and I can’t wait to start developing with this new product!

SDL Tridion UI extension revisited, how to use the Ribbon Item Group

In this article, Yoav Niran explained the basics of a SDL Tridion UI extension, like how to create a button in the Ribbon Toolbar. Now I will revisit that topic and explain you about the use of the Ribbon Item Group.

If you take a look at the SDL Tridion Ribbon Toolbar you see it is possible to have large and small buttons and you can group them. When you minimize the toolbar, all buttons will appear as small and sit next to each other. But on the regular (or large) sized ribbon toolbar, the small buttons can be fitted under each other, this way you can fit 3 buttons in the space of 2 large ones.

SDL Tridion 2011 Ribbon Toolbar

Now defining a button in the Ribbon toolbar is relatively easy once you get the hang of it, making it a small button is just specifying the following element inside your extension element in the configuration:

<ext:issmallbutton>true</ext:issmallbutton>

But that was where I came across the tricky part, when I specified 2 small buttons in the Ribbon toolbar, they appeared next to each other instead of under each other. Apparently they needed to be grouped together somehow.

I tried adding the buttons in their own group by specifying a unique groupid, but that just separated them in their own group and they still appeared next to each other. So I checked with one of the developers and they explained me I should use a RibbonItemGroup. This allows you to group certain items inside a group. The RibbonItemGroup is not something you can define in the Configuration file of your UI extension, it is a Tridion User Control (.ascx) that you need to specify.

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ViewItemsGroup.ascx.cs" Inherits="SDL.Examples.UI.Controls.ViewItemsGroup" %>
<%@ Import Namespace="Tridion.Web.UI" %>
<c:RibbonItemsGroup runat="server" ID="RibbonItemsGroup">
  <c:RibbonButton runat="server" CommandName="ViewStaging" Title="View in Staging" Label="View In Staging" IsSmallButton="true" ID="ViewStagingBtn" />
  <c:RibbonButton runat="server" CommandName="ViewLive" Title="View in Live" Label="View in Live" IsSmallButton="true" ID="ViewLiveBtn" />
</c:RibbonItemsGroup>

The code behind file extends a Tridion.Web.UI.Controls.TridionUserControl and doesn’t need any specific code. To include it in the Ribbon toolbar, you specify the Ribbon Items Group as an extension using the following XML in your Configuration file:

<ext:extension assignid="ViewItemsGroup" groupid="EditGroup" name="View" pageid="HomePage" insertbefore="PublishGroup">
  <ext:group>~/Controls/ViewItemsGroup.ascx</ext:group>
  <ext:dependencies>
    <cfg:dependency>My.Theme</cfg:dependency>
    <cfg:dependency>My.Commands</cfg:dependency>
  </ext:dependencies>
  <ext:apply>
    <ext:view name="DashboardView">
      <ext:control id="DashboardToolbar" />
    </ext:view>
    <ext:view name="PageView">
      <ext:control id="ItemToolbar" />
    </ext:view>
  </ext:apply>
</ext:extension>

The only downside of this approach I could find was that I’m not able to use a RibbonItemGroup inside an already existing group, so I need to specify a complete group and add that as one. But it does however mean that I can create more complex layouts of my buttons and it leaves my Configuration file a lot cleaner.

An added benefit of this appearch of specifying your Ribbon Toolbar buttons is perhaps that you have a lot of examples available. Since the SDL Tridion 2011 Ribbon toolbar is itself also specified completely using these kind of user controls. Take a look at the .ascx files in your ..\Tridion\web\WebUI\Editors\CME\Controls directory on your CMS and you will see what I mean.