DXA’s Golden Image Rule

DXA is a reference Tridion implementation that contains tons of pre-configured rules and automated features.  These features reduce the time to market for simple Tridion-backed websites.   However, there are a few “features” in DXA which are not defined in the documentation and may not be desirable for all sites.  One of these “features” is the fact that DXA will crop any image rendered in an RTF to the Golden Ratio of 1.62.

Some of you might have completed DXA implementations without even realizing that DXA does this, and indeed it took us months before anyone noticed that DXA forces a width/height ratio on images in RTF fields.  We recently attempted to render a tall image only to find that most of the image was cropped away.  We assumed it was a bug that we had introduced somehow but after some digging we found out that this is the desired default DXA behavior (as explained here by Will Price) https://tridion.stackexchange.com/questions/13643/applying-advanced-styles-to-embedded-rtf-images-in-dxa.  All images imbedded into RTF fields are automatically cropped to a ratio of 1.62 (the golden ratio) despite any attributes you give them in the RTF editor.  This was undesirable for our implementation so we decided to fix it.

Luckily, the fix is easy.  To fix this you will have to locate the BaseMediaHelper class within the DXA framework source code.Untitled2

After that, you will need to create a new project with a CustomizedBaseMediaHelper class.  You can then copy all of the guts for this class from the default DXA one but you will need to make one change: the DefaultMediaAspect variable should be set to 0 instead of 1.62.


Once you compile the new CustomBaseMediaHelper class and place your new DLL in the bin of your DXA webapp, you just have to point the app to it.

To have the app use your new CustomBaseMediaHelper class you will need to update the following in your Unity.config file:

  1. A reference to your new assembly and namespace needs to be added at the top of the config file.
  2. The <type> element with the attribute type=”IMediaHelper” should be changed to point to the name of your new class instead of the old one.

You may need to refresh your application pool to see the change take effect.  Once all of that is done, your images will be free to fill any dimensions that they please.

Using and debugging DXA (Java) with Web 8.5 on Amazon

So I finally got around to having enough time to set up a Java-based DXA connecting to a Content Service in the Amazon cloud.

It was a fun adventure, to say the least, and most of it is due to my rustiness in Java. I have tried with both Eclipse and IntelliJ Idea, and definitely IntelliJ made it a lot simpler by detecting project dependencies and installing them for me – which actually made it harder to get Eclipse to work, as I hadn’t noticed what it had done.

Anyway – below are the steps I followed to get a local instance of DXA running within Eclipse. As with the .NET install, you need to make sure you have a proper firewall configuration allowing communication between your machine and the CIS, as well as having the right mappings set in Topology Manager (I used the default of “localhost:8080″ for this). I will not cover those steps in this post.

Continue reading

What the RTF!


I know time’s precious so let me give you the summary – read on for the rationalisation!

An RTF field is exactly that – a Rich Text Field – it was never intended to facilitate how the combination of text and images are presented across multiple views in different devices; that is what we use CSS, HTML, JS and-the-like for.

Control’s important and should be in the hands of the people with the tool for the job. Tridion is an excellent content management system and affords editors with a multitude of tools to manage content across hundreds (if not thousands) of publications.

Continue reading

How Big Can CMS Infrastructure Get?

How big can a production CMS server get?

The short answer is as big as your blank check allows.


As you add users, workflow, translation, heavy publishing, and lots of opening/changing components, the CMS server size will inevitably increase.

Often times, multiple CM services are all enabled on one large machine for the enterprise, but the downsides of that are when one problem happens, all aspects of your CMS fail with it. Below I show what an infrastructure looks like that handles very large publishing loads and is scalable to add more load. The CMS also handles workflow services and translation integration with World Server.

Continue reading

Improve the Publishing “Experience”

booksSo, you’ve got a release going on and some 20 people are publishing. A few of the editors only have a page or two to publish but some of them then select to publish the whole site and a few have published only whole Structure Groups!

How many of these publish by Structure Group! And, I ask, Why?

Why do it in the first place?

The first answer I hear a lot is

I don’t know exactly what to publish


Continue reading

Use GUI Extension to Solve for Content Re-Ordering

GUI Extension: Components Re-Ordering Dialog

  • SDL Best Practices recommend not localizing pages.
  • We originally used Container Components so that Editors can re-order components without needing page localization.
    • The use of Container Components introduced other issues as explained in this blog about Container Components.
    • The solution outlined below does not rely on containers.
  • SDL can store additional data on each component using Application Data. Application Data is applied to items across the blueprint and don’t require items localization.

Continue reading

Problems with Container Based Content Model

Containers are a common approach when designing CMS content models. They allow Authors and Content Editors to organize content hierarchically. While containers allow contributors to group, reorder, and organize content easily, they also add a lot of dependencies to the content across the system.

Continue reading

All I want for Christmas is an SDL Web 8 Developer Course (DXA)

Earlier in December, I had the opportunity to travel to Boston for the two-day SDL Web 8 System Administration Course in Wakefield, MA. It’s an excellent course, especially for those transitioning from Tridion 2013 to Web 8 and for people like myself who are traditionally weak in the area of sysadmin. I would highly recommend it.

Continue reading