{"id":522,"date":"2009-06-02T09:32:19","date_gmt":"2009-06-02T15:32:19","guid":{"rendered":"http:\/\/www.mooreds.com\/wordpress\/archives\/000522"},"modified":"2009-08-17T20:30:05","modified_gmt":"2009-08-18T02:30:05","slug":"the-drupal-experience","status":"publish","type":"post","link":"https:\/\/www.mooreds.com\/wordpress\/archives\/522","title":{"rendered":"The Drupal Experience"},"content":{"rendered":"<p>AKA, my time with the <a href=\"http:\/\/images.google.com\/images?hl=en&#038;q=drupal+icon&#038;um=1&#038;ie=UTF-8&#038;ei=jEMlStC1K57aswPl0umcBg&#038;sa=X&#038;oi=image_result_group&#038;resnum=4&#038;ct=title\">blue droplet<\/a>.\u00a0 I recently built a website for a client.\u00a0 I initially recommended wordpress, <a href=\"\/wordpress\/archives\/000508\">as I often do<\/a> but the client suggested the website would grow into an application.\u00a0 You can certainly do webapps with wordpress, but it seemed worthwhile to look at alternatives.\u00a0 Drupal 6 seemed to fit the bill:<\/p>\n<ul>\n<li>flexible<\/li>\n<li>lots of documentation (<a href=\"\/wordpress\/archives\/000188\">always important in any evaluation<\/a>)<\/li>\n<li>great community<\/li>\n<li>tons of additional functionality (called plugins)<\/li>\n<li>customizable UI<\/li>\n<li>multiple languages supported<\/li>\n<\/ul>\n<p>So, the site is launching soon and I thought I&#8217;d jot down my thoughts.\u00a0 Keep in mind that I&#8217;m very much a drupal newbie.<\/p>\n<p><strong>The good:<\/strong><\/p>\n<ul>\n<li>I was astonished at the plethora of modules.\u00a0 In fact, just about everything we needed to do functionally was done; it was a matter of getting the right modules installed and configured.\u00a0 I don&#8217;t think I wrote a single line of code, though I did do plenty of code reading.<\/li>\n<li>The look and feel were very customizable.\u00a0 I ended up using a large number of blocks (isolated chunks of content that you can control and place).\u00a0 The &#8216;clean&#8217; theme was pretty easy to customize via CSS.\u00a0 The <a href=\"https:\/\/addons.mozilla.org\/en-US\/firefox\/addon\/60\">Web Developer add on<\/a> for Firefox was invaluable for this process&#8211;just hitting &#8216;control-shift-C&#8217; and mousing over a component let me know what selector to use.<\/li>\n<li><a href=\"http:\/\/drupal.org\/project\/wysiwyg\">WYSIWYG<\/a> support was pretty good, including <a href=\"http:\/\/drupal.org\/project\/img_assist\">image uploading<\/a> (as a separate module), control of which of the TinyMCE buttons to display, and a dropdown to surround text with custom css class names.\u00a0 I ended up using the <a href=\"http:\/\/drupal.org\/project\/htmlpurifier\">HTML Purifier<\/a> to scrub input from admin users.<\/li>\n<li>The <a href=\"http:\/\/drupal.org\/project\/webform\">webform module<\/a> allows non technical users to create complicated forms quite easily.\u00a0 I didn&#8217;t really push this module, but it appears to have support for multi page wizards and other complex stuff.\u00a0 But just using it for validation of required fields saved a lot of effort.<\/li>\n<li>Drupal6 has a robust upgrade mechanism.\u00a0 At least, it sure seems like it&#8211;I have upgraded modules and the core functionality a few times and haven&#8217;t had any issues.<\/li>\n<\/ul>\n<p><strong>My issues:<\/strong><\/p>\n<ul>\n<li>We started off on a medium strength server, and were not caching much, and performance was a big issue.\u00a0 There are a number of resources out there, and some research is worth your while.\u00a0 Drupal is a big, complicated system, and like all big complicated systems, tuning is a continual process.\u00a0 Luckily, there&#8217;s a fair bit of built in caching that can be enabled with a checkbox.<\/li>\n<li>Deploying from one server to another is an issue.\u00a0 I talked to a friend who does a lot of Drupal development and he mentioned it was a real thorn in the side of drupal.\u00a0 There&#8217;s just not that much available supporting the ability to move code from staging to production and content the other way.\u00a0 To be fair, this is an issue for most CMSes, and there are some project (<a href=\"http:\/\/drupal.org\/project\/deploy\">deploy<\/a> is one of them) attacking this issue.\u00a0 I don&#8217;t know of any open source CMSes that solve this problem entirely.<\/li>\n<li>The SEO components seemed pretty good, but I was surprised that they weren&#8217;t bundled with the base Drupal installation.\u00a0 You have to install a module to <a href=\"http:\/\/drupal.org\/project\/nodewords\">enable meta tags<\/a>.\u00a0 And <a href=\"http:\/\/drupal.org\/project\/page_title\">another one for page titles<\/a>.\u00a0 Page titles!\u00a0 (I looked at but was quickly overwhelmed by <a href=\"http:\/\/drupal.org\/project\/installation+profiles\">installation profiles<\/a>, which might obviate some of the module installation.\u00a0 There didn&#8217;t seem to be much support for Drupal 6 profiles.)<\/li>\n<li>The complexity of Drupal, which allows it to do so much, means that there&#8217;s a lot to learn.\u00a0 It can be a bit overwhelming at times.<\/li>\n<\/ul>\n<p><strong>The long and short of it:<\/strong><br \/>\nIf you&#8217;re looking to build a web application (not just a site), have some php expertise and some time to get up to speed, and need a lot of functionality, Drupal is worth looking at.<\/p>\n<p>[tags]cms, php cms, drupal, blue droplets keep falling on my head[\/tags]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>AKA, my time with the blue droplet.\u00a0 I recently built a website for a client.\u00a0 I initially recommended wordpress, as I often do but the client suggested the website would [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[38,17,20],"tags":[],"class_list":["post-522","post","type-post","status-publish","format-standard","hentry","category-drupal","category-php","category-web-applications"],"_links":{"self":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/posts\/522","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/comments?post=522"}],"version-history":[{"count":0,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/posts\/522\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/media?parent=522"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/categories?post=522"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/tags?post=522"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}