We have a client that required us to build the project on Drupal 6. For all what is worth I am not even going to start to complain from this CMS , there are people that love it and people that hate it, and unfortunately I have to say I am from the second half. It is what it is and does what it needs to do I guess, but stepping outside of the line with it is not a walk in the park.
But anyway to the point. We came to face a situation where the admin interface would not update the position of the blocks anymore. You can drag ‘n drop them as much as you want, but that won’t do it – they keep their original position as you have never updated them at all. I started researching the problem, and it seems that with previous versions of the Drupal ( < 6 ) the column in the DB ( table called “blocks” ) was of datatype TinyInt(4) , which eventually gives you only up to +127 blocks. Not very helpful when you need a lot of them.
In Drupal 6 though that has been fixed, the column that got me wondering was the “weight” one in the blocks table. Ideally with combination of “delta” ( delta should be at least 1/2 of total number of blocks in that area ) it will let you order them the way you want. I actually changed the column type to “smallint“, hoping that it will give it bigger numbers to work with.Blah, that was a mistake that cost me couple of hours to fix.
Basically the problem seems to be complex one – the data type of that field should be changed, but because the number of the blocks will be submitted every time with the form on the admin page, your PHP will most likely hit the max post size limit and the new blocks won’t be updated again , regardless of the increased data type. So, based on your hosting settings either make a custom php.ini or add those lines in your settings file
post_max_size = 120M;
max_execution_time = 1000;
max_input_time = 1000;
If that feels rediculously high, just adjust the numbers, and you should be all good.
Cheers !


