Installed Modules

This page should document the reasons why each contrib module has been installed.

Note that some modules are actually packages, and not all individual modules in the package are enabled.

Site Administration

These modules are used only for site administration and site development - they do not affect the "user" view of the site.  In general, these modules can be removed from the site (e.g., to improve performance if that is an issue) without affecting anyone except the site admin.

Access Control

These modules provide access control functions to restrict who sees and edits what.  Used in conjunction with the built-in access control panel, both to secure the site from anonymous users and to simplify the view of the site for novice users.  These module could be removed if the access control function they provide is no longer required.

Behind the Scenes

These modules are used for automating some of the site building tasks, and creating specific behaviours.  Users do interact with these at some level, but not directly - mostly they act in the background.   Be careful to understand how these modules are used before removing them - the behaviour of the site depends on them, but they tend to act in the background, so its not always obvious they are at work.

Content Types

These modules are installer to allow creation of custom content  types (e.g., CCK).  The site could not function without these modules as CCK is used extensively throughout.

User Interaction & Functions

These modules are installed primarily to provide extra functionality to the user. 

 

Custom Modules?

Almost everything I ever thought of has been done in Drupal by someone else - it's a beautiful thing.  But there have been a few things I've imagined would be really useful that I couldn't find anywhere...
I'd consider writing these myself one day, if time ever permits...

Expiry Date

This module would define a new CCK date type (using Date API) to define an expiry date for a node.  The node owner would get an e-mail reminding them that their node was about to expire, and if no action was taken, the node would simply be removed.   This would be very handy for announcements and to create a CCK classified ads module.  Code could largely be ripped from ed_classified module.

Replace Title

This module would look for an image in a specific directory with a name "similar" to the node title.  If a suitable image is found, then replace the node title with the image.  Use hook_node_?
DONE: But code in template.php - need to move it to a custom module.

Publishing Options Access

This small module uses a hook_form_alter to create per-role access rights to elements of the Publishing Options fieldset on the node-edit form.  This would allow admin to grant rights to user-roles to, for example, promote to front page.
I have already made a good start on this module and will look to contributing it.

Summary Views Plugins

A View with an argument creates a "summary view" when the argument is missing.  The default summary view is simply a list of potentail argument values, linked to their repsepective view "pages".   I could only find one example of a customized summary view (Example: How to Display a Summary View as a Mock Menu | drupal.org ).  I used this to create the "pop-open" menus when browsing the photo gallery, for example. 

I heard a rumour that Views Theming is going to get MUCH easier in Drupal 6, so this may be a wait-and-see.

But there are some other summary views I'd find a great use for:

  • Image Gallery - the photo albums and galleries on lasqueti.ca are built with views, using user id, and taxonomy term, respectively, as arguments.  The "summary view" is custom coded in the phptemplate file of the lasqueti theme.  It would be nice to turn this into a real view plugin that shows the individual gallery views as a Bonus Grid.
    DONE: but currently coded in template.php - need to move to a custom module
  • List All - it would be nice if the summary view could simply list all of the nodes, with a pager, in some order.  This could be as title links only, or as teasers, or, preferably, customisable.   To make this work flexibly, Views would have to support a different view-type selector for the summary view.
    TRY: Setting the argument option to List All in the View - probably does this?
  • Nodes-by-Argument summary - would show all node titles, with links, organized by the argument values (e.g., by the taxonomy tree, for example.)  I have written a preliminary version of this module named nodes-by-category.  Perhaps directory plugin?  or nodes-by-category summary?
    Started: custom Nodes-by-Category views plugin.
    TRY: Views Group-by to group nodes by term in the summary?
  • Single-Node- for views that return just a single node (e.g., random image block), the table or list markup is superfulous and requires special styling to make it invisible.  This view simply outputs one node, with no layout formatting.
    DONE: custom views plugin written.

 

 

 

Publishing Options Access

Module attached below - install as-per-usual.

This small module uses a hook_form_alter to create per-role access rights to all 4 elements of the Publishing Options fieldset on the node-edit form.  This would allow admin to grant rights to user-roles to, for example, promote to front page.
I have already made a good start on this module and will look to contributing it.

I have contacted RobRoy, author of a similar module:  http://drupal.org/project/override_node_options
about integrating these two similar modules.

 

AttachmentSize
publish_access.zip7.73 KB

Module Customization

Forgive me Drupal, for I have sinned...

One of the key benefits of Drupal is that you DON'T (usually) need to "hack" away at existing code to customize it - you can use the hook_ and theme_ systems to add your custom code, thus making upgrading much easier.  Nonetheless, there were a couple modules that I needed to "hack" a little, just to suit my finicky tastes... These changes now need to be "re-implemented" any time these modules are updated (unless you want the old behaviour to revert)...

  • Module     File                          Modification
  • notify        notify.module        changed name on user's tab to "Notify Me"
  • ads        ed-classified.module    changed name on user's tab to "My Ads"
  • imce        imce.module            changed name on user's tab to "My Files"
  • views   modules/views_node.inc  applied patch: http://drupal.org/node/163889#comment-587923
    (hopefully this will be fixed in next version of Views)
  • views   views.module               added $view parameter to theme_views_more() http://drupal.org/node/227669#comment-756961
  • date    date_views.inc           added new views filter http://drupal.org/node/230176
  • lightbox lightbox2.module    theme_imagefield_image_imagecache_lightbox2 altered to use image title as the description text instead of the alt text.  Due to imagefield using image filename as default alt text - yuck.  Better fix would be to patch imagefield to use title text as default if alt text not set.
     

 

 

Useful Modules?

I have tried to install only modules that I needed to meet the immediate designs I was trying to achieve.  In my travels, though, I thought these modules looked very interesting and worth checking out:

- Hovertips and Clicktips | drupal.org  - uses JQuery (AJAX) to create nice pop-up or roll-down tips.  Really useful for displaying complex information or hiding stuff that's not used much (e.g., hide all comments current user has already seen.

- Panels | drupal.org  - provides API and UI for creating sophisticated panelled layouts.  With related "mini-panel" modules to add AJAX tabbed panels and carousel panels Mini Panels demo | Wim Leers

- Node Queue | drupal.org - allows you to display items from a "queue" that automatically drops last item when a new one is added.  Can be used manually for creating "top 5" type lists, or integrated with actions module to automate.

- module_builder - I install this locally to make custom module development easier.  It simple creates a template for a new module based on a few settings.  Only useful for developing a new custom module from scratch.

- form_inspect - a companion for the devel module, this is useful if you are working with forms (say implementing a hook_form_alter), and want an easy way to see view the form data structure.

- chipin - for collecting money for a cause  ** NOT AVAILABLE in 5.0 YET **

- nodewords - meta tag (description, keywords) for each page.

- rsvp - enables rsvp for events (probably won't work with the CCK event types I defined :-(   Perhaps re-develop for CCK date field?)

- volunteer_timeslots - for organising events where volunteers sign up for a timeslot - ditto!

- spam - spam blocking tools. 

- taxonomy_access - access control for users based on taxonomy categories.

-taxonomy_role - access control to taxonomy field on node-edit forms.  Useful to allow admin to place "hidden" taxonomy term in a node, probably for organisational purposes.

- cck_role - same thing for a CCK field.  Could be handy.

- Notifications - a potential replacement / upgrade for Notify and/or Subscriptions?

- Custom Breadcrumb - format breadcrumbs for custom views.