WordPress comment thank you plugin

I really wanted to thank people for commenting on a post. After some searching I found the perfect and very easy to use WordPress comment thank you plugin: Comment Redirect.  The plugin is written by the same gentleman that writes the WordPress SEO plugin Joost de Valk. that I love.  Joost seems to have a knack for creating powerful yet easy-to-use WordPress plugins that make websites better.  Basically, what the plug-in does is take a user to any page you configure after the user submits a plug-in.  In my case, I made a thank-you page that users will see after submitting a comment.

Installing the plug-in

Installing the plug-in was easy; I simply went to the “Plugins | Add New” menu item:

Adding-a-plugin-1

Then typed in the name of the plug-in:  “Comment Redirect”:

Wordpress searching and installing a plugin by name

Then followed the prompts to install and activate the plug-in.

Configuring the WordPress comment thank you plugin

The settings are under the plug-in menu, which you can see here:

Configuring the WordPress comment thank you pluginThe settings page is pretty simple, and allows you to choose a redirect page using a drop-down.

So then I wrote a thank-you page, and choose that page from the Comment Redirect setting page.

Tweaking the thank-you page

The only trick was that I didn’t want comments on the comment thank you page!  So on the “Pages | All Pages” screen in WordPress I hovered over the thank-you page, and then clicked on “Quick edit”.  Then I turned OFF “Allow Comments”:

Wordpress Turning off comments for a pageNow when people post to my blog, the WordPress comment thank you plugin automatically takes users to a special thank-you page.  I really enjoy getting comments (even negative ones) because it’s feedback for the hard work of writing a post, and a reminder that people are actually reading (and sometimes appreciating) my content.  So thanking them makes sense!

I hope that helps!

Robert

Choosing a great website creation tool – found!

So in my search for a great small-business website creation tool I had tried Drupal, and then tried a whole host of .NET content management systems.  None of these allowed me the freedom to easily create a small business website.  However during this process I had learned something very important:  my original goals were incomplete.  They were too focused on functional requirements, without any consideration for non-functional requirements.

The new non-functional requirements I had discovered were:

  1. Open source: or at the very least a product with no content amount restrictions.
  2. Great support: When something isn’t working and I need help it should be quick and easy to find.
  3. Flexible and extensible: my needs for the website are frequently changing, so the selected website creation tool should have enough extensions that this is easy to do.

So once again I started searching for a great content management system, but this time I tried searching with Google Trends.

Using Google trends to find a small-business website creation tool

My first search was still on .NET content management systems (CMS):

Google Trends - .NET CMS comparison

Which was very interesting: DotNetNuke’s popularity is clearly waning, while Umbraco’s popularity was increasing.  This was more reason not to use DotNetNuke, and I had already ruled out Umbraco for other reasons. Then I compared basically all of the major .NET CMS website creation tools against the popular open-source PHP-based website creation tool WordPress:

Google Trends: WordPress vs .NET CMS tools

WOW! WordPress makes the .NET CMS tools look like they’re flat-lining at zero!  Additionally, WordPress just keeps getting more popular!  And unlike Umbraco, the core WordPress community seems to really think really hard before they add features to the core.

So now I was curious; how did WordPress as a small-business website creation tool compare to other open-source PHP based CMS tools?

Google Trends: PHP CMS tools

It seems clear that WordPress rules the open-source content management world, and just dominates any kind of .NET CMS tool.  Interestingly, WordPress overtook Joomla around 2009-2010, around when WordPress 3.0 introduced custom-post-types, allowing content authors to create their own content types (much like Drupal’s CCK).  This is an incredibly important feature I’ll blog about soon because with the right plug-ins custom post types allow WordPress to separate content from presentation.

Choosing WordPress

So the masses of internet denizens obviously really like using WordPress.  These graphs also mean that WordPress will almost certainly meet my functional and non-functional requirements.

Non-functional requirements

First, let’s examine my newly discovered non-functional requirements for a website creation tool:

  1. Open source
    Obviously WordPress is open-source and free and I can store as much content as I want.  It runs on MySQL (or Maria DB – more on that later) which should be able to easily handle the amount of content I could ever hope to generate.
  2. Great support
    As the graphs above demonstrate, WordPress clearly dominates the Google search results, so it should be easy to find help.  In using WordPress for the last few months any time I have had a problem or issue with WordPress somebody else has already solved it and written about it on the internet.  This means that I can solve most website problems within 10 minutes.  Amazing.  This was just not the case with the .NET CMS tools.
  3. Flexible and extensible
    I have found that WordPress has thousands of plug-ins that can do anything you need.  I have yet to search for some extensible behaviour and not find ten plug-ins offering the required functionality.  So far this has meant I can easily customize my websites in any way I want.  And the plug-ins are almost always free.
    With the .NET tools if it didn’t come with the CMS it was unlikely to exist.  The one exception was DotNetNuke, where most plug-ins were expensive, and/or seemed to be very poor quality (probably why its Google Trends graph has been decreasing for so long).

Functional requirements

Here is my original list of functional requirements for a website creation tool:

  1. Quickly and easily choose a skin/theme so the site looks good
  2. Easily edit my content!
  3. Host video tutorials
  4. Provide a help forum
  5. Provide social-sharing buttons
  6. Provide an easy way to download my application, perhaps after the visitor provides an e-mail address
  7. Have good Search Engine Optimication (SEO) to help people find my website
  8. Possibly provide a way to offer an e-mail newsletter
  9. Have a Contact-us form (pretty basic stuff)
  10. Provide version-control for my content, for when I mess something up
  11. Provide the ability to easily use tabbed content, etc.
  12. Integrate with CloudFlare
  13. And of course, provide a level of website security so my business website isn’t hacked!

With the right set of plug-ins WordPress satisfies all of these requirements, and proves that it is a great website creation tool.  Of course, it has taken me several months of searching, comparing and trying different plug-ins, but I now have a wonderful set of plug-ins that allow me to easily craft web pages, separate content from presentation, implement security, etc.  I’m going to write about the plug-ins I found, but the next post will be a quick introduction to WordPress compared to some of the other CMS tools I’ve used.

Finally, while WordPress is the most amazing CMS system I’ve used (short of big enterprise solutions) it’s still not perfect, so I’m also going to write about the shortcomings that I still haven’t solved yet.

Conclusion

Over the last two months I have had more success with WordPress than I have had with any other website creation tool in the last two years.  I created a photography website for my sister-in law in an afternoon.  I created a very secure small business website in a week – and most of that time was researching and writing content.  I’m now working on another small business website with a completely different look and things are going very well.

WordPress is a powerful, easy-to-use and easy-to-extend website creation tool and content management system, and I couldn’t be happier that my search for a good website building tool has ended.

Robert

.NET CMS website construction tools; how I tried them all

After months of trying and then finally giving up on Drupal, I decided that I should stick with a .NET CMS (content management system) for building my website.  This turned out to be a bad decision, but at the time it made sense: I write applications with C# and .NET, I was using ASP.NET and MVC at work, and .NET is fast, powerful, well documented etc.  So I restricted my search for a website building tool to just .NET content management systems.

Dot Net Nuke

I believe that the biggest .NET CMS is Dot Net Nuke, so I started there first.  It has a free and open-source base edition, and then three paid editions:

  • Professional Edition – $2,998/yr
  • Enterprise Edition – $5,499/yr
  • Enterprise Package – Call

Unfortunately, their edition comparison no longer compares against the open-source version, but at the time it was clear that a lot of the functionality I wanted was in the Professional edition.  However, at $3000 A YEAR it had better be an absolutely amazing .NET CMS!

[pullquote align=”right”]I don’t want to rely an a tool where the core team repeatedly admits that they can’t write decent code.[/pullquote]

Unfortunately, my research suggested it was not.  There are plenty of people complaining about pretty major bugs (even security bugs) left unfixed for years, that it’s slow, it produces poor quality HTML and that developing plug-ins for it is very difficult. and many more.  I know that Dot Net Nuke has a strong following, but then so do Justin Bieber, Lady Gaga, and Scientology. For $3000 I want something amazing where Google mostly reports goodness rather than complaints and work-arounds.

Other .NET CMS website tools

I spent a fair bit of time looking at other .NET CMS tools:

  • Orchard – Seems like a nice .NET CMS, although the community is a little too small for my tastes.  I was concerned about the lack of plug-ins, themes, etc.  It seems well written if you’re looking for a framework for developing a website, but this seems to me to be the baby of the .NET CMS family.
  • Composite C1 – This is a very nice .NET CMS with lots of plug-ins available out of the box, but I just couldn’t get it working – even with their support.  I would download it, install it into a clean VM and it would work, but it was incredibly slow and any configuration I did would break it.
  • Umbraco – I originally had high hopes for Umbraco, it seems like a good looking .NET CMS which seems to provide a lot of power.  But there were two major problems:
    1. It uses XSLT – an absolutely horrible thing (programming in XML sucks).  I understand that it can be largely avoided, but I was still concerned that some required customization would mean using XSLT (which I used and taught for years, which is why I can’t stand it)
    2. Their version 4 code base is so bad, they decide to throw it out and start again, making v5 from scratch, which takes over a year.  Then, only a few months after v5 is out they realize that their brand new v5 code base is so bad, they throw it out and go back to v4.  They charged a bunch of people for v5 training, really hyped up v5, and then threw it out. Too slow, badly written.  No thanks; I don’t want to rely an a .NET CMS tool where the core team can’t seem to write decent code.
  • Sitefinity – Sitefinity looked like a really promising .NET CMS.  I tried it out for a while before I actually bought the small-business version (which at the time only cost $500).  However, I found that there were basically only 30 templates/skins to choose from, and customizing the skins was much harder than I expected.  Similarly, the complexity in building my first-plugin was very high – even though the plug-in logic itself was trivial.  Finally, there was the ever-present threat of writing too much content!  I need a content management system to write content, but with Sitefinity if I wrote too much content then I would need to upgrade to a more expensive license (something like $2000).  So I would be punished for being successful!  I finally dropped it – $500 I’ll never get back.
  • mojoPortal – This is an amazing .NET based CMS. It seems to be written by just one guy: Joe Audette.  Joe has done an amazing job, and mojoPortal just seems to work!  It had forums built-in, and the documentation is excellent.  I built my simple plug-in in a day, and had my entire website up and running in no time.  Here is http://ExperimentorSoftware.com‘s website built with mojoPortal:

Experimentor Software running on mojoPortal .NET CMS

So I’ve used mojoPortal for a while now to host my Experimentor Software small business.  However, as easy as mojoPortal was to get up and running I want more.  Updating the software isn’t easy, I would like to have more advanced search engine optimization.  I’d like access to more plug-ins, and mojoPortal doesn’t allow me to separate content from presentation.  So once again I started my search to find a powerful content management tool, and this time I didn’t care if it was a .NET CMS – I wanted to consider everything and anything.

What I’ve found is absolutely fantastic, and does everything I could ever want.

The answer in the next post.

Finding the best website building tool – it’s not Drupal

Part 1: Finding the best website building tool – my list of needs

Trying to use Drupal to build a small business website

The Drupal logo is cute, but using Drupal to build websites isn't.
The Drupal logo is cute, but using Drupal to build websites isn’t.

My initial investigation of website building tools (content management systems) led me to Drupal.  Drupal is wonderfully powerful, and has the Content Construction Kit.  This was one of the most used Drupal plug-ins until Drual 7, when most of the functionality was pulled directly into the core Drupal.  This functionality allows you to immediately (and pretty easily) define types of content, and then create content.  So you can define a “Video Tutorial” content type, and then start entering all the content for each tutorial.

However, skinning that content so that it looks good involves dropping into PHP and writing individual PHP template files following a specific file-naming convention and using the Drupal API to actually display the fields.  After learning how to do this and trying it for a few content types it felt like I was back to programming my website from scratch.  Even just making the home-page of the website look like a normal small-business home-page (and not a blog) required tweaking PHP files.

Additionally, I found that the Drupal plug-ins often weren’t as polished as would have been nice – a plug-in might provide great functionality, but it was more-often-than-not just a building block for your Drupal programming toolbox.

I was reading-up on advanced CSS techniques and the latest HTML tags while my business and software stagnated.  So I decided to move on, which was a surprisingly difficult decision because I’d invested about six months of evenings and weekends trying to get Drupal to work.  But in the end, it just wasn’t productive.  I know there are people and website consultancy firms that can work magic with it, but my goal wasn’t to become a Drupal expert – my (I thought simple) goal was to quickly build a small-business website.  Drupal had to go.

Next: Trying .NET CMS tools.

 

Finding the best website building tool – my list of needs

For the last three years I’ve been looking for a really elegant website building tool, and figured that a content management system (CMS) was the best approach.  However there are hundreds of CMSes out there, and I didn’t know which to use.  It’s been a long journey, and I’ve wasted a lot of time investigated many options before settling on one and really learning it – and I couldn’t be happier!

Defining my needs for a website building tool

[pullquote align=”right”]I wanted to define types of content, and then style that type of content to look a particular way[/pullquote]

As a programmer, I could have built a website from scratch, using ASP.NET/MVC/C# or whatever, but the website wasn’t my focus.  My business is the focus, and while the website is certainly important, one very important thing I’ve learned about writing software is that things often take a lot longer than you expect!  There are an unending stream of bugs, and then there’s more bugs, and solving bugs creates more bugs, etc (all of which is why I am a huge fan of unit testing). Anyway, I didn’t want to program my business website myself – I wanted to focus on programming my application and running the business.

Additionally, I’m not a graphics designer.  I study software usability, so I know what is usable for clients and end-users (or how to test it), but I can’t choose a nice set of colours or work magic with Photoshop without spending inordinate amounts of time re-reading online Photoshop walk-throughs.  So the choosen website building tool needed to have lots of themes/skins available on the internet.  This is for my business so I don’t mind spending money, but the more that the website building tool had available to choose from, the better.

Finding a website building tool is a two-steps-forward-one-step-back process
Choosing a website building tool or web-based CMS is an exercise in two steps forward one step back.

So I wanted a website building tool that allowed me to:

  1. Quickly and easily choose a skin/theme so the site looks good
  2. Easily edit my content!
  3. Host video tutorials
  4. Provide a help forum
  5. Provide social-sharing buttons
  6. Provide an easy way to download my application, perhaps after the visitor provides an e-mail address
  7. Have good Search Engine Optimication (SEO) to help people find my websit
  8. Possibly provide a way to offer an e-mail newsletter
  9. Have a Contact-us form (pretty basic stuff)
  10. Provide version-control for my content, for when I mess something up
  11. Provide the ability to easily use tabbed content, etc.
  12. Integrate with CloudFlare
  13. And of course, provide a level of website security so my business website isn’t hacked!

“Advanced” website building capabilities

Finally, I really wanted to separate content from presentation.  I wanted to define types of content, and then style that type of content to look a particular way.  Just like in programming where we separate code and presentation, I wanted my website building tool (likely to be a content-management system) to separate the actual textual or video content from how the content is displayed.  I wanted to be able to easily edit the content – say a collection of help videos – and then make them look good.  Later, if I want to change the look of the videos, it shouldn’t involve editing every video entry and manually trying to make sure the HTML markup is all the same.  This separation of content from presentation proved to be very difficult to find, but I did find it.

Part 2 – It’s not Drupal