Tridion User Expectations for the HTML Design (and beer metaphors)

I'm wrapping up my most recent visit to the Amsterdam office. One of my colleagues had a prompt from a client on what to request from the creative agency in terms of the markup. Of course we had to compare notes.

We gathered our "best practices" but needed non-technical descriptions for the business user communicating their preferences to the creative design agency (if you really want the technical details take training and/or read this post by Frank M Taylor).

So let's look at some user stories for those using an in-context CMS editor:
"As a CMS user I need the ability to add content to and from the page. I should be able to add, re-order, or remove content in the in-context or form-based editing interfaces."
This translates into movable elements. Lists and “flat” markup are preferred where possible—especially on a page. This lets editors add, move, or remove in the Content Manager and Experience Manager.

You don't need markup to see which is easier to manage. Here's an example from our CMS Design Principles training: perhaps your presentation looked like a box of sorts:

A B C
D E F
G H I (that's the end of the training example, the rest is my metaphor)

Would you prefer a list that automatically displays in rows?

Extending Your SDL Community Reach with Some QueryString Parameters

The SDL Community site is up, but only 25 of my posts were displaying.

If you're on Blogger and want to see more of your posts, try:
/feeds/posts/default?alt=rss&max-results=999

Too add the missing 200 or so posts to the site I added a max limit parameters to my feed and then changed it to RSS. I Blogger through Feedburner, but you can use a different service.

464 is a lot of blog posts, but if that included my posts, it mean I've contributed half of the feed. Hmmm...

I've been using Feedburner, an (aging?) Google service that lets you automatically generate other formats including HTML, Atom, and RSS. Here you can see my Feedburner only showing posts back to 2014. I've been blogging about Tridion since 2011.




I updated Blogger to show more (and start after 2011). Blogger, by default has an Atom feed like:
http://www.createandbreak.net/feeds/posts/default

Bart Koopman explained there's also an RSS option, which the community site needs, with:
http://www.createandbreak.net/feeds/posts/default?alt=rss

I did more "research" (Googling) to find the parameters for start and max, along with the RSS option so it now looked like:
http://www.createandbreak.net/feeds/posts/default?alt=rss&max-results=999&published-min=2011-01-01T00:00:00

This was impossible to test until I disconnected the Feedburner setting (below) in Blogger.

I could confirm the blogger feed querystring parameters worked when I removed the Post Feed Redirect URL.

I then updated Feedburner's output RSS 1.0.


So to get your content indexed by the community site and you're hitting the 25 post limit in Blogger, you have two options:
  1. With Feedburner and your Post Feed Redirect URL, modify your feed and then set it to RSS 1.0:
    /feeds/posts/default?alt=rss&max-results=999
  2. Alternatively, turn off Feedburner and give a community manager (Bart Koopman) your manual feed URL instead.
As a side effect of troubleshooting this scenario, Bart was able to add other feeds to the community site (hence the burst of recent posts from StackExchange).

By the way, you can tell I was in the Netherlands for this post from the references I found on Blogger's feed parameters:

Note: I've read that Feedburner might be shutting down. See alternatives in this post, the main thing is that the SDL Community aggregator uses RSS and if you'd like to be added or even removed, leave a quick post.

If you want to bypass the feeds and be featured directly on SDL Community section for Tridion, please sign up. I've promoted and "sold" TridionWorld before and looking back at my contribution to the Tridion blogosphere, I still have some vested interest to promote the site and your content.

I think that includes my posts now give or take a few.


Assuming they're all in there, my 253 posts out of  694 means I've contributed 36% of the feed as of now (I'm not quite sure because 694 now - 464 before + 25 already-included = 255). With this additional post, maybe you can add your older posts as well.

Pick A Topic, Any Topic

I am trying to get the new SDL Community site (in the Tridion section) to recognize my past posts. I'll explain how to do the same for your posts after we get it sorted.

In the meantime, here's a side effect. Feedburner sent me an update on all of my posts since 2011 minus the past 25 blogger posts.

This is just text below, see my Feedburner Feed for summaries and links.
  • SDL Innovate: Web Content Management Workshop Recap -- Prototypes
  • SDL Innovate: Contextual Matters
  • SDL Connected Recap
  • SDL Connected: Post-Event Team-Building Experience Day 2
  • SDL Connected: Three Tridion Important Integration Questions
  • Let CRUD Guide your Tridion Integration
  • SDL Connected: Post-Event Team-Building Experience Day 1
  • CXM Pillars and Journeys Cheat Sheet
  • Quick and Dirty Way to Determine X and Y Coordinates
  • SDL Media Manager Bootcamps 2014
  • You Know You Travel A Lot When...
  • The Difference Between Tridion Designs and Tridion Settings
  • Breaking the CXM Ice at Knowledge Days
  • A Corporate Team Building Journey (Event Planning)
  • New to SDL Tridion?
  • Managing Robots META Tags with Tridion or any CMS*
  • What Does Contextual Image Delivery Mean for SDL Tridion Images?
  • Quick Navigation Tips on an SDL Tridion Environment and Asking Smart Questions
  • First Step in Designing Content Entry Forms
  • Brand Defending and Organic CXM
  • SDL Tridion Experience Manager via XBox Kinect for the Ultimate Experience
  • Testing Testing, 1, 2, 3, 45678...
  • Example SDL Tridion Sandbox Proposal
  • Are You Ready for a Contextual Web?
  • One SDL Document by Document
  • SDL Tridion Component Synchronizer is Dead. Long live ComponentSynchronizer!
  • Ask Yourself Why Three Times
  • Keeping Up with the SDL Tridion Community
  • Parking Lots, Bins, Tables, and WVTTK?
  • Carbon 2.0, Standards, and SDL Tridion Education Updates
  • MVP Chat Part 2
  • Congrats to the 2014 SDL Tridion Community MVPs!
  • Adding a Background Page in Visio
  • If perfect is the enemy of good, what does 100% mean?
  • SDL Tridion 2013 SP1 is Out
  • SDL Media Manager Bootcamp
  • The 4 D's of BluePrinting "Promotion"
  • Content Modeling Best Practices
  • How Many Users Can SDL Tridion Support?
  • A Must Read: Content Strategy for the Web
  • Content Strategists
  • The Best Parts of SDL Tridon Experience Manager are the Easiest
  • Making a Blog with SDL Tridion
  • On Tridion RTF Links and Empty Parents and a 99% Answer Rate on Tridion Stack Exchange
  • Deal with the Shadowy Figure
  • How Can I Pass the Tridion Certification Exams?
  • SDL Tridion Trainees Predict the Content Manager Explorer
  • Technical Questions in SDL Tridion Foundation and Workshops
  • Cancelling Booking Requests, A Story of Slightly Scary Usability
  • Feature-Driven CMS Development Part 3
  • Feature-Driven CMS Development Part 2
  • Feature-Driven CMS Development Part 1
  • Can SDL Tridion Poop?
  • Let's Play What Published That (aka SDL Tridion Link Propagation)?
  • SDL Tridion Humour Part 5
  • Contextually Aware Content Part 3
  • Contextually Aware Content Part 2
  • Contextually Aware Content Part 1
  • Awesome SDL Tridion MVP 2013 Summit
  • Sharing More by Caring Less (How to get over the fear of sharing)
  • Quick, Pick the most Important SDL Tridion Item!
  • More on XPM Regions: Difference between Insert and Drag-and-drop
  • Use These Automation Options Sparingly
  • Documenting Component Presentations
  • Shifting Requirements
  • CXM Requirement: Don't Be Creepy
  • Flaming Sword of Sharing (10% Chance to Proc)
  • The Sixth Tridion Environment
  • SDL Innovate: Enchanted by Tridion's Future and Tridion Re-Reimagined Today
  • Find Your Way With Tridion's BluePrint Viewer
  • Understanding TOM.NET Before Using TOM.NET
  • You're Too Close to Your Expertise
  • Places to Get Started with SDL Tridion GUI Extensions
  • Discover the Power of SDL Tridion 2013
  • Does your Tridion Item Metaphor Work?
  • Subscribe to Functional or Technical TRex Tags. Roar!
  • CM-Side Integrations Mocked Up
  • The "S's" of CM-Side Integration
  • Inline vs. In-Context Editing
  • Tame the Content Injection Monster
  • Guess the Tridion Blogger
  • Less is More? Just Enough is More.
  • New New Tridion Best Practices
  • How Do I Revert Back to a Previous SDL Tridion Item's Version?
  • Recognizable SDL Tridionauts: An Answerer, a Coder, a Community Builder, Mr P, and the Button Presser.
  • Dynamic Vs. Static Component Presentations Vs...
  • Fun with SDL Tridion Icons and Visio Stencils
  • Applying CMS Principles To Your CMS Designs
  • Experience Manager Content Types and Regions
  • TRex Logo Ideas
  • Don't Let a Format Dictate Your Content Model
  • Navigation for One Structure Group
  • Mind-Shifting Tridionauts
  • SDL Tridion and Alt Text. You're probably wrong, but still doing it right.
  • Where Do We Place SDL Tridion Keywords?
  • Tic Tac Tridion
  • Alvin.getUrlByTopic()
  • How Long Should it Take?
  • More Blogging Tips for the Tridion Professional
  • Welcome the New SDL Tridion Community MVPs!
  • SDL Tridion Humour Part 4
  • SDL Tridion and Web Analytics (aka How to Identify Unique Content Instances?)
  • Goodbye "click here"... again.
  • Making Config Components Disappear
  • WebDAV is Fast. Upload Multimedia is Faster.
  • Can't Paste from VMWare Player to Windows 7
  • Yet Another SDL Tridion Navigational Approach
  • SDL Tridion. Bottom-Up or Top-Down?
  • Why Page Types Are a Very Good Thing (TM)
  • The Vendor-Client Dance Partnership 
  • When Near-Duplicate SDL Tridion Schemas Makes Sense
  • Creating an SDL Tridion BluePrint 
  • Seven Quick SDL Tridion Experience Manager Tips
  • Quick Look Back at My First Year with SDL
  • Documenting SDL Tridion Folders the Lazy Way
  • Types of Tridionauts
  • Never Gonna Get an Answer
  • Can We Discover the "Best" Tridionauts?
  • Good User Design Hides "Mistakes"
  • Pousada De Palmela
  • Tridion Content Analysis: Part 5, The Answer
  • Tridion Content Analysis: Part 4, The Process
  • Tridion Content Analysis: Part 3, Inventory
  • Tridion Content Analysis: Part 2, Context
  • Tridion Content Analysis: Part 1, The Trivial Example
  • Scalable Schema Fields
  • tl;dr
  • How about Verbs instead of Nouns for Publication Names?
  • Amusing JSON Details
  • Not always an Extension
  • You're Not Really a Tridionaut Until You've...
  • SDL Tridion Parent Publication Permissions Simplification
  • IS vs IT
  • BluePrinting Naming Conventions. More Questions than Answers.
  • Tridion and Technical Debt
  • SDL Tridion CME Authorization
  • PowerTools 2011 Robot Pics
  • Blah blah community
  • Best Practices? Let's Talk Best Patterns.
  • How to Remember Tridion Dynamic Linking
  • Train and Untrained. Which are you?
  • We Didn't Start the Fire
  • SDL Tridion: I Wish I Knew Then...
  • Inspect Component XML With C#
  • SDL Tridion Lisp Mediator
  • BluePrinting Metaphor Re-imagined
  • Opportunity and Challenges for Third-Party SDL Tridion Tools
  • You Need the Best Design Tools Money Can't Buy
  • Aint Got No (SDL Tridion) Workflow... Blues?
  • What's Wrong With a Tridion Project Plan?
  • Who do you Trust?
  • SDL Innovate 2012. So Much Content!
  • SDL Tridion, The Most Interesting Man, and Chuck Norris
  • Step-By-Step Blogging Guide
  • Blog Recipe: Be Relevant While Sharing Experience, Passionately
  • Fascination with SDL WCMS and SDL Tridion
  • Seven Wins in Developing a Technical Community
  • SDL Tridion-related Online Information. A 30 Second Snapshot.
  • SDL Tridion Resource Dynamics
  • SDL Tridion Community on the Horizon
  • More SiteEdit Insight
  • SDL Tridion Content Delivery Tips, Tools, and Troubleshooting
  • Salsa and Stroopwafel
  • New Blog Page
  • SDL Tridion "Integration" in 30 Seconds
  • Simple Content Update Instructions
  • Combined Layout Template Building Block
  • Congrats New SDL Tridion MVPs
  • Quickly Start a Layout Template Building Block in SDL Tridion 2011
  • Inspect Component Details with an XSLT Component Template
  • 10 Extreme Schema Scenarios
  • Have your Content Authors Roleplay SDL Tridion Terms
  • SDL Tridion Custom Help
  • Favorite Parts of 2011 (it's not ALL Tridion)
  • SDL Tridion 2011 Favorites Feature
  • Dreamweaver Syntax with FieldPath
  • Blogging Tips for the Tridion Professional
  • Web Content Management Done Better
  • PowerTools Gotchas
  • The Seven Deadly Places... to Add Markup with SDL Tridion
  • Enterprise Software Rivals
  • SDL Tridion and Consulting Jokes
  • Who are your Organization's Superstars?
  • What's a Professional? What Dance Teachers and Consultants Have in Common.
  • Conspiracy Theory
  • SDL Tridion 2011 MVP Retreat
  • Nominate the Next SDL Tridion MVP
  • Happy Thanksgiving
  • Happy Hallowsgiving
  • Template Building Blocks via .NET Assembly
  • I'm New to This. Really.
  • When and When Not to use "SDL" When Talking about Tridion
  • How to Get Started with SDL Tridion
  • Matching Software Licensing to SDLC
  • On Software Costs
  • Alvin vs. October. Alvin wins!
  • Tridion 2011 Queries
  • Secondary Memory: "Didn't I ask that Before?"
  • The PowerTools Team's Power
  • Inspect Publication Details with an XSLT Component Template
  • Character Encodings with Tridion
  • Logo Fun with the Tridion PowerTools
  • Midas Rule of Open Source Projects
  • Tridion Schema Change
  • BlueBrinting Fridge Magnet Kit
  • Hating your Software?
  • Joining the SDL Tridion Community
  • Send-off to Fellow Graduates
  • Give More. Get More.
  • Key-Value Lookup Example (Tridion R5.3)
  • Lessons Learned from WFM
  • Tridion BluePrinting Use Case
  • Develop XSLT Templates in Three Steps
  • The New Tridion 2011 Criteria Objects
  • Waterfall Methodology and Agile Methodology? Both Wrong!
  • Technical Temptation to"Solve" Problems
  • UML Perspective
  • Multiple Modeling Methods
  • Tridion-Influenced Business Analysis
  • San Diego Code Camp 2011 is June 25-26 at UCSD
  • Analyze This!
  • Tridion Target Types
  • Tridion End-user Issues and Fixes
  • T-Shirt or Bumper Sticker?
  • Tridion Setup Considerations for End-User
  • SDL Tridion MVP Winner!
  • Crossroads
The lesson? Even with "SDL Tridion" (from mostly a functional perspetive) as my main topic, there was plenty to share these past few years. Pick a topic that you like of your own for your blog and the post topics will come.

There is Always a User

Recently I posted about approving SDL Tridion community winners. One of the points that came up was what counts as Tridion today?

Rise of the Connectors

SDL Tridion works with any system that has an API or at least an identifier for its items. A basic approach when integrating Tridion with "external" software is to store such identifiers in a Tridion field and add or "template" the surrounding markup or Web application tag or control to the rendered presentation.

<namespace:tagname id="identifier" /> or
<namespace:controlname id="identifier"
runat="server" />

This works for Analytics, references to external videos (YouTube, Vimeo, etc.), job postings, Linked-In profiles, and more

But when the quantity of external items makes this approach tedious and/or when there's software better-suited for certain tasks, it helps to have a more formal (seamless, automated, and preferably with an API) approach.

This is where SDL Tridion leverages its own framework and APIs to connect with systems such as targeting, managed translation, and media management. If familiar with SDL software, you might recognize specific products such as SDL Fredhopper, TMS, WorldServer, SDL Language Cloud, SDL Media Manager, and Campaigns. I've joked that if Publishing was built today, SDL might call it Distribution Manager.

The biggest catches for any such integration include:
  • Resolving
  • Authorization
  • DTAP (I won't write about it here, but keep in mind any integration should confirm its assumptions across CMS, not just delivery, environements)
SDL Tridion now ships with many of these (potential) features out of the box in the form of modules such as (Tridion) Outbound Email, Translation Manager, User Generated Content, and External Content Libraries. To be clear, these connectors are part of Tridion but may come with their own databases, APIs, and user or system accounts. You still need to configure and implement these to meet your project's needs.

SmartTarget is not Fredhopper, but rather the GUI elements, delployer features, and delivery-side code to make Fredhopper work with Content Manager Explorer and Content Delivery.

Translation Manager is not TMS, WorldServer, or Language Cloud. It's the piece that stores, displays, and moves translation jobs between the Content Manager and the translation system. It's managed translation because it tracks the progress of the jobs, automates the process back-and-forth, and lets users search and pick items for translation.

ECL or even the Media Manager Connector is not Media Manager, per se, but the integration between Tridion and Media Manager.

The term "orchestration" is more than (just) a marketing buzzword. It really does fit how SDL Tridion tries to plays nice and coordinate with different users and different systems in one interface (at least until there's a new term).

Even publishing is separate from CM or CD. The Content Manager Explorer interface uses the Core Service except item publish status, which is updated by the publisher.

Connectors Have Users

When I first read the Tridion documentation (back when it was PDF'd and in folders by phases) I didn't understand all the need for user accounts for various services.


The server-side user accounts included tcmsystem, tcmworkflow, tcmsearch, and more. I have since realized that the granularity is important to security (or at least those that care about security). For example the user for Content Managent search probably shouldn't do much more than index the search collection and deliver results.

Tridion's authorization model (as complicated as it seems--Dominic Cronin has pointed out it was built the way awhile back to accommodate certain legacy setups) follows some familiar conventions (groups, rights, and permissions), but it doesn't exactly match other systems. When connecting with Media Manager, Fredhopper, managed translation (TMS, WorldServer, or Language Cloud), or even when publishing or doing workflow, Tridion uses a particular user.

Though you might want finer control, I've seen a few things:
  • In many implementations I've seen, the customer will ask to elevate access to make a user be able to do things he or she normally can't. They want more access and an easier integration, rather than more authorization settings.
  • The roles allowed to "do" publishing, send translations, pick media, or configure targeting typically own or are trusted with the other system. These tend to be the web publisher, language expert, media owner, or marketer (or marketing SME) that pretty much have full access to the other system.
  • If most of my projects have authorization as one of the last things on the list (with good reason, it's hard to know what people will break or get stuck on without using it, also you need to set up sites before restricting what users can access), then finer-grained permissions for these connectors would be "phase 3" projects
The wife, a proposal writer familiar with sales and marketing software, even confirmed with, "Who cares about the types of permission being granted if the main part of the build isn't done?"

Thinking in terms of users explains other scenarios such as:
  • In terms of authorization this means users that can see the external items can typically use them, publish them, or send them for translation.
  • Rollback acts as the user and requires delete permissions, because a rollback could delete versions of items. The user matters.
  • Translation just needs scope on the targets, not sources. You can create a job for any items you can see and you can send a job with items you may not have access to.

Resolutions

Resolving is probably the hardest Tridion functional topic. Add it to your New Year resolutions if you haven't already. Each setup might have a different preference, but Tridion's resolving rules are designed to "make it work." Once you have such a default, you get disagreements with the assumptions. Though I don't always see people wonder why those defaults are there in the first place.

In publishing the basic idea is items that use!your item are republished.
  • Why? Because those other items might render your item.
  • Why not? A more static content model that explicitly places content on lots of pages means a single item queues lots of other items.

In linking the basic idea is that the link resolves to the closest component presentation.
  • Why? Content and pages can be separated and links will just work regardless of where content lives.
  • Why not? When content = pages = URLs, which is less of a reality today.
With translation, the owning item (nearest local or localized parent) is resolved except for items not-yet-translated. Duplicates are also removed so the translation job just includes the source items it needs for translators. Not yet translated means items under version 2.0.

  • Why? Reduce duplicate translations and avoid translating items not yet translated.
  • Why not? See below, but sometimes it's tempting to shortcut a BluePrint design and skip translation Publications. It's also hard to realize there's a difference for a given setup.

The (Can Only Translate) Version 2.0 Myth

I admit that I missed some of these resolving rules. I thought "link propagation" worked the other way around (it doesn't, that's because of our templates might publish linked items). Some might miss the proximity rules in dynamic linking. And for awhile there seemed to be a myth that you can only translate version 2.0 items or that workflow can't send minor versions.

The 2.0 only applies for localized items. Managed translation should have a BluePrint of source and target publications where managed translation "owns" (manages) the translations between sources on targets, which is the typical setup. 

So if you want multiple source publications, then you need matching target publication sets (times the number of languages), otherwise the "Version 2.0 myth" applies. Either way, make this easier by limiting sources, hiding Publications, or using the Publication filters.

Two Users

Users in Tridion that own a minor (temporary) change are the only ones that can see those changes or publish them. To get minor versions to translation in workflow, the translation and workflow users must match. My colleague Eric Huiza pointed this out to me, which helped inspire this post (thank the Huizard).

Update and implementation warning (March 4, 2015): matching identities will let you send translation, but be careful with new items, especially in a reserved state (which are forced to wait for Bundle workflow) since their child items cannot accept the translations until they are unlocked. One approach to avoid dealing with issues with receiving such translations is to automatically increment to a major version for new items.

Which brings us back to the point of this post--there is always a user. If you understand how users are related to authorization, versions, workflow, publishing, and any "new" Tridion connectors, then you've solved the second-most-important question: who.

The first important question is why, but as I've noted, we may not always agree or even consider with the why.

For more technical details on the user and system accounts for the modules and extensions mentioned, see this Tridion Stack Exchange Q&A on user accounts. I'd also love to hear your favorite (or worse) "gotchas" when it comes to authorization, users/user accounts, or extensions/connectors.