There have been quite a few posts on the topic of ‘Dynamic Placeholders’ (among the most useful of which are those of John Newcombe, Nick Wesselman and Dave Leigh).  If you haven’t come across this topic, then I’d suggest checking out Nick Wesselman’s blog post for a pretty succinct explanation of it.  It boils down to the limitation that you cannot place multiple sublayouts containing a placeholder onto a page in such a way that the placeholders resolve to having the same fully qualified placeholder keys.  I really like John Newcombe’s approach, which is based on Nick Wesselman’s; and having spent quite a bit of time playing with it, I’d certainly suggest that anyone needing to solve this problem takes a look themselves.

I plan to tackle a slightly different problem in this post: that of dynamically creating a number of placeholders within a single sublayout (so dynamic placeholders instead of dynamic placeholder keys, although as we’ll see later, the two problems can be solved in a very similar manner).

Read the rest of this entry

, ,

I sometimes wonder how many people look at the various dependencies that come with Sitecore.  One has to be slightly careful around how these are licensed, especially with Telerik, but I think that there’s one which deserves a mention: NVelocity.  NVelocity was originally a .Net port of the Java-based Velocity templating engine.  Sadly the project itself is more-or-less dead as far as I can tell; having been overtaken by more modern engines like Razor, but I still use it now and then. I thought that I’d explain the basics for people who hadn’t heard of it until now.

Read the rest of this entry

, ,

A couple of years ago, I wrote a post on how to assign a Sitecore image media item to an image field using the Sitecore 5.3 API.  As it stands, I haven’t really had need to do this since, but I got asked about it the other day by someone at the office.  So, I thought I’d post a little update to the original article.

Read the rest of this entry

, ,

Unit testing is a very popular topic, and is a very good practice to adopt.  Unfortunately, as anyone who has worked with it will know, some common Sitecore classes (Sitecore.Data.Items.Item to name one) can’t be mocked with some popular mocking frameworks, and can’t be directly instantiated.  So, the logical solution (to me) is to let your unit tests access the Sitecore API and databases (some others abstract the detail away, but as the saying goes: “Who guards the guards?”).  There have been quite a few different blog articles written about this topic, and people have approached the problem differently. So I thought that I’d share my approach to writing unit tests for Sitecore solutions.

Read the rest of this entry

, , ,

Sitecore Patch Files

As anyone familiar with Sitecore’s guide of recommended practices, changing the <sitecore> section of the Web.config file directly is frowned upon.  Rather, developers should use things called Sitecore configuration include files, or patch files.  By default, these are stored in the /App_Config/Includes folder of the website.

There are plenty of blog articles about them on the internet, however there was one specific feature that seems to be relatively unknown: the set namespace.

Read the rest of this entry

, , , ,

Update: this post uses an older version of the Sitecore API. For an up-to-date solution, please see this updated article.

Recently I had to write something to allow users to upload their own content on a Sitecore site. Not an unusual, or especially difficult, piece of functionality but one thing that did give me a bit of trouble was associating uploaded images (in the media library) with the Sitecore item’s image field.

Read the rest of this entry

, , ,

Quick Update

So, I thought I’d ease into what will (hopefully) be another flurry of posting activity with a quick update on what’s been going on here recently.  If you’ve read through earlier posts on this blog then you may well know that I started working at bit10 in September 2007.  I’ve had a fantastic time working at bit10; I’ve learned a great deal and met many people with whom I’m hoping to keep in contact.  However, as with all things, I think that it’s become time to move on.

Read the rest of this entry

, ,

Back on the ‘Net

After almost a month I’m finally back on the internet.  I’ve got a lot of catching up to do, I might finally get back to posting at some point soon.

Right now I’ve got a fair bit on my plate as I’m currently following up a couple of issues with my new place with the lettings agent which are dragging along somewhat, but not to the point where I want to go into details on here at the moment.

House Move

In case anyone’s been wondering why I’ve been a bit quiet recently, it’s just because I’ve moved house and haven’t managed to get internet sorted at my new place yet.  Once I get myself back online, I should be able to resume normal posting.  When that’s going to be depends on the irritatingly recalcitrant BT.

Overactive Akismet

I’ve always really ignored the comment moderation queue, generally trusting Akismet to filter out the spam and only let real comments through.  I’ve actually been very pleased with it as it has stopped comment spam coming through, which was initially quite a nuisance.  This evening though (as I currently can’t get to sleep) I decided to have a look through the comments that Akismet has marked as spam.

Read the rest of this entry

I’ll admit straight up that I haven’t really used IE8.  I’ll also happily concede that IE8 is probably a good deal better at rendering standards-compliant things than IE6 and IE7.  I’m also happy that with the release of IE8, the death of IE6 is that little bit closer (something that will make any web developer happy, I believe).  I have to say, though, that I was highly disappointed by Microsoft when they released this article.  I feel it’s sad that whoever wrote the article felt that IE8 could not stand on its own merits and so had to do some, ah, creative spinning of the truth to promote it instead.

, , , ,

Sitecore v6.0

Yesterday I took my “upgrade” certification exam to upgrade my Sitecore 5.3 certification that I obtained last August to to the recently released version 6.0. Sitecore is a highly adaptable and extremely powerful CMS that bit10 chose as its CMS of choice.  After reviewing a fair number of competing offerings (including Amaxus and Ektron), we found Sitecore to be a superior offering.

Read the rest of this entry

, , , ,

Having just completed a relatively large project using the newly released ASP.Net MVC Framework, I thought this would be a good time to post my thoughts on the framework.  I have to say that the bulk of my experience with MVC framework comes from my time using Ruby on Rails, so many of my perceptions will be coloured by this.

Read the rest of this entry

, , , ,

After doing a bit of baking this weekend I came up with an – if I do say so myself – especially good batch of chocolate brownies.  I thought that I’d share the recipe on here because I know that not everyone who reads this blog is interested in the techie stuff… and they really are delicious.

Read the rest of this entry

, , , , ,

I’ve recently been working on a project using the ASP.Net MVC framework (more on that in a later post perhaps), where the TinyMCE editor was used as the rich text input method of choice. We hit a snag when it came to applying client-side validation through jQuery: jQuery was validating the textarea before TinyMCE was filling it in with the editor content.

Read the rest of this entry

, , , , ,