Upload
ghing
View
1.195
Download
2
Embed Size (px)
DESCRIPTION
This is a talk that I gave with Russ Bomhoff at the December 2009 Chicagoland Library Drupal Group meeting.
Citation preview
Top 5 Non-Obvious Drupal Modules
Presented by:Russ Bomhof & Geoff HingChicagoland Library Drupal Group
December 7, 2009
About CRL
• Consortium of 250+ North American Universities and Colleges
• Primary Resources for faculty and students
• Cooperative Acquisition and preservation of international resources for research and teaching
Top 5 Non-Obvious Drupal Modules
CRL Then and Now
VBScript ASP / MS Access DBStatic HTML w/ Dreamweaver Templates
Drupal 6!
Too often, web site owners allow their maintenance methods and their personnel skills to drive decisions about how the web site works. That's completely backwards. You should first figure out how you want your web site to work, then employ solutions/people/skills to make that happen.
- Scott Crevier on the uwebd mailing list
Things We Learned
As far as we know, there is no module that will force a team to communicate and collaborate.
Things We Learned
There’s more than one way…
Photo by Karamellzucker via Flickr
Things We Learned
Obvious
• Views• Content Construction Kit (CCK)• Panels• Node Import• Workflow• Drush• Google Analytics
Top 5 Non-Obvious Drupal Modules
Non-Obvious
• Nodequeue• Module Grants• Menu Block Split• Views Accordion• Pathauto + Custom Token
Top 5 Non-Obvious Drupal Modules
So what news items did you want on the front page?
We need to have the 3most recent news and events, but not the oneabout the meeting. Oh,and that event is too old. Oh, make sure to add ...
Ummmm. Right. Just send me that list in e-mail.
1. Nodequeuehttp://drupal.org/project/nodequeue
Top 5 Non-Obvious Drupal Modules
By the way, I need you to build this huge new section of the site from a bunch of incoherently named Word documents, e-mails, and spreadsheets.
Ok. When does this need tobe done?
If you could get this done
by the end of the day, that would be great.
Oh, and it will need to be approved before it gets published.
Rapid content development
Review and collaboration
vs.
2. Module Grantshttp://drupal.org/project/module_grants
Top 5 Non-Obvious Drupal Modules
Or, use Deploy
From the amazing demo of the Deploy module, http://www.youtube.com/watch?v=7PjwT0HWHxw
What module should I use for menus?
Well, there’s Menu Block, or Nice Menus. Submenu Tree, …
Category, Menu HTML, Menuwriter, …
Menu Firstchild, Multiple Node Menu, ...
3. Menu Block Splithttp://drupal.org/project/menu_block_split
Top 5 Non-Obvious Drupal Modules
We need our Topic Guide links to open and close like the E-Collections, web specialist.
No problem. What content would you like to use?
It should open and close.
4. Views Accordionhttp://drupal.org/project/views_accordion
Top 5 Non-Obvious Drupal Modules
Where should that page go in the menu?
Home » Archiving & Preservation » Current Projects & Initiatives » Shared Print Archive Proposal
Uhh. Make sure you wipe those breadcrumbs off your chin.
Old and busted: http://www-old.crl.edu/content.asp?l1=3&l2=55
5. Pathauto + Custom Tokenhttp://drupal.org/project/pathauto
Top 5 Non-Obvious Drupal Modules
$replacement = '';
if ($node) { $values = array();
// Try to get the menu data. $mlid = db_result(db_query("SELECT mlid FROM {menu_links} WHERE link_path = '%s'", 'node/'. $node->nid));
// Now get the menu related information. if (!empty($mlid) || !empty($node->menu['mlid']) || !empty($node->menu['plid'])) { $menu_link = menu_link_load($mlid); $menus = menu_get_menus(); $menu = isset($menus[$menu_link['menu_name']]) ? $menus[$menu_link['menu_name']] : ''; $trail_raw = _menu_titles($menu_link, $node->nid);
$trail = array(); foreach ($trail_raw as $title) { $trail[] = check_plain($title); } $values['menupath-raw'] = implode('/', $trail_raw); } else { $values['menupath-raw'] = ''; $values['menu-link-title'] = ''; $values['menu-link-title-raw'] = ''; }
$replacement = $values['menupath-raw']; // Start with the default ['menupath-raw'] $replacement = str_replace('Collaborations/Area Studies', 'Area Studies', $replacement); $replacement = str_replace('Collaborations/GRN', 'GRN', $replacement); $replacement = str_replace('Collaborations/Collaborative Digitization', 'Collaborative Digitization', $replacement);}
return $replacement;
/** * Implementation of hook_token_list(). */
function crl_helpers_token_list($type = 'all') { if ($type == 'global' || $type == 'all') { // We don't implement any global tokens yet. }
if ($type == 'node' || $type == 'all') { // Node tokens here $tokens['node']['crl-menupath-raw'] = t('A customized version of the [menupath-raw] token for the CRL menus that puts certain items (e.g. GRN) at the top level.'); }
return $tokens;}
/** * Implementation of hook_token_values(). */function crl_helpers_token_values($type, $object = NULL) {
// Very similar to code in previous slide// …
}
Alternately, write a custom module
Thanks!
Top 5 Non-Obvious Drupal Modules
Russ Bomhof – [email protected]
Geoff Hing – [email protected]
www.crl.edu