DrupalModules

From HerzbubeWiki
Jump to navigation Jump to search

This page has information about Drupal modules I currently use, as well as modules I have evaluated and/or used in the past.

This page currently has no real structure, I just use it to jot down the most important notes.

Note: Beginning with Drupal 6 it is possible to see all configuration options a module offers by going to the Administration overview and clicking the tab "By module".


Modules currently in use

LDAP

Project page: http://drupal.org/project/ldap

Notes:


External Authentication

Project page: https://www.drupal.org/project/externalauth

Notes:

  • The "LDAP Authentication" and "LDAP Users" modules depend on this module (at least they did in LDAP release 8.x-3.0-beta4)
  • This is purely a helper module which has no configuration of its own.


Views

Project page: http://drupal.org/project/views

Notes:

  • There are too many configuration options to document here. Install the "Advanced help" module and read the advanced help pages provided by Views.


CAPTCHA and reCAPTCHA

Project pages:


About CAPTCHA

  • The CAPTCHA module provides the API and basic infrastructure for using all kinds of concrete CAPTCHA modules
  • The CAPTCHA module itself has the canonical image CAPTCHA challenge as a sub-module


About reCAPTCHA

  • The reCAPTCHA module provides a CAPTCHA that utilizes the reCAPTCHA web service
  • Installation/configuration is detailed in the file README.txt available when the package tar ball is expanded. I like to repeat a few key things here, though...


Setup

  • Add a new role "captcha admin"
  • Set the following role permissions
    • captcha admin = "Administer CAPTCHA settings", and "reCAPTCHA Administritation"
    • authenticated user = "Skip CAPTCHA"
  • Register at the reCAPTCHA website and get a public and private reCAPTCHA key
  • Enter these keys on the reCAPTCHA module's settings page ("Administration > Configuration > People > CAPTCHA" in D7, then select tab "reCAPTCHA")
  • On the page "Administration > Configuration > People" (in D7), add a reCAPTCHA to the forms "user_register_form" (to fend off bots from registering accounts) and the various "comment_<foo>_form" (to prevent spam bots from adding comments)
  • Once CAPTCHAs are in place for comments, the following configuration is necessary to enable comments for anonymous users
    • Give permissions "post comments" and "skip comment approval" to the "anonymous user" role


External links

Project page: http://drupal.org/project/extlink

Notes:

  • This module is extremely easy to use: Download, extract & activate
  • Configuration is possible (Site configuration -> External links) but not necessary. By default the module simply adds nice little icons to external and mailto URLS
  • Does not install any database tables, is a pure JavaScript module (i.e. users with JavaScript disabled will not see the icons)


Token

Project page: http://drupal.org/project/token

Notes:

  • This module needs to be installed as a prerequisite for other modules (e.g. pathauto)
  • The module has no configuration options or other user-visible parts
  • Does not install any database tables
  • Will be part of Drupal Core in Drupal 7


Pathauto

Project page: http://drupal.org/project/pathauto


What is the purpose of this module? (it's pretty simple, but I keep forgetting)

  • Every node in Drupal can have a user-defined URL alias, with the purpose to make the node accessible under a "pretty" URL instead of "/node/27" or something like that
  • Manually defining such aliases is tedious and if you want to have a reliable pattern for them there is also room for error (e.g. all stories should appear under blog/<year>/<month>/<story-title>)
  • The Pathauto module therefore allows to define patterns for various content types, and when a new node is created Pathauto automatically generates an URL alias for that node according to the pattern defined for the node's content type
  • The user can still manually define URL aliases that do not follow Pathauto's pattern rules
  • Pathauto allows to retroactively create URL aliases for nodes that were created before the module was installed (so-called "bulk updates")
  • Patterns can be changed. This affects only new nodes being created; already existing nodes are not affected because their URL aliases have already been created. If a new pattern should also be applied to existing nodes, Pathauto allows to mass-delete aliases for existing nodes of a given content type. The "bulk update" feature can then be used to create aliases following the new pattern.


Notes:

  • Adds the following things to the UI
    • New permissions: "administer pathauto" and "notify of path changes" (don't know what that is)
    • Two new tabs to "Site Building -> URL aliases":
      • Automated alias settings: Configure pathauto and bulk-create aliases
      • Delete aliases: Bulk-delete aliases
    • A new option to "URL path settings" when new nodes are created or existing nodes are edited
  • Does not install any database tables
  • It makes sense to create a new role "path admin"
  • Patterns are configured under "Administration > Configuration > Search and metadata > URL aliases" (D7)
    • Content paths
      • Default pattern = content/[node:title]
      • Pattern for "Book Review" content type = review/[node:title]-by-[field_author-raw]
      • Pattern for "Book" content type = Not configured yet
      • Pattern for "Page" content type = article/[node:title]
      • Pattern for "Story" content type = blog/[node:created:custom:Y]/[node:created:custom:m]/[node:title]
    • Taxonomy term paths
      • Default pattern = [term:vocabulary]/[term:name]
    • User paths
      • Pattern = users/[user:name]
  • After making these configuration changes, the initial aliases need to be bulk-created


"Path admin" role:

  • From the "path" module:
    • administer url aliases
    • create url aliases (note: writer roles already have this)
  • From the "pathauto" module:
    • administer pathauto
    • notify of path changes (don't know what this is)


Redirect

Project page: https://www.drupal.org/project/redirect

Notes:

  • This module is most effective in conjunction with Pathauto; it tries hard to make nodes accessible under one, and only one, URL
  • Adds the following things to the UI
    • New configuratin page "Administration > Configuration > Search and metadata > URL redirects"
  • Does not install any database tables
  • Configuration
    • Global Redirects > Enforce clean and canonical URLs = true


Voting API

Project page: http://drupal.org/project/votingapi

Notes:

  • Adds new DB tables
  • Adds the following UI elements
    • New permissions
    • Administer -> Site configuraton -> Voting API
  • This module alone does not do anything


Fivestar

Project page: http://drupal.org/project/fivestar

Notes:

  • Adds new DB tables
  • Adds the following UI elements
    • New permissions


Trigger

This is a module from Dupal core.

How to configure so that I get an email when someone writes a comment:

  • Credits: The following configuration steps are based on this blog post
  • After enabling the module, enable "Clean URLs" (under Configuration > Search and metadata > Clean URLs)
  • Add an action (under Configuration > System > Actions)
    • Select "Send e-mail" from the combobox at the bottom of the page and create the action
    • Configure the action like this
      • Label = "Send an email notification upon comment save"
      • Recipient = drupalcomments@herzbube.ch
      • Subject = New comment at herzbube.ch
      • Message =
### Node
[comment:node:title] at: [site:url]node/[comment:node:nid]#comment-[comment:cid]

### Comment
[comment:author:name]
[comment:title]
[comment:body]

### Review
[site:url]admin/content/comment/approval
    • After saving the modifications, follow the "Triggers" link (to Structure > Triggers)
    • Select the "Comment" tab
    • Assign the new "Send e-mail" action to the trigger "When either saving a new comment or updating an existing comment"


Old/unused modules

Read More link

Project page: http://drupal.org/project/read_more

Notes:

  • Currently I don't use the module, although it could be a really neat solution if a theme displays ugly "Read More" links.
  • Does not add DB tables
  • Adds the following UI elements
    • Administrate -> Site configuration -> Read More link
  • Configuration note: Link text and separator cannot contain any style information (i.e. style attribute). For styling a little CSS thingy needs to be added to the theme CSS. See the project page for details.


jQuery UI

Project page: http://drupal.org/project/jquery_ui

Notes:

  • I don't use this module because it has not been ported to Drupal 7. I believe I once had this module in my portfolio to get the events calendar working
  • The module is a wrapper around the jQuery UI effects library (not a Drupal thing)
  • Without the effects library, the module refuses to become enabled
  • The module requires that the library be installed into a sub-folder of the module directory
  • The effects library depends on the jQuery library, and a certain version of jQuery is shipped with Drupal
  • Because of that, only a certain version of the jQuery UI effects library can be used
  • Read the module's README.txt for concrete details about versions


Taxonomy Image

Project page: http://drupal.org/project/taxonomy_image

Notes:

  • I don't use this module because it has not been ported to D7. There is a some sort of developer version, if you follow this issue on drupal.org, but I haven't found out how to get this because the main module page does not link to that dev version.
  • Install modules "Taxonomy Image" and "Taxonomy Image Link Alter"
  • Change the modules' settings on admin/settings/taxonomy_image; the default settings are pretty much ok, except for the content types that links should be altered for (I guess one will usually want to check all content types, e.g. story|page|book page)
  • Change permissions on admin/user/permissions
    • Access taxonomy images = anonymous user, authenticated user
    • Administer taxonomy images = taxonomy admin
    • Can disable taxonomy images = authenticated user
  • Define the actual images on admin/content/taxonomy/taxonomy_image


A couple of notes about creating images from Mac OS X icons:

  • Convert resource fork based icons to .icns format with icon2icns.app
  • The Gimp
    • .icns files can be opened directly in the Gimp; the various icon variants are generated as layers
    • Create a new blank 128x128 image
    • Drag the "ih32" layer (which is the "huge 32bit" icon variant, huge being 32x32 pixels), or any other layer of your choice, from the .icns image into the blank image
    • Remove the blank background layer
    • Crop the image
    • Save as .png to retain transparency
  • Command line utility sips
    • The command line utility sips can be used to create .png files from .icns files; the following example creates a 128x128 .png file
sips -s format png /Path/To/Icon.icns --out /Path/To/ConvertedImage.png
    • It should be possible to create smaller .png files (e.g. 32x32), at least I have seen hints about this on the man page
    • I have not tested this, however, and I am especially unsure whether sips will simply downscale the 128x128 icon to the desired size, or choose the appropriate icon variant


Advanced help

Project page: http://drupal.org/project/advanced_help

Notes:

  • I don't use this module because it has not (yet) been ported to D8, and it's not necessary to run my site.
  • This module is really valuable for getting the Views module to display advanced help
  • Adds new DB tables
  • Adds the following UI elements
    • New permissions
  • This module does not do anything on its own, but modules that support Advanced Help are now capable of displaying advanced help popup windows
  • Configuration
    • Do not create a new role, add all permissions to the "authenticated user" role


Block anonymous links

Project page: http://drupal.org/project/blockanonymouslinks

Notes:

  • I don't use this module because it has not (yet) been ported to D8. I am relying on CAPTCHAs to prevent spam comments.
  • Refuses anonymous (i.e. not logged in) users to post comments that contain external links. This anti-spam module is well-suited for my site because I don't receive many comments in the first place.
  • Other anti-spam modules that look interesting (should this module ever become unsuitable or unsupported): Spamicide and Mollom
  • This module is extremely simple: It does not modify the database, adds no permissions, and has no effect on the Drupal UI whatsoever. It consists of only a single function that performs a regular expression check on the submitted comment.


Chaos Tool Suite

Project page: http://drupal.org/project/ctools

Notes:

  • I don't use this module because it was only required as a dependency for the Views module, and Views is now part of D8 core
  • This module is required because the Drupal 7 version of Views depends on it
  • Adds new DB tables
  • Adds the following UI elements
    • ???
  • Configuration
    • ???


Date

Project page: http://drupal.org/project/date

  • I don't use this module because D8 core now has a Date field type
  • This modules provides a new field type for dates and times, as well as an API that can be used by other modules
  • This module is especially useful in conjunction with the modules views and calendar, to create event calendars (reminder to self: an old version of this page still has the outdated instructions how to configure such a calendar)


Email

Project page: http://drupal.org/project/email

  • I don't use this module because D8 core now has an E-Mail field type. I don't think I ever used e-mail addresses anywhere on my sites, though. The page footer contains a contact address, but this is written with an HTML a element.
  • This module provides a new field type for email addresses
  • It also turns addresses into mailto links (not sure if this is done automatically anywhere in the content)


Flattr

Project page: https://drupal.org/project/flattr

Notes:

  • I don't use this module because I no longer use Flattr
  • The module supplies a new field type called Flattr
  • New fields of this type can now be created ("instantiated") and attached to any content type (although only node entities are currently known to work)
  • So far I have created exactly one field, and added that field to the following content types: story, page, book review
  • The field has no global settings.
  • The field has a few default settings that can be configured separately for each content type
  • Flattr user name
    • On my Drupal site I post under the user name "patrick", but Flattr knows me as "herzbube"
    • This means that I need a way how to map my Drupal name to my Flattr name
    • Go to "Home > Administration > Configuration > People > Account settings"
    • Add a new field named "field_flattr_name" which has type text. Make it a required field.
    • Go through all account nodes and enter the correct Flattr name
    • For each content type (story, page, book review) go to the "Manage display" page (e.g. Home > Administration > Structure > Content types > Story > Manage display)
    • Under both the "Default" and the "Teaser" settings, change the settings of the "Flattr" field. Set the "Field to use for Flattr username" to "field_flattr_name"
    • Don't forget to click the "Save" button after updating the settings
  • When I create a new story/page/whatever, I now have the following options for the "Flattr" field:
    • Checkbox that decides whether the new story/page/whatever will display a flattr button, or not
    • Selection combobox that decides what type of content the story/page/whatever is (apparently the Flattr API wants to know what type of content is being flattred)
  • As mentioned above, the defaults for these options can be set per content-type (e.g. I could have the flattr button on per default for stories, but off for pages)
  • The default for the Flattr content type obviously is "text", since my website mainly produces blog posts
  • Appearance of the button within a node
    • The "Manage Fields" tab for each content type allows to specify a field order. This order applies only to the page where new content is created.
    • The "Manage Display" tab allows to specify the order of fields how they should be displayed when the node is published (admin/structure/types/manage/story/display)
    • Also under "Manage Display" is the option that lets you hide the "Flattr" label. This is not necessary since the button already renders the text "Flattr"
    • There are separate "Manage Display" settings for the default node view, and the teaser view


Link

Project page: http://drupal.org/project/link

  • I don't use this module because D8 core now has a Link field type
  • This module provides a new field type for URL links


Global Redirect

Project page: http://drupal.org/project/globalredirect

Notes:

  • I don't use this module because it was deprecated for D8. Its successor is the "redirect" module.
  • This module is most effective in conjunction with Pathauto; it tries hard to make nodes accessible under one, and only one, URL
  • Adds the following things to the UI
    • New configuratin page "Site configuration -> Global Redirect"
  • Does not install any database tables
  • Configuration
    • Add canonical link = true