<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Stefano Rivera (Posts about drupal)</title><link>https://stefanorivera.com/</link><description></description><atom:link href="https://stefanorivera.com/categories/drupal.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2026 &lt;a href="mailto:stefano@rivera.za.net"&gt;Stefano Rivera&lt;/a&gt; 
&lt;a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"&gt;
&lt;img alt="Creative Commons License BY-SA"
     class="cc-license-button"
     src="/assets/img/cc-by-sa-4.0.svg"&gt;&lt;/a&gt;</copyright><lastBuildDate>Fri, 01 May 2026 14:29:42 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Drupal Hacking</title><link>https://stefanorivera.com/posts/2008/09/19/drupal-hacking/</link><dc:creator>Stefano Rivera</dc:creator><description>&lt;p&gt;I apologise for my last post on this topic, it probably wasn't very interesting :-)&lt;/p&gt;
&lt;p&gt;I've done the Drupal 6 upgrade, and it was relatively painless. Most modules ported smoothly, a few required me to learn how to port modules to Drupal 6, and one I just gave up on.&lt;/p&gt;
&lt;p&gt;On the whole, the porting is simple, Druplal.org has &lt;a href="https://www.drupal.org/update/modules"&gt;a pretty good howto&lt;/a&gt; on the topic. A few APIs have changed, and that's about it. A great tool to help with this is the &lt;a href="https://www.drupal.org/project/coder"&gt;coder&lt;/a&gt; module, which knows about the API changes, as well as Drupal's &lt;a href="https://www.drupal.org/docs/develop/standards"&gt;coding standards&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I've added the &lt;a href="https://www.drupal.org/project/geshifilter"&gt;GeSHi&lt;/a&gt; module for code syntax highlighting (apologies for the planet-spam caused by this), and I've moved from &lt;a href="https://www.drupal.org/project/marksmarty"&gt;marksmarty&lt;/a&gt; to &lt;a href="https://www.drupal.org/project/markdown"&gt;markdown&lt;/a&gt; + &lt;a href="https://www.drupal.org/project/typogrify"&gt;typogrify&lt;/a&gt; (which I had to &lt;a href="https://www.drupal.org/node/308400#comment-1018480"&gt;port to Drupal 6&lt;/a&gt;). I'm not too happy with the geshi colour-scheme and indenting, but it does a good enough job. I should write a "command prompt" mode for it, but that can wait for now...&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.drupal.org/project/akismet"&gt;Akismet&lt;/a&gt; is currently totally broken for Drupal 6, even if it's labelled as being in beta. I got about half way through porting it before giving up and switching to &lt;a href="https://www.drupal.org/project/mollom"&gt;mollom&lt;/a&gt;, which looks like a pretty good replacement (and it takes care of the sign-up form too).&lt;/p&gt;
&lt;p&gt;Finally, the subject of input-filters. Drupal lets you define a "default filter", but that filter has to be available for everyone, even comments. So your default filter has to protect against XSS. I'd much prefer it if commenters used a simple, locked-down input-format, and I used a nice markdown format.&lt;/p&gt;
&lt;p&gt;I'm &lt;a href="https://groups.drupal.org/node/8911"&gt;not the only one to notice this&lt;/a&gt;, and it seems like it'll be fixed in Drupal 7. Until then, I'm using &lt;a href="https://www.drupal.org/project/remember_filter"&gt;remember-filter&lt;/a&gt; which remembers that I use markdown, and all the commenters use the default, locked-down filter. (Again, &lt;a href="https://www.drupal.org/node/235380#comment-1017934"&gt;ported&lt;/a&gt;.)&lt;/p&gt;</description><category>drupal</category><category>technical</category><category>website</category><guid>http://tumbleweed.org.za/2008/09/19/drupal-hacking</guid><pubDate>Fri, 19 Sep 2008 12:15:16 GMT</pubDate></item><item><title>Drupal 6</title><link>https://stefanorivera.com/posts/2008/09/16/drupal-6/</link><dc:creator>Stefano Rivera</dc:creator><description>&lt;p&gt;I've been playing with &lt;a href="https://www.drupal.org/forum/general/news-and-announcements/2008-02-13/drupal-60-released"&gt;Drupal 6&lt;/a&gt; while helping my parents set up &lt;a href="http://scct.co.za/" title="The Symphony Choir of Cape Town"&gt;a website for their choir&lt;/a&gt;. I'm impressed, it just keeps getting better. I'll be upgrading this site in the next day or two.&lt;/p&gt;
&lt;p&gt;I had to patch a few modules for Drupal 6 support, but it's really easy to do. I only waited this long because most of the modules I used took a while to get Drupal 6 support, but in retrospect, I needn't have.&lt;/p&gt;
&lt;p&gt;I host a few websites for various people and causes using Drupal, as described &lt;a href="https://stefanorivera.com/posts/2007/12/31/drupal-migration"&gt;here&lt;/a&gt;. Now I'm feeling the urge to work on Drupal stuff again, and hope to make some big improvements to this site soon. I'm thinking Activity Stream type stuff for a start (thanks &lt;a href="http://vhata.net/"&gt;Vhata&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;In other news, I have been helping a house-mate set up a website &lt;a href="http://ctglobalist.za.org/" title="The Cape Town Globalist"&gt;for his magazine&lt;/a&gt; in &lt;a href="https://wordpress.org/"&gt;WordPress&lt;/a&gt;. I'm amazed how much PHP you need to mangle to get wordpress to do what you want. Watching someone who has no programming experience at all do this stuff can be both entertaining and depressing. What a terrible introduction to programming... The WordPress API scares me, it uses URL-encoded parameters to many functions for a start. And php isn't exactly a well-designed language.&lt;/p&gt;
&lt;p&gt;Well, I suppose I &lt;a href="https://stefanorivera.com/me/linux-history"&gt;learned to program in BASIC 2.0&lt;/a&gt; - everyone has to start somewhere...&lt;/p&gt;</description><category>drupal</category><category>programming</category><category>website</category><guid>http://tumbleweed.org.za/2008/09/16/drupal-6</guid><pubDate>Tue, 16 Sep 2008 15:45:08 GMT</pubDate></item><item><title>Drupal Migration</title><link>https://stefanorivera.com/posts/2007/12/31/drupal-migration/</link><dc:creator>Stefano Rivera</dc:creator><description>&lt;p&gt;As should be obvious to non-feed readers, I've migrated my blog to &lt;a href="https://www.drupal.org/"&gt;Drupal&lt;/a&gt;. This fits in with my greater plan of organising myself and moving into digs this holiday. Drupal is an awesome CMS - or maybe a better description is "the &lt;em&gt;only&lt;/em&gt; decent CMS". I've set up and maintained a few drupal sites, and have been very impressed with it.&lt;/p&gt;
&lt;p&gt;I've yet to migrate all my previous blog-posts across, but by the time you see &lt;em&gt;this&lt;/em&gt; post, that'll be done. Vhata has walked this road before me (albeit from Serendipity), and I intent do follow &lt;a href="http://vhata.net/blog/2007/03/27/converting-from-serendipity-to-drupal"&gt;his advice&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In the past, I mantained my &lt;a href="https://wordpress.org/"&gt;Wordpress&lt;/a&gt; blog as an &lt;a href="https://codex.wordpress.org/Installing/Updating_WordPress_with_Subversion"&gt;SVN install&lt;/a&gt;. This allowed me to install plugins with &lt;code&gt;svn:externals&lt;/code&gt;, which made upgrades a doddle. Drupal uses CVS, so this approach wasn't an option. After months of procrastination, I investigated &lt;a href="http://wiki.bazaar.canonical.com/ConfigManager"&gt;config-manager&lt;/a&gt;. With it, I built a recipe for downloading drupal and all the modules I use with it. Then I committed this as a &lt;a href="https://code.launchpad.net/~stefanor/drupal/sr"&gt;bzr tree&lt;/a&gt;, so that I could base all my sites on a common base. To install a module, I &lt;code&gt;bzr mv modules/foo drupal/sites/all/modules/&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Now to update all my drupal sites, I update my &lt;code&gt;config-manager&lt;/code&gt; recipe, and build a new master tree. Commit it to the repo, and push to launchpad. And then &lt;code&gt;bzr merge&lt;/code&gt; in all the sites. It's pretty quick and painless.&lt;/p&gt;
&lt;p&gt;For anyone who's interested, the modules I'm using are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.drupal.org/project/akismet"&gt;akismet&lt;/a&gt; - Anti-spam.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.drupal.org/project/atom"&gt;atom&lt;/a&gt; - Some people prefer to consume atom feeds&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.drupal.org/project/marksmarty"&gt;marksmarty&lt;/a&gt; - I'm a markdown fan.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.drupal.org/project/openid"&gt;openid&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.drupal.org/project/openidurl"&gt;openidurl&lt;/a&gt; - To point to my  &lt;a href="http://www.siege.org/projects/phpMyID/"&gt;phpMyID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.drupal.org/project/pathauto"&gt;pathauto&lt;/a&gt; - A drupal must, I like clean URLs.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.drupal.org/project/pingback"&gt;pingback&lt;/a&gt; - The best of the &lt;a href="https://en.wikipedia.org/wiki/Linkback"&gt;linkbacks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.drupal.org/project/recaptcha"&gt;recaptcha&lt;/a&gt; - Stop bogus account creation. (i.e. more-anti-spam)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.drupal.org/project/xmlsitemap"&gt;xmlsitemap&lt;/a&gt; - Be polite to the search engines.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So far I've had to write a drupal module to &lt;a href="https://stefanorivera.com/code/amatomu"&gt;support amatomu&lt;/a&gt;, and it was a bliss. Drupal's API and code is some of the neatest PHP I've ever had to work with.&lt;/p&gt;
&lt;p&gt;I think I'll be happy here :-)&lt;/p&gt;</description><category>blog</category><category>bzr</category><category>drupal</category><category>wordpress</category><guid>http://tumbleweed.org.za/2007/12/30/drupal-migration</guid><pubDate>Sun, 30 Dec 2007 22:35:18 GMT</pubDate></item></channel></rss>