modules

#D7CX sprint in Belgium

Update 06/01/2010
We have a date and location! See http://drupal.be/evenement/d7cx-sprint

With Drupal 7.0 Alpha 1 coming up soon, we as responsible module maintainers should start worrying a bit. How many of us have already a 7--1 branch or even commited code for modules to work with the latest Drupal ? I for one am pretty guilty and since I made the #D7CX pledge on all of my project pages, I should really start porting. However, this can be quite boring sometimes, sitting along at your desk (or in your couch, wherever ..), so why not organise a sprint, maybe 2 with the Belgium and Dutch community ? Everyone can join, either porting, testing, helping or just catching up with friends.

What do we need ? Not a lot I think:

  • a good internet connection, wifi and/or wired.
  • close connection to food: french fries, quick, pizza or a bio shop ;)
  • drinks: a few beers can't hurt right ?
  • other distractions like a Wii or Xbox

We have all those things available at One Agency in Drongen (near Gent). So that's a first spot were we can happily hack time away if anyone's interested. A complete weekend might be possible if there's a lot of enthousiasm and commitment. I'll post some dates soon on the drupal.be website. So who's in and has also a spot to share with us ?

And since this will be also my last post in 2009: happy new year everyone!

Addendum to the D7CX movement

I just spent the entire morning fixing notices and adding patches in the issue queue for a couple of contributed modules we're currently using in a project. On my development box, I always set error_reporting to 'E_ALL' and display_errors to 'On' in php.ini so I can see how good or bad the code is. Drupal core is pretty much free from such notices, but in the contrib world there's a lot of undefined variables and indexes out there. Fixing them sounds boring but is actually pretty fun and you learn a lot about the internals of Drupal core too, so it's really worth spending time on this.

A few months ago Moshe started the D7CX movement encouraging module developers to release a D7 version of their modules the day Drupal 7 is out. Excellent initiative and a lot of module maintainers already made that pledge. That's really wonderfull, but let's hope module maintainers always run with full error reporting and make their modules notice free, so why not change that pledge a bit:

I pledge that mymodule will have a full Drupal 7 release and will be PHP notice free on the day that Drupal 7 is released.

Of course, this still applies to D6 and D5 too, who's in on this too ?

Dear edit button, welcome back!

It's a very old issue, a frustrating one in fact: the edit tab on nodes disappears sometimes due to input format permissions. I wrote a module that fixes this for D6 which works for the default body field , CCK textareas and I'll be adding support for other textareas on other pages too (think blocks & views). It's available in my sandbox for testing at http://cvs.drupal.org/viewvc.py/drupal/contributions/sandbox/swentel/edi.... There are a few todos left, marked accordingly in the code, so if you want to help out, go nuts! I'm not sure yet if I'll release this as an official project on d.o, I'll wait for some reactions from the community first, so leave a comment, contact me, ping me on irc .. we'll see after that.

Anyhow, say hi to the edit button again if you test it :)

Drupal modules

This is list of Drupal modules I committed or (still) maintain on d.o. Snippets are at the bottom.

Display suite

The Display suite is an API which makes it possible to render data from any object (node, user, comments ..) into regions per build mode. Lot's of goodies are available out of the box like custom build modes, fields and even plugins.

Info, CVS & downloads on http://drupal.org/project/ds which has links to all other modules implementing the API or with support for DS.

Sweaver

Sweaver offers a visual interface for completely changing your Drupal theme without knowing any CSS. Through a bar that sits at the bottom of your screen, you can change the fonts, colours, dimensions etc of all your design elements and see the changes real-time.

Info, CVS & downloads on http://drupal.org/project/sweaver

Block Cache Alter

Alter cache settings per block. Cache settings per block are now set in code, but if you don't like the default - usually none, you can now easily change this. Install this to speed up block rendering for authenticated users.

Info, CVS & downloads on http://drupal.org/project/blockcache_alter

Nodes in block

Nodes in block makes it possible to add nodes into a block. A number of configurable blocks are generated which you can assign to a region. Visibility settings of this block are automatically set to 'Show on only the listed pages'. On the node content form, you define the weight and visibility per node thus making it easier for content administration as all your content is now in the same place. With this module, you don't have to explain your customers how blocks work but is still able to decide on which pages content must be rendered.

Info, CVS & downloads on http://drupal.org/project/nodesinblock

Views random seed

Adds a random order handler with seed. If a constant integer argument N is specified in the sql RAND() function, it is used as the seed value, which produces a repeatable sequence of column values. This makes it possible to have paging and not having items show up twice.

See http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#funct... for more info about RAND() and the optional integer argument.

Info, CVS & downloads on http://drupal.org/project/views_random_seed

Comment Reference

Shortest description ever: defines a cck field type for referencing a comment.

Info, CVS & downloads on http://drupal.org/project/commentreference

PicLens

The PicLens module for Drupal makes it easy for you to provide your visitors with an immersive slideshow experience for rich media on your website. It supports the mediaRSS feeds which is needed by the 3D plugins. The PicLens Lite is also supported enabling a really slick slideshow on your own website.

See the PicLens (Lite) in action on http://realize.be/image-galleries/drupalcon-boston-2008
Info, CVS & downloads on http://drupal.org/project/piclens

For more information about PicLens and browser 3D plugins, go to http://www.piclens.com

User Types

This modules gives you the power to make custom profiles for certain types of users. The core profile module must be enabled for this. It let’s you determine for which profiles a field will be active. For example: If we want a field where you can enter who’s your favorite band, you create this field and at the bottom you can choose for which user types (which you defined earlier in admin/user/user_types) this field will be active using the checkboxes. It’s that simple. It's also possible to automatically assign a role per user type.

Info, CVS & downloads http://drupal.org/project/user_types

Imagecache Javascript Crop

This module makes a javascript toolbox action available thanks to the power of Imagecache 2. It can for instance 'hook' into the image module. It provides a 'javascript crop' link on the edit form. The popup window displays all available imagecache presets with a javascript crop action. In your theming you can use the imagecache theme function with a preset and the imagecache action makes a database call to choose the right crop area.

The main difference with projects like eyedrop or imagefield_crop is that it doesn't provide it's own widget to upload images, instead it just 'hooks' into image files. In the future, more modules will be supported and eventually a 'image file browser' will also be made available.

Look at a screencast of the module working.
Info, CVS & downloads on http://drupal.org/project/imagecrop

Views UI permissions

Views UI permissions lets you restrict access to users to edit certain fields in the views interface.

Info, CVS, downloads at http://drupal.org/project/views_ui_perm

PHPIDS

PHPIDS module adds a security layer based on http://www.php-ids.org and is interesting if you want to know how and when (anonymous) users try to break your site by logging their attacks. It can send a mail, redirect the (anonymous) user or (not yet implemented) automatically block user/ip access after a certain level of impact has been reached. On the settings page you can choose what you want to do with anonymous and authenticated users (ignore, log, log & action).

Info, CVS & downloads on http://drupal.org/project/phpids

Snippets

Jquery multiple select snippet: I've written some code which makes multiple select buttons a bit smarter. It remembers the clicked options without holding that damn CTRL button. I've set up a test page to try it out and where you can find the code. If you experience problems, leave a comment or contact me.