Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Drupal in Libraries
1. Drupal in Libraries Cary Gordon, MLIS The Cherry Hill Company http://chillco.com
2. Agenda A short chat about Drupal Modules (4849 at last count) A brief library tour Drupal as application framework Drupal 7 Resources
3. But First… The Cherry Hill Company Library focused development and system integration Developed the California State Library website Integrated and developed 24/7 Reference (now rolled into OCLC’sQuestionPoint) Pre-Drupal, mostly ColdFusion and Java We provide a full range of support and development services for Drupal in libraries. Active in the local, US and World Drupal communities. Board member of the Drupal Association Events Manger for Drupal events worldwide Drupal evangelist Drank the KoolAid
4. Drupal is different Free and Open Source Simple – based on the blogging idiom Content Management Framework Designed to be a development platform The hook system Drupal CVS contributions
5. A Small Corner of the CMS Universe And about 1085 others (http://www.cmsmatrix.org/matrix)
6. Drupal is designed bythe community About 800 contributors to core 25 Maintainers 2 Core committers Angela Byron Dries Buytaert http://cvs.drupal.org/viewvc.py/drupal/drupal/MAINTAINERS.txt?view=co
11. Best Practices Plan your site. Plan for the future. Get involved in the community Back up your site. Test your PHP snippets. Observe Drupal Programming Best Practices - http://drupal.org/node/287350 Use a version control system. Keep your site up-to-date. http://drupal.org/best-practices (with a couple additions)
12. You’ve been warned! Don’t use a Windows server and IIS(unless you wear Kevlar socks) Don't hack core Don't hack core!
13. Contributed Modules 4849 contrib modules in Drupal CVS Little concrete information on what they do Most start as solutions to specific problems Also 570 contrib themes
14. Cherry Hill module collection library for public library hosting (example) aclcustomerrorlogintobogganviews_bulk_operations admin_menu date nice_menusviews_calc advanced_help event nodeasblockviews_groupby backup_migrateextlinknodewordsviews_node_feed better_formatsfaceted_searchpathautoviews_or calendar fivestarsecurepagesvotingapi captchagoogle_analyticsservice_linkswebform cck image services workflow worldclock cck_redirectionimcetaxonomy_accesswysiwyg checkbox_validateimce_wysiwyg token computed_field legal views content_access link views_bonus We keep a collection of shared modules in our Subversion repository.
15. Cherry Hill Drupal root dir (example) lrwxrwxrwx 1 www-user apache 19 Jul 6 16:29 cron.php -> ../drupal6/cron.php -rw-r--r-- 1 www-user apache 3964 Mar 19 2009 .htaccess lrwxrwxrwx 1 www-user apache 19 Jul 6 16:29 includes -> ../drupal6/includes lrwxrwxrwx 1 www-user apache 20 Jul 6 16:29 index.php -> ../drupal6/index.php lrwxrwxrwx 1 www-user apache 22 Jul 6 16:29 install.php -> ../drupal6/install.php lrwxrwxrwx 1 www-user apache 15 Jul 6 16:29 misc -> ../drupal6/misc lrwxrwxrwx 1 www-user apache 18 Jul 6 16:29 modules -> ../drupal6/modules lrwxrwxrwx 1 www-user apache 19 Jul 6 16:29 profiles -> ../drupal6/profiles lrwxrwxrwx 1 www-user apache 21 Jul 6 16:29 robots.txt -> ../drupal6/robots.txt lrwxrwxrwx 1 www-user apache 18 Jul 6 16:29 scripts -> ../drupal6/scripts drwxrwxr-x 13 www-user apache 4096 Aug 6 18:10 sites lrwxrwxrwx 1 www-user apache 17 Jul 6 16:29 themes -> ../drupal6/themes lrwxrwxrwx 1 www-user apache 21 Jul 6 16:29 update.php -> ../drupal6/update.php lrwxrwxrwx 1 www-user apache 21 Jul 6 16:29 xmlrpc.php -> ../drupal6/xmlrpc.php Keeping the core Drupal installation in its own directory and symbolically linking to its files simplifies the process of maintaining it. New versions are put in the drupal6 directory and only the needed files and directories are linked in. The sites directory is managed in subversion.
23. Genesee Valley BOCES Catalog Research tools Student resources Teacher resources System contributed & school contributed
24. Genesee Valley BOCES Using Drupal as a framework Took everything that they could from contrib Wrote the rest sites/all/modules: contrib: calendar jquery_calendar spellchecker cck jstools tagadelic cck_redirection link taxonomy_super_select contemplate link_views_rss tinymce date nodequeue user_import devel panels views directory porterstemmer views_bonus faceted_search prepopulate views_podcast fivestar refine_by_taxo votingapi imagecache search_config workflow imagefield similarterms jcarousellite slidebox fish: bcckreview dedupe ez_amazon pathfinder custom details marc
36. Simon Fraser University LibraryThesis Submission/Management Replaces legacy submission app based on single CGI script and Excel files Allows students to submit their theses, inc. PDF and supplemental files Allows Library Thesis Office staffto Audit (i.e., approve) thesis Manage basic information about correspondence with student Manage “degree” records that contain details about departments, programs, etc. Allows Grad Records staff to get lists of students Going live mid October Mark Jordan <mjordan@sfu.ca>
40. Curation Tool Node import CCK Exhibit(using Josh Huckabee'stutorial - http://bit.ly/zv7LJ ) Allows us to import a spreadsheet of a lot of data and have very quick and powerful data filtering/visualization set up very quickly with the ability to curate the data at will which we did not have using Exhibit alone. Of course, once it's set up, adding data manually is pretty easy and we also have the ability to programmatically add new data records. William Hayes, PhD, Director of Decision Support, Biogen Idec<william.s.hayes@gmail.com>
43. Drupal 7 Currently in code freeze: Bug patches only With a few exceptions Release when it’s ready Expanded automated test coverage should shorten cycle #D7CX pledge http://bit.ly/121D6T - components ready on the day Drupal 7 is released
44. Drupal 7 changes - General Install consolidation Fewer pages with more logical arrangement Users can cancel accounts! Improved translation interface Improved and expanded help integration Administration theme More error reporting options
45. Drupal 7 changes - Theming Page template XHTML refactored More semantic class and ID names Friendlier to CSS only layout CSS only means no template changes needed (i.e. no PHP) Better JavaScript cross library integration JQuery 3.x Library calls are wrapped (function($) { $('a').fadeOut().fadeIn(); })(jQuery);
47. Drupal 7 changes - DBTNG Using PHP data objects (PDO) Direct support of MySQL PostgreSQL & SQLite Implied support for others Transaction support Replication support (master/slave) Potential for update automation Dynamic select queries Geek alert: Hook_query_alter replaces hook_db_rewrite_sql
48. Drupal 7 changes - DBTNG New static select query syntax Drupal 6: Drupal 7: $result = db_query("SELECTnid, title FROM {node} WHERE type = '%s' AND nid = %d", array($type, $nid)); $node = db_fetch_object($result); $node = db_query('SELECTnid, title FROM {node} WHERE type = :type AND nid = :nid', array(':type' => $type, ':nid' => $nid))->fetchObject();
49. Drupal 7 changes - DBTNG New dynamic select query: Drupal 6: Drupal 7: $result = pager_query(db_rewrite_sql('SELECTn.nid FROM {node} n WHERE n.promote = 1 AND n.status = 1 ORDER BY n.sticky DESC, n.created DESC'), variable_get('default_nodes_main', 10)); $select = db_select('node', 'n') ->fields('n', array('nid')) ->condition('promote', 1) ->condition('status', 1) ->orderBy('sticky', 'DESC') ->orderBy('created', 'DESC') ->extend('PagerDefault') ->limit(variable_get('default_nodes_main', 10)) ->addTag('node_access');
50. Drupal 7 – Field API CCK API -> core CCK UI -> contrib Not node specific Use fields in users, etc. Storage abstraction Multiple databases (potential) Amazon S3 (or …)
51. Drupal 7 – and more… File API Files are now first class objects hook_file_load(), _save(), _move() Registry Automatically caches functions, classes, interfaces $page object Image handling in core (maybe)
52. Drupal is not Magic It will not: Design your site Write your content Keep it up to date The real limitations are time and money You must start with a clear idea of what you want to accomplish Keep your initial install as simple as possible The beauty of a content management system is that it allows you to keep your site fresh The hell of a content management system is that, if your content is stale, you have nobody to blame