Welcome to the Winter 2005/06 edition of the Drupal newsletter! We've switched our release cycle to quarterly now, but with enough content from the community, we'd happily put it back to monthly!
There has been some exciting activity in the Drupal community over the past few months, including 4 beta releases of 4.7, a bounty for a GPL'ed phpbb->Drupal converter, Drupal's fifth birthday (and a cake to match) and a great bugfix party!
But don't let me bore you down with excitement, dig right on in...

Robin Monks.
Drupal Marketing Coordinator

In this issue...

  • Upcoming Events – Learn about upcoming Drupal-lover events.
  • Drupal Interview – This month's interview with Drupal contributor, Angie Byron.
  • Module Spotlight - A look at "Views," a powerful new third-party module.
  • Drupal Development Quickies – What have the developers been working on lately?
  • Drupal Tips – Tricks to help you harness the full potential of Drupal.
  • Coming up in Drupal 4.7 - Find out why you should be excited.

Special thanks go to Steve Dondley for his work on this issue.

Upcoming Events

Open Source CMS Summit

All Drupal developers should plan to make their way to the west coast of Canada for the event to kick off your year: the Open Source CMS Summit and DrupalCon, February 7th through 9th. As the event page says, this will be a developer-centric event focused on collaborating together on future directions and everyone's favourite topic -- APIs!

With it being peak ski season, developers will get a chance to enjoy British Columbia's coastal mountains, including the famous Whistler, for some of the best slopes in the world. For those who don't ski, there will be plenty of beer going round at the lodge!

Chad Phillips and Angie Byron are the two main Drupal organizers, with Boris Mann and Roland Tanglao doing the Vancouver local organizing and helping with the summit as a whole. Please join the Drupal conference mailing list and/or check out the site to add your own ideas to make this a great gathering of Drupalites. Oh, and of course, flip the switch in your user profile to get listed on the attendees page (over 100 signed up already!).

---------- Digitalclouds.Net - your Web Presence Provider ----------
                         no more limits
 ... unlimited domains, unlimited MySQL dbs, unlimited e-mail ...
 10% donated to Drupal, 1.5 GB extra disk space, 90 days money back

   http://www.digitalclouds.net/goto/xref/offers/supportdrupal/
--------------------------------------------------------------------

Drupal Interview

For this issue of the Drupal newsletter, Robin Monks interviews Angie Bryon, (a.k.a. "webchick."). Angie came to our community at the end of June 2005 through Google's Summer of Code program designed to help bring new talent and support to important open source projects. Angie's current focus is improving documentation and generally helping out wherever she can with graphics work, user support, module extensions, and the countless other tasks that go into the Drupal open source project. Read on to learn more about Angie's self-styled "Winter of Code" program and what motivates her to stay involved.

So, how did you originally find Drupal?

Back a year or so ago, I came across the SpreadFirefox.com website, and was involved there for a little while making some posters. Their site was clean and easy to use, so I did some "homework" and determined that it was running CivicSpace, which is based off of Drupal. That's how I initially heard of the project. Then it kind of moved back under my radar again until Summer of Code. When I saw Drupal on the list of projects, I immediately wanted to get involved with something that was allowing a grassroots activism movement to work so well. And now I've had the opportunity to actually dig into Drupal's "guts" a bit. :)

So how did that opportunity actually come about?

One of my instructors from my college found out about the opportunity and e-mailed myself and a few other students from my class. Getting involved in an open source development project is something that's been on my "life goals" list for quite a few years, so when I saw the opportunity, I jumped on it. I was especially excited about helping with Drupal, both because a) it was being used as a tool in activism, so I feel like a contribution there is helping make the world a better place (very important to me), and b) the particular project I took on (quiz module) was to help further Drupal's ability to be used within education, another extremely important issue to me.

I understand you did some work on the forms API, would you care to comment on that?

While I've not done work with the Forms API directly (Adrian is the guru there who allowed it to come to be), I have been trying to do a lot of work in making the transition between 4.6 and 4.7 as easy for developers as possible, and a big part of that is the effort being put into the documentation for the new forms API.

What kind of documentation improvements have you been working on?

The first effort has been to try and centralize a "resource center" for developers to go to to learn everything they need to know to convert their modules to the new API. You can find the result of that here: http://drupal.org/node/33338. This area will include everything from step-by-step documentation to answers to frequently asked questions, to tips that have been submitted by other developers to aid people in their form conversions.

The second area is the Forms API reference, available here: http://drupaldocs.org/api/head/file/contributions/docs/developer/topics/... which is a comprehensive listing of *all* form elements and attributes, along with descriptions about what they do, where they can/should be used, and "real world" examples from Drupal core on how they're used.

The final piece of this will be a complete step-by-step run-through of how the Project module was converted (this module is particularly good for this because there is just about *everything* a module developer will run into), as well as documentation of the new hooks provided by the Forms API and that sort of thing. I'm working closely with Chad (hunmonk) on these, and Kieran of CivicSpaceLabs has a huge hand in helping fund their development.

Great! So what do you do when not working on Drupal?

Sleeping and eating. Every other waking moment is taken up by Drupal. ;) No, actually, I also do volunteer work with a few other online communities. One of these is CyberArmy.net, which is a community of primarily young people interested in open source, privacy, computer security/"hacking" and so forth and we try and hook them up with constructive opportunities to help out the Internet as a whole. I also enjoy playing video games, drawing/sketching, and doing logic puzzles and the like (yes, I'm a big nerd ;)).

Any final comments for our readers?

Only that I'd like to sincerely thank everyone in the Drupal community for really welcoming me here and making me feel like "one of the guys." I didn't have a lot of confidence initially when I first started with this project, since I was just kind of some mostly self-taught random girl coming from a community college. But everyone has been so supportive and encouraging to me, receptive to my input and feedback, and constantly throwing new opportunities my way. I've met so many friends and learned so many things since first coming here, that this experience has been literally life-changing. Thank you!

Views Module Extends Drupal Flexibility

Anybody who's spent any time cruising Drupal's forums knows that one of the most commonly asked questions is something along the lines of "How do I display a list of nodes of a certain type on a page sorted by author and then by date?" The answer used to be "dust off your favorite PHP and MySQL reference works and get cracking."

But a new module, developed by Earl Miles (a.k.a. merlinofchaos), promises to make customized displays of content much more attainable for the average user and save bundles of time for even the most experienced Drupal developer. It's called "views" and can be downloaded from http://drupal.org/node/38878.

The views module is feature packed, providing a whole host of options that allow site administrators to pull content from the database and display it in just about every conceivably useful way, all without knowing one line of PHP. Want your content paged so only 5 entries show up on a page at a time? No problem. Sorted by one, two, or more fields? Of course! Listed in a table? Yup, can do that, too. How about output to a block? Easy as pie. Can you filter output based on arguments supplied by the url? Yes, sir!

And amazingly, all of this flexibility, and much more, is provided by simply selecting options on one single web-based form. And, yes, the web form can be a little intimidating, especially for newer Drupal users. But no worry here either. Views has an export/import feature that lets you share views with other users. If the views module takes off, and I think it will, there will soon be an entire library of views at the Drupal site which can be imported in a matter of seconds with a cut, a paste, and a click.

If all that doesn't impress you, Earl has also thrown in some additional features to win over the hearts and minds of Drupal developers and designers. For example, views has its own API so that other modules can let views do the work of displaying output. This will save developers time when creating sophisticated modules needing to output data in many different ways. And views can even be themed so that designers can give them their own distinctive look.

Just as the flexinode module created flexible ways for administrators to input data into nodes, views promises to do the same for node output. There's little doubt in my mind views will become a staple of many Drupal installations. The module is still in beta and needs testers to find any bugs and help improve usability. If interested, just download the module at http://drupal.org/node/38878 and report your findings at http://drupal.org/project/issues/views. Be one of the first to check it out this amazing piece of code!

Drupal Development Quickies

  • DriesK separated introduced 'administer access control' permission which is now separate from 'administer users'. (Patch #32669)
  • kbahey added 'site offline/maintenance' feature. (Patch #32622)
  • Countless bugfixes against form API. Most of them by asimmonds, chx and hunmonk.
  • Steven made huge improvements to Drupal's search feature. Indexing has been made smarter and more robust and several advanced search operators (e.g. phrase, node type, ...) have been added. The result rankings are now customizable. (Patch #28159)
  • Steven introduced a user-friendly error screen for users with unsupported database software.
  • Stefan increased a designer's ability to theme Drupal. Chief among these improvements is the ability to theme poll results.
  • ax made blogapi autodiscovery (rsd) work with the Flock browser (and any other standards-chasing RSD using client). This lets desktop blog editors auto-detect your Drupal settings and post from your desktop. (Patch #34749)
  • m3avrck and deekayen cured an immense number of PHP5 warnings. (Patch #30930)
  • the documentation team, Kieran and webchick introduced much improved admin help in core modules. This is the "mega patch" season... (Patch #26139)
  • Richard Archer integrated primary links into the menu system. This was much needed. (Patch #22215)
  • Morbus improved handling of temporary files/directory. (Patch #26249)
  • Cvbge did an awesome job to make pgsql and Drupal work better together. Too many patches to list.
  • Robert added permission to disbale theme switching by users. (Patch #38981)
  • saerdna et al. added a 'change own username' permission. (Patch #39547)
  • One of those rare moments when two maintainers work on one patch: JonBob and Richard separated callback handling from menu handling. (Patch #35768)
  • Morbus optimized performance of URL aliasing for newly installed sites. (Patch #29326)
  • drumm introduced the first piece of an install: an SQL updater you can hook into. (Patch #35924)
  • Though we rarely mention fixes here, big kudos to Morbus, webchick and tangent for fixing the order of node(api) form fields. (Patch #34920)
  • chx broke the record of 'added code' per 'comment needed for the code' ratio with #40886. Reference counting is tricky. Thanks goes to Goba.
  • Richard and chx made it possible to link to the front page. (Patch #36465)
  • Steven introduced some javascript to make textareas in forms resizeable (Patch #42446)
  • Richard and Steven made it possible to use external URLs in menus (and made url() more flexible). Extra Druplipoints to them for this. (Patch #32785)

What does the new Forms API bring? Security, expandability and themability.

  • Security: even if you manually create a POST data, only the fields defined by Drupal are taken into account. You can't choose something that's not listed with select, radios and checkboxes fields.
  • Expandability: you can change any form, add callbacks at almost any point of the process.
  • Themability: you can have a theme function for any part of any form.

Karoly Negyesi,
http://drupal4hu.com/

Side note
tostinni has been doing a lot of work on adding Oracle support to Drupal. http://drupal.org/node/39260

He has translated the schema, and come up with a scheme for dealing with reserved words and Oracle-specific behaviour, and has succeeded in connecting to an Oracle-backed Drupal. Lots of work still to do, but this seems very promising - Oracle support is a pre-requisite to entry in a significant percentage of Enterprise, government and other large business operations.

Thanks to Djun M. Kim for this note!

-------------SECURITY UPDATES-------------
      Get the latest security updates 
   right in your inbox! Subscribe to the
 Security Announcements mailing list today!
         http://drupal.org/security
 ------------------------------------------

Drupal Tips

Track activity and changes on your favorite projects with RSS (Contributed by Bèr Kessels)
The CVS log is often underrated as a means of tracking what happens to
your favorite project.

Let us take as an example the project named "shazamgallery": Visit the link http://drupal.org/cvs?file=/modules/shazamgallery/ to see the latest commits to that project. The /modules/shazamgallery/ in the url can be replaced by anyhting of your interest. You can even track changes to one file. For example, http://drupal.org/cvs?file=/modules/shazamgallery/shazamgallery.mysql lets you track changes to the database file only.

The most interesting part, however, is the RSS feed that comes with that
at http://drupal.org/cvs?rss=true&file=/modules/shazamgallery/

Use this to track your own contribs (to see if some other contributor
slips in features, or bugs, by accident). Or to track changes of the
projects you use on your drupal site.

Module Linking (Contributed by Heine Deelstra)
When linking to a module-specific image or CSS file, do not
use a hardcoded modules/name.module/ path, because this will break in
multisite installations, where modules can be at site/sitename/modules/.
Use drupal_get_path('module', 'name') instead.

Coming up in Drupal 4.7

One of the most obvious changes involves the Menu module. No longer will the primary and secondary links be a custom template configuration issue. The control of these links has been moved into the menu module. After turning on menu module, you can go into administer >> settings >> menu ?q=admin/settings/menu You will find a new option Primary links settings. If you do not have separate menu's yet, you will need to create them and then designate them here. This will involve some minor code changes to any custom templates you have and you can see examples in the included Blue Marine theme. You will also have the option to add items directly to the menu when you first create them.

In the aggregator module, the 'Allowed HTML tags' control has been exposed through the GUI so that you can edit for what html tags you will allow for in the rss feeds you pull from other sites. As an example, by default the <img> tag is not allowed, but now you can change this through the administer >> settings >> aggregator settings instead of in the code itself.

The configuration for your node type workflow (published, promoted to front page, etc) has been moved from it's semi-obscure location in content >> configure to a more sensible and consistent administer >> settings >> content types. This will help new neophytes and experienced admins all around.

Some new settings have been added to the user module in access control administer >> access control. Added permissions are 'administer access control' and 'change own user name'.

While it is exciting that blocks are now able to go into a number of different regions (left/right sidebar, header, content, footer) now, that is nothing compared to additional controls added to block configuration settings. You now have an experts mode option to control visibility based on php code added to the block configuration
as well as some radio button options to control site wide user visibility settings.

The help files have had a serious going over and many now include links back to the Drupal.org site so that you can take advantage of new and updated information from links right in your own installation.

Contributed by,
Steven Peck

For more information about Drupal, visit our website at http://drupal.org/.

Content donations can be sent to the editor using the form at http://drupal.org/contact .

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. 
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/2.5/.