Top 5 Non-Obvious Drupal Modules


Published on

This is a talk that I gave with Russ Bomhoff at the December 2009 Chicagoland Library Drupal Group meeting.

Published in: Technology, Business
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Russ: - Thanks for having us, we have been wanting to attend this group for a while First heard about it at Last year’s Drupal camp at the University of Illinois Geoff and I are both web and digital library specialists at CRL
  • CRL is an academic library consortium based at the University of Chicago’s campus in Hyde Park. Although U of C was one of our charter members, that is the extent of our relationship. Our members are based primarily in North America, but also include several Canadian universities and some global members like the university of Hong Kong. Since we deal mostly with primary sources, most of our members are larger research institutions, but we also have many smaller schools who are members by way of various library consortia. Collections: various archival material, to a collection of more than 800,000 foreign doctoral disertations, which are all cataloged. Newspapers from around the world at about 10,000 titles nearly 70,000 serial titles, which includes items like trade journals from the late 19 th century. government documents, including our very popular collection of presidential and ministerial reports from Brazil. - but that’s not all! We also provide a framework that gives technical and administrative support to programs that pool the resources and expertise of our members. These groups are mostly interested in international resources. Examples are the Global Resources Network (GRN) and the Area Microform Projects (AMPS)
  • Here we can see the aesthetic changes to our website that took place over the last year, but what about the framework? The content? - Drupal: the tough sell. -No real in-house expertise; steep learning curve - Up until that point, we were a windows shop using Access, MSSQL, ASP for scripting, etc. We needed a new box, Linux admin expertise Starting point: Drupal camp! – Meeting like minded individuals (librarians), getting excited at the various presentations. Theming didn’t seem that difficult, we were thinking about potential integration of our catalog (millenium module, SOPAC, etc.) Road blocks: modules and custom development. Ex. FOCUS – we tried several newsletter modules that were either much too complex, or not powerful enough. Ended up creating our own content types for issues and articles. Basic content was finally in and edited. But what about the custom development we needed? Geoff!
  • *Read Comic* - Many staff members – particularly heads of department – have a lot at stake when it comes to news and events. While we did set up a workflow to make it easier to submit them, we had limited real estate on the front page. - We needed a way to pick and choose arbitrary nodes and display them on the front page
  • Top 5 Non-Obvious Drupal Modules

    1. 1. Top 5 Non-Obvious Drupal Modules Presented by: Russ Bomhof & Geoff Hing Chicagoland Library Drupal Group December 7, 2009
    2. 2. About CRL <ul><li>Consortium of 250+ North American Universities and Colleges </li></ul><ul><li>Primary Resources for faculty and students </li></ul><ul><li>Cooperative Acquisition and preservation of international resources for research and teaching </li></ul>Top 5 Non-Obvious Drupal Modules
    3. 3. CRL Then and Now VBScript ASP / MS Access DB Static HTML w/ Dreamweaver Templates Drupal 6!
    4. 4. 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
    5. 5. As far as we know, there is no module that will force a team to communicate and collaborate. Things We Learned
    6. 6. There’s more than one way… Photo by Karamellzucker via Flickr Things We Learned
    7. 7. Obvious <ul><li>Views </li></ul><ul><li>Content Construction Kit (CCK) </li></ul><ul><li>Panels </li></ul><ul><li>Node Import </li></ul><ul><li>Workflow </li></ul><ul><li>Drush </li></ul><ul><li>Google Analytics </li></ul>Top 5 Non-Obvious Drupal Modules
    8. 8. Non-Obvious <ul><li>Nodequeue </li></ul><ul><li>Module Grants </li></ul><ul><li>Menu Block Split </li></ul><ul><li>Views Accordion </li></ul><ul><li>Pathauto + Custom Token </li></ul>Top 5 Non-Obvious Drupal Modules
    9. 9. So what news items did you want on the front page? We need to have the 3 most recent news and  events, but not the one about the meeting.  Oh, and that event is too old. Oh, make sure to add ... Ummmm.  Right. Just send me that list in e-mail.
    10. 10. 1. Nodequeue Top 5 Non-Obvious Drupal Modules
    11. 11. 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 to be 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.
    12. 12. Rapid content development Review and collaboration vs .
    13. 13. 2. Module Grants Top 5 Non-Obvious Drupal Modules
    14. 14. Or, use Deploy From the amazing demo of the Deploy module,
    15. 15. 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, ...
    16. 16. 3. Menu Block Split Top 5 Non-Obvious Drupal Modules
    17. 17. 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.
    18. 23. 4. Views Accordion Top 5 Non-Obvious Drupal Modules
    19. 24. 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.
    20. 25. Old and busted:
    21. 26. 5. Pathauto + Custom Token Top 5 Non-Obvious Drupal Modules
    22. 27. $replacement = ''; if ($node) { $values = array(); // Try to get the menu data. $mlid = db_result(db_query(&quot;SELECT mlid FROM {menu_links} WHERE link_path = '%s'&quot;, '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;
    23. 28. /** * 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
    24. 29. Thanks! Top 5 Non-Obvious Drupal Modules Russ Bomhof – [email_address] Geoff Hing – [email_address]