Folks that work with me know that I’m not a super-awesome programmer; I’m a front-end guy who dables with programs. I’m way more comfortable telling you what went wrong with your CSS in Internet Explorer 8 than what happened with your Razor template in Tridion 2011. Razor Mediator for Tridion is a blend of C# and .NET that just operates about two levels higher than where I am most of the time. As a result, I often spend time trying to figure out what information there is on a component and how to grab it. So a few weeks ago, I went from knowing that Razor could access TOM.NET to actually understanding it, and as a result I wrote a little debugging TBB to help other front-end guys looking to figure this thing out.
Not too long ago, I worked with Alex Klock on creating a Tridion GUI extension for a client. The GUI extension was for a document embedding service provided by Crocodoc1. Once I finished, I had to provide a training document for it. Soon after, the client wanted documentation on some other things. And then more things. Being one for
efficiency and optimization creative laziness, I found a way to make sure everyone gets the latest version of the same document. So I’d like to share a super nifty trick for embedding training documents into your Tridion implementation.
1 If you don’t know who Crocodoc is, you should rapidly become acquainted. Their API definitely is not one that sucks; it converts PDFs, PowerPoints, Excel documents, and Word documents into HTML (and soon to be HTML5) so that you can read the same document on any device with a screen, without nasty platform-based plugins.
I’m a child of the 80′s. Every Saturday morning, between Teenage Mutant Ninja Turtles, X-Men, and GI-Joe I’d catch at least two or three Public Service Announcements from NBC where they’d teach me about bullying or doing my homework, and end it with, “The More You Know.”
The last few Tridion 2011 projects I’ve had have used Categories and Keywords pretty extensively. The Keyword class is relatively simple, but quirky. After discovering another extremely odd quirk a few days ago when I was debugging something for a client, I had to explain the craziness of the issue in our next status call. After I explained the issue and a few folks’ mouths were agape and they were scratching their heads, it was one of those moments where you just have to quote NBC: “Yep. The more you know”.
In a current project, we have a website that’s in both French and English which we’re transferring into Tridion 2011, using Razor Mediator. This is not my first bilingual website, and it definitely isn’t my first Razor project, either. However, it’s the first time I’ve had both at the same time. So what I’d like to share is how to solve a specific problem where you have content that could be hard-coded in your Template Building Block (TBB), but can’t, because it needs to be translated.
Every CMS implementation is different, but you can generally categorize them into two major groups, regardless of the details: New site or Lift ‘n Shift. If you’re unfamiliar with the phrase “Lift and Shift”, it’s where we take an existing website, in its entirety, and move it into a CMS without modifying any front-end code. The untrained and uninitiated sometimes call this a ‘copy and paste’. This is a popular request from clients on for two reasons: they perceive it to be more cost-effective and they believe it should take less time (which sometimes still has a financial motive).
Unfortunately, the idea of moving an old website into a new CMS is a bit like buying a Porsche and then towing it with your Pinto. It’s more damaging to the bottom line, slower than you’d expect, and completely relieves you of the joy of using what you bought. So let’s talk about what the issues are that arise from a “Lift and Shift” exercise.
I’ve recently finished a big project with Tahzoo that runs on Tridion 2011 and uses Razor Mediator. There’s a growing number of Tridion Razor Mediator implementations out there, but this one was a tad different for a few reasons. For one, this project was heavily taxonomy-dependent. Navigation is generated with categories and keywords, and even certain landing pages depend on categories and keywords. So as I developed in the project, I discovered limitations in how version 1.3 accessed the keyword model. Well, Alex and I collaborated on some 1.3.1 methods for working with keyword properties that Razor won’t let you directly access.
So if you’re running Tridion 2011 and Razor Mediator 1.3 or earlier, this post is going to be relevant to you. These are all helper functions or simply public functions which you can use in your next project.
Working in Content Management System (CMS) implementations has its challenges. While some of those challenges are in the application itself, many can be with the content authors. Content authors expect a certain amount of flexibility in how they can add or remove content on a page and we have to find a way to account for these variables. While not all CMS’ can, or are, built to be that flexible, SDL Tridion (which Tahzoo specializes in) certainly is, so we (at Tahzoo) often have to be creative with how we can solve the unknown variables that a content author can create.
Today I’m giving a real world example of how I met business requirements for a section on a page template that needed to adapt to the content author’s choices — using only CSS! Read More
At Tahzoo, we pretty much shoot for HTML5 websites 100% of the time; the only time the project isn’t HTML5 is if the client explicitly says so. We have a current client whose HTML5 site also required some fun Ajax things like creating an interactive poll and even some email functionality. In order to really accomplish what we wanted, we realized it would be necessary to take advantage of some certain HTML5 features and even write a tiny jQuery plugin to help us out. So if you’re a Tridion developer, this post’s for you. Read More
Ogres and onions have layers…
And so do websites. Depending on who you’re talking to and how they’re slicing it, you’ll get different names that essentially represent the same thing: content, design, and functionality. While the end user looks at a site and sees seamless pages linking to one another, the content authors, designers, and developers see the website as a collection of layers that interact with each other. As content strategies become more complex, we see content being sliced into more distinct layers for content management systems while the design gets treated as a flat, layer-less component of the site.