"Wouldn't it be great to easily move content up an SDL Tridion BluePrint?"Assuming you made something in the wrong publication on accident and the set up was perfect, then you could script or automate such a move. This might be "easy" since the dependency rules are known and fairly simple on their own, but are you aware of the four main considerations?
- Distance (and Direction)
First of all, who gets to make such moves? If this is a CMS admin task for you, then a script or even Content Porter is all you need.
If you want certain authors to be able to promote content, you'll want to confirm who will get this power and how much you will rely on the user's actual authorization (just like Content Porter) or if you'll impersonate an admin, which can lead to major changes without typical authorization checks.
2. Distance (and Direction)
The typical use cases for "moving something up" are either an accident or to share something popular across an organization. I've heard it called the, "ooh, we like that" requirement. Before considering a "BluePrint Promotion" extension, you have some simple ways to prevent both of these scenarios.
- Remove read as needed from certain child publications and/or for certain authors. You can't make a mistake if the system prevents it.
- Follow the practice of minimizing localization with a content-forward strategy and place content in a global publication. Use permissions to manage who gets to see what. This is how nearly every-system-that-is-not Tridion works.
- Naming conventions can help with either of the above. You might even localize certain folders as a hint to authors (giving them some context in the CME, but be careful with code that relies on paths).
If these aren't enough for you, then be sure to handle this series of questions.
- Will you only handle parent (local) items or will you do something for localized or shared (children) items?
- If so, how far up or down will you move? To the first localized item in the BluePrint tree or all the way to the top or bottom? Is "apply this localized item to this Publication" part of your tool?
- If so, what happens to localized items up or down the tree? Do you unlocalize everything or might you save a copy of the localized items to re-apply the changes?
If you fully build out a BluePrint Promoting tool (first join PowerTools then) you must handle dependencies. In essence you're creating a version of Content Porter but in the CME. Content Porter is challenging to some because of these dependencies (see my post on top-down Tridion development).
To move content up you need to have the right folder, schema, linked items. In terms of decisions, you also need to choose if these dependencies will automatically be created or if you'll recursively handle each of these scenarios.
Also, if a dependency is missing in a higher Publication, should a single item fail or the entire attempt?
After figuring out who decides, where items will move to, and how you want to handle dependencies, you'll want to confirm the impact to directories throughout the BluePrint.
Mainly, will your new item conflict with items above or below it? Luckily Tridion handles this out-of-the-box for new items by preventing such issues*, but if you want to give the hypthetical BluePrint promotion user options, you'll have to decide what your tool should do.
Note: out-of-the-box, Tridion doesn't check for potential naming conflicts based on history or localized items. The one-off, rather confusing scenario you may want to handle or ignore is same-named items with matching paths could be different items if you localize a child item then re-use its old name (thanks to Nick for pointing this out).
So a multi-purpose content promotion tool has several considerations but isn't impossible. Content Porter for example does all this logic already and it's both configurable and transactional (allowing rollbacks). So my advice would be to only consider such a tool if you have a specific use case or you're ready to build a friendlier version of Content Porter. Maybe submit the idea to R&D, though I'm sure they've heard the request before.
What CMS teams probably need are a set of tools to maintain a BluePrint. For example:
- "Copy Up"
- "Swap in Place"
- "Replace Component Presentation in Page"
- "Clone Page" (including making copies of the CPs on it, just like Page Types)
- "Show/Hide sets of publications" -- this is already available through Publication Type filters in the Content Manager Explorer
But take a practical look at this. If you really want cross-publication functionality, where it doesn't matter what or where you link items to, then maybe you don't need that many publications or levels of publications.
If it's okay to share items and you know that some future content, template, widget, or whatever might be popular, then start by making it easy to share but hidden for everyone else. Then sharing is a matter of copying and pasting between folders, rather than handling the 4D's of BluePrinting Promotions.
Read more about SDL Tridion BluePrinting:
- Rather than promoting up, I flipped the scenario around and came up with a way to have a parent act as a long-running development track
- Forget parents and children, think of layers and BluePrints
- Make your own BluePrinting fridge-magnet kit
- A basic approach to making a Tridion BluePrint
- A sometimes missed tool to see how an item is used in a BluePrint (and it's not Where Used)
- Where to place keywords in a BluePrint
- Who I've looked to for BluePrinting guidance
Any other gotchas or recommendations? Are you doing BluePrinting Promotions?