The drop is always movingYou know that saying about standing on the shoulders of giants? Drupal is standing on a huge pile of midgetsAll content management systems suck, Drupal just happens to suck less.Popular open source software is more secure than unpopular open source software, because insecure software becomes unpopular fast. [That doesn't happen for proprietary software.]Drupal makes sandwiches happen.There is a module for that

Further menu phases

Submitted by nk on Mon, 2007-01-15 08:02

Now that menu phase 1 is basically done at how we proceed?

Phase 2 will see some new fields, mid (for menu id), pid (for parent id), parents (comma separated list ids of all parents), menu_link, task, visible and finally, display_order. menu_link is the aliased and themed menu link. task and visible are flags which tells us what their name suggest. display_order will provide, well the display order, based on vancoding. All this means that one relatively simple query SELECT menu_link FROM menu WHERE pid IN $parents AND visible = 1 AND task = 0 ORDER BY display_order will be able to select the whole visible tree. $parents will be initialized to the parents of the current menu item and in phase 2 that's it. But in phase 3, as we create the menu tree we will check for expanded items and add them to parents and redo the menu tree. This means some slowdown especially if expanded is used in depth, but I can not care less -- for some time, I thought I will not even do expanded.

Throwaway development sites

Submitted by nk on Mon, 2007-01-08 17:00

Since long I was looking for a hosting provider where I could put a sandbox site. A prototype site. To do this, I needed PHP, MySQL and SSH access. Disk space and bandwidth constraints are not really a concern. Reliability is somewhat not a top priority. Price is. I found HostIgniton MiniFire and was pretty impressed: it provides all three. And to my greatest delight when I SSH'd in I found that they have cvs command line utility. Alas, the outgoing port was blocked. I filed a support ticket and 32 minutes later the port was open. Later mails got answered with similar speed

Module weights is weak and blunt

Submitted by nk on Sun, 2006-11-26 06:27

So I have written some simple code which lets you write


function poll_define_hooks() {
  $hooks['implement']['nodeapi'] = array('before' => array('forum'), 'after' => array('taxonomy'));

This will define a directed graph. So, the code does a depth first search. This has two uses: detects cycles and orders as well. The whole code with some test code is 2K. It's in my sandbox.

CSS is wrong and some Drupal six plans

Submitted by nk on Thu, 2006-11-23 22:52

We all know how various CSS implementations are bogus in browsers. If you think only iE has quirks, then here you can find some others. Of course, IE is the most broken, far, far more than anything else. But, this is not to topic for today.

New menu system

Submitted by nk on Sat, 2006-09-30 23:09

There are lengthy posts of this on the development list, but I will try to describe it again, and there are some news which are not yet covered on devel.

So, instead of caching a huge serialized array per user we store each menu item in a normalized table. The primary key is the path. However, it's not always a real path as it can have a wildcard instead of a part. So, to define the node edit URL, we now have node/%/edit. To stay with this example, instead of 'access' => node_access('update', arg(1)) now we have 'access' => 'node_access', 'access arguments' => array('update', 1). This way we can run the access callback when the user visits the page.

Excellent idea of Dries

Submitted by nk on Tue, 2006-09-05 15:13

Dries, whom I love and honor with all my being (sorry if I write a bit harsh emails), again had a brilliant idea: . So far, I coded two patches out of and one is already committed. Checkboxes on the admin modules page got moved to the left -- I would have never thought of it, i just posted that I can't find which checkbox belongs to which and folks said, let's move it to the left. So it happened.

Form API workshop

Submitted by nk on Fri, 2006-08-04 23:05

If there is interest, I would be happy to host a workshop about form API at the Sep. 2006 DrupalCon in Brussels. I prefer sort of advanced level -- I am not that good in teaching the basics. Post your questions and I will pick the best.

Going to Vancouver

Submitted by on Fri, 2006-06-30 04:07

I will be in (North) Vancouver between Aug 1-31 and I am very eager to met Drupalers in the area. If you would like to meet, contact me.

What Drupal is not for?

Submitted by on Sat, 2005-12-24 01:36

Yesterday I decided to continue an old pet project of mine. I started a blog to tell all about it on which is like or whatever. This was before I ever heard of Drupal. Now, I am happy that all this happened so -- I left that blog untouched for 1.5 years. Do you think it's safe to live any web application 1.5 years untouced? No. Also, they offer tons of skins, free. Primitive skins, aye, but still.

Drupal is not for these scribble-something-on-the-wall sites. It's able to do it, just does not worth the bothering.

Drupal 4.7b1 is out

Submitted by on Fri, 2005-12-09 07:32

We managed to get the first beta out of the door. Dries was reluctant to call it RC because he thinks it's not stable enough. I launched a bughunt competition to suppor this claim :)

The pictures on the right hand site are things that I await to arrive in December. Only one of them is a real Christmas present (the bear on the top), the other two of the three are payments for consulting work, but still they are timed to arrive around Christmas, so...