SlideShare a Scribd company logo
Drupal in Libraries Cary Gordon, MLIS The Cherry Hill Company http://chillco.com
Agenda A short chat about Drupal Modules (4849 at last count) A brief library tour Drupal as application framework Drupal 7 Resources
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
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
A Small Corner of the CMS Universe And about 1085 others (http://www.cmsmatrix.org/matrix)
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
Drupal is built… ,[object Object]
Each other,[object Object]
Drupal Lingo Node Comment Block Page Path Taxonomy Modules Themes Core Contrib
Drupal Technology Stack PresentationHelpers Drupal LAMP/???P
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)
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!
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
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.
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.
Example sites
Ann Arbor District Library
Darien Library
Darien Library
Darien Library SOPAC 2 http://www.thesocialopac.net/ Millennium integration (Locum) Locum is an abstraction layer between the ILS and Drupal
Genesee Valley BOCES
Genesee Valley BOCES
Genesee Valley BOCES Catalog Research tools Student resources Teacher resources System contributed & school contributed
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
Idaho Commission for Libraries
Troy Public Library <http://troylibrary.info>
Benicia Public Library - LLWIP
Camerena Memorial Library - LLWIP
Camerena Memorial Library - LLWIP
North State Cooperative Library System
Example applications
California State University San Marcos
California State University San Marcos Digital repository/archive Intranet/Extranet E-resource directory/manager Ian Chan <ichan@csusm.edu>
California State University San Marcos
SFU Library Thesis Assistant
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>
Albert R. Mann Library - Cornell
Anchor Archive Zine Library http://www.robertsstreet.org/n/searchinfieldsAmanda Stevens <amandastevens@zenbe.com>
Curation Tool William Hayes <william.s.hayes@gmail.com>
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>
McMaster University Guides http://library.mcmaster.ca/guides/
Islandora http://islandora.org/Module
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
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
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);
Drupal 7 changes – automated testing SimpleTest integration http://testing.drupal.org
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
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();
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');
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 …)
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)
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
Recommended Reading Building powerful and robust websites with Drupal 6, David Mercer ,[object Object]
Pro Drupal Development,Second Edition, John K. VanDyk
Cracking Drupal, Greg KnaddisonMUST READ!!!,[object Object]
Recommended sites Drupal Library Group - http://groups.drupal.org/libraries DrupaLib - http://drupalib.interoperating.info/ Drupal4lib mailing list – http://listserv.uic.edu/archives/drupal4lib.html
Can’t say it enough… Don't hack core!

More Related Content

What's hot

Docker 101 @KACST Saudi HPC 2016
Docker 101  @KACST Saudi HPC 2016Docker 101  @KACST Saudi HPC 2016
Docker 101 @KACST Saudi HPC 2016
Walid Shaari
 
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, OrchestrationThe Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
Erica Windisch
 
Docker 101 2015-05-28
Docker 101 2015-05-28Docker 101 2015-05-28
Docker 101 2015-05-28
Adrian Otto
 
04 02-2018--Slackware Wire Shark Installation
04 02-2018--Slackware Wire Shark Installation04 02-2018--Slackware Wire Shark Installation
04 02-2018--Slackware Wire Shark Installation
Alexander Bitar
 
Build service with_docker_in_90mins
Build service with_docker_in_90minsBuild service with_docker_in_90mins
Build service with_docker_in_90mins
Larry Cai
 
Docker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12XDocker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12X
Jérôme Petazzoni
 
From Docker to Production - SunshinePHP 2017
From Docker to Production - SunshinePHP 2017From Docker to Production - SunshinePHP 2017
From Docker to Production - SunshinePHP 2017
Chris Tankersley
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with Docker
Geeta Vinnakota
 
Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)
Ben Hall
 
6 Million Ways To Log In Docker - NYC Docker Meetup 12/17/2014
6 Million Ways To Log In Docker - NYC Docker Meetup 12/17/20146 Million Ways To Log In Docker - NYC Docker Meetup 12/17/2014
6 Million Ways To Log In Docker - NYC Docker Meetup 12/17/2014
Christian Beedgen
 
Docker for Developers - php[tek] 2017
Docker for Developers - php[tek] 2017Docker for Developers - php[tek] 2017
Docker for Developers - php[tek] 2017
Chris Tankersley
 
Deploying Symfony2 app with Ansible
Deploying Symfony2 app with AnsibleDeploying Symfony2 app with Ansible
Deploying Symfony2 app with Ansible
Roman Rodomansky
 
Docker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHPDocker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHP
Chris Tankersley
 
The How and Why of Windows containers
The How and Why of Windows containersThe How and Why of Windows containers
The How and Why of Windows containers
Ben Hall
 
Docker DANS workshop
Docker DANS workshopDocker DANS workshop
Docker DANS workshop
vty
 
Docker workshop
Docker workshopDocker workshop
Docker workshopEvans Ye
 
Kubernetes Story - Day 1: Build and Manage Containers with Podman
Kubernetes Story - Day 1: Build and Manage Containers with PodmanKubernetes Story - Day 1: Build and Manage Containers with Podman
Kubernetes Story - Day 1: Build and Manage Containers with Podman
Mihai Criveti
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
Liang Bo
 
Docker at Flux7
Docker at Flux7Docker at Flux7
Docker at Flux7
Aater Suleman
 
DCSF19 Tips and Tricks of the Docker Captains
DCSF19 Tips and Tricks of the Docker Captains  DCSF19 Tips and Tricks of the Docker Captains
DCSF19 Tips and Tricks of the Docker Captains
Docker, Inc.
 

What's hot (20)

Docker 101 @KACST Saudi HPC 2016
Docker 101  @KACST Saudi HPC 2016Docker 101  @KACST Saudi HPC 2016
Docker 101 @KACST Saudi HPC 2016
 
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, OrchestrationThe Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
 
Docker 101 2015-05-28
Docker 101 2015-05-28Docker 101 2015-05-28
Docker 101 2015-05-28
 
04 02-2018--Slackware Wire Shark Installation
04 02-2018--Slackware Wire Shark Installation04 02-2018--Slackware Wire Shark Installation
04 02-2018--Slackware Wire Shark Installation
 
Build service with_docker_in_90mins
Build service with_docker_in_90minsBuild service with_docker_in_90mins
Build service with_docker_in_90mins
 
Docker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12XDocker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12X
 
From Docker to Production - SunshinePHP 2017
From Docker to Production - SunshinePHP 2017From Docker to Production - SunshinePHP 2017
From Docker to Production - SunshinePHP 2017
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with Docker
 
Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)
 
6 Million Ways To Log In Docker - NYC Docker Meetup 12/17/2014
6 Million Ways To Log In Docker - NYC Docker Meetup 12/17/20146 Million Ways To Log In Docker - NYC Docker Meetup 12/17/2014
6 Million Ways To Log In Docker - NYC Docker Meetup 12/17/2014
 
Docker for Developers - php[tek] 2017
Docker for Developers - php[tek] 2017Docker for Developers - php[tek] 2017
Docker for Developers - php[tek] 2017
 
Deploying Symfony2 app with Ansible
Deploying Symfony2 app with AnsibleDeploying Symfony2 app with Ansible
Deploying Symfony2 app with Ansible
 
Docker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHPDocker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHP
 
The How and Why of Windows containers
The How and Why of Windows containersThe How and Why of Windows containers
The How and Why of Windows containers
 
Docker DANS workshop
Docker DANS workshopDocker DANS workshop
Docker DANS workshop
 
Docker workshop
Docker workshopDocker workshop
Docker workshop
 
Kubernetes Story - Day 1: Build and Manage Containers with Podman
Kubernetes Story - Day 1: Build and Manage Containers with PodmanKubernetes Story - Day 1: Build and Manage Containers with Podman
Kubernetes Story - Day 1: Build and Manage Containers with Podman
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
 
Docker at Flux7
Docker at Flux7Docker at Flux7
Docker at Flux7
 
DCSF19 Tips and Tricks of the Docker Captains
DCSF19 Tips and Tricks of the Docker Captains  DCSF19 Tips and Tricks of the Docker Captains
DCSF19 Tips and Tricks of the Docker Captains
 

Similar to Drupal in Libraries

Drupal Now! - Introduction to Drupal
Drupal Now! - Introduction to DrupalDrupal Now! - Introduction to Drupal
Drupal Now! - Introduction to Drupal
Alozie Nwosu
 
Doing Drupal: Quick Start Deployments via Distributions
Doing Drupal: Quick Start Deployments via DistributionsDoing Drupal: Quick Start Deployments via Distributions
Doing Drupal: Quick Start Deployments via Distributions
Thom Bunting
 
Introduction to Drupal - Installation, Anatomy, Terminologies
Introduction to Drupal - Installation, Anatomy, TerminologiesIntroduction to Drupal - Installation, Anatomy, Terminologies
Introduction to Drupal - Installation, Anatomy, Terminologies
Gerald Villorente
 
Getting Started with Drupal - Handouts
Getting Started with Drupal - HandoutsGetting Started with Drupal - Handouts
Getting Started with Drupal - Handouts
Rachel Vacek
 
LITA Preconference: Getting Started with Drupal (handout)
LITA Preconference: Getting Started with Drupal (handout)LITA Preconference: Getting Started with Drupal (handout)
LITA Preconference: Getting Started with Drupal (handout)
Rachel Vacek
 
Drupal is from Mars, Wordpress is from Venus: Finding your library's CMS soul...
Drupal is from Mars, Wordpress is from Venus: Finding your library's CMS soul...Drupal is from Mars, Wordpress is from Venus: Finding your library's CMS soul...
Drupal is from Mars, Wordpress is from Venus: Finding your library's CMS soul...
sbclapp
 
Taking your site from Drupal 6 to Drupal 7
Taking your site from Drupal 6 to Drupal 7Taking your site from Drupal 6 to Drupal 7
Taking your site from Drupal 6 to Drupal 7
Phase2
 
Drupal Resources
Drupal ResourcesDrupal Resources
Drupal Resources
Sarah Houghton
 
Drupal introduction
Drupal introductionDrupal introduction
Drupal introduction
Geshan Manandhar
 
Improving your Drupal 8 development workflow DrupalCampLA
Improving your Drupal 8 development workflow DrupalCampLAImproving your Drupal 8 development workflow DrupalCampLA
Improving your Drupal 8 development workflow DrupalCampLA
Jesus Manuel Olivas
 
Drupal4uic 2008 04 25
Drupal4uic 2008 04 25Drupal4uic 2008 04 25
Drupal4uic 2008 04 25
leoklein
 
field_guide_to_hadoop_pentaho
field_guide_to_hadoop_pentahofield_guide_to_hadoop_pentaho
field_guide_to_hadoop_pentahoMartin Ferguson
 
Drupal Overview For Techies
Drupal Overview For TechiesDrupal Overview For Techies
Drupal Overview For Techies
Robert Carr
 
Drupal Experience Sharing at Prime College
Drupal Experience Sharing at Prime CollegeDrupal Experience Sharing at Prime College
Drupal Experience Sharing at Prime College
guest08bc36
 
Drupal Experience Sharing At Prime College
Drupal Experience Sharing At Prime CollegeDrupal Experience Sharing At Prime College
Drupal Experience Sharing At Prime College
Geshan Manandhar
 
5 Important Tools for Drupal Development
5 Important Tools for Drupal Development5 Important Tools for Drupal Development
5 Important Tools for Drupal Developmentjcarrig
 
Drupal and the semantic web - SemTechBiz 2012
Drupal and the semantic web - SemTechBiz 2012Drupal and the semantic web - SemTechBiz 2012
Drupal and the semantic web - SemTechBiz 2012scorlosquet
 
Rapid site production with Drupal
Rapid site production with DrupalRapid site production with Drupal
Rapid site production with Drupal
Rob Sawyer
 
Drupal in-depth
Drupal in-depthDrupal in-depth
Drupal in-depth
Kathryn Carruthers
 
Drupal 7
Drupal 7Drupal 7
Drupal 7
Soni Amit K
 

Similar to Drupal in Libraries (20)

Drupal Now! - Introduction to Drupal
Drupal Now! - Introduction to DrupalDrupal Now! - Introduction to Drupal
Drupal Now! - Introduction to Drupal
 
Doing Drupal: Quick Start Deployments via Distributions
Doing Drupal: Quick Start Deployments via DistributionsDoing Drupal: Quick Start Deployments via Distributions
Doing Drupal: Quick Start Deployments via Distributions
 
Introduction to Drupal - Installation, Anatomy, Terminologies
Introduction to Drupal - Installation, Anatomy, TerminologiesIntroduction to Drupal - Installation, Anatomy, Terminologies
Introduction to Drupal - Installation, Anatomy, Terminologies
 
Getting Started with Drupal - Handouts
Getting Started with Drupal - HandoutsGetting Started with Drupal - Handouts
Getting Started with Drupal - Handouts
 
LITA Preconference: Getting Started with Drupal (handout)
LITA Preconference: Getting Started with Drupal (handout)LITA Preconference: Getting Started with Drupal (handout)
LITA Preconference: Getting Started with Drupal (handout)
 
Drupal is from Mars, Wordpress is from Venus: Finding your library's CMS soul...
Drupal is from Mars, Wordpress is from Venus: Finding your library's CMS soul...Drupal is from Mars, Wordpress is from Venus: Finding your library's CMS soul...
Drupal is from Mars, Wordpress is from Venus: Finding your library's CMS soul...
 
Taking your site from Drupal 6 to Drupal 7
Taking your site from Drupal 6 to Drupal 7Taking your site from Drupal 6 to Drupal 7
Taking your site from Drupal 6 to Drupal 7
 
Drupal Resources
Drupal ResourcesDrupal Resources
Drupal Resources
 
Drupal introduction
Drupal introductionDrupal introduction
Drupal introduction
 
Improving your Drupal 8 development workflow DrupalCampLA
Improving your Drupal 8 development workflow DrupalCampLAImproving your Drupal 8 development workflow DrupalCampLA
Improving your Drupal 8 development workflow DrupalCampLA
 
Drupal4uic 2008 04 25
Drupal4uic 2008 04 25Drupal4uic 2008 04 25
Drupal4uic 2008 04 25
 
field_guide_to_hadoop_pentaho
field_guide_to_hadoop_pentahofield_guide_to_hadoop_pentaho
field_guide_to_hadoop_pentaho
 
Drupal Overview For Techies
Drupal Overview For TechiesDrupal Overview For Techies
Drupal Overview For Techies
 
Drupal Experience Sharing at Prime College
Drupal Experience Sharing at Prime CollegeDrupal Experience Sharing at Prime College
Drupal Experience Sharing at Prime College
 
Drupal Experience Sharing At Prime College
Drupal Experience Sharing At Prime CollegeDrupal Experience Sharing At Prime College
Drupal Experience Sharing At Prime College
 
5 Important Tools for Drupal Development
5 Important Tools for Drupal Development5 Important Tools for Drupal Development
5 Important Tools for Drupal Development
 
Drupal and the semantic web - SemTechBiz 2012
Drupal and the semantic web - SemTechBiz 2012Drupal and the semantic web - SemTechBiz 2012
Drupal and the semantic web - SemTechBiz 2012
 
Rapid site production with Drupal
Rapid site production with DrupalRapid site production with Drupal
Rapid site production with Drupal
 
Drupal in-depth
Drupal in-depthDrupal in-depth
Drupal in-depth
 
Drupal 7
Drupal 7Drupal 7
Drupal 7
 

Recently uploaded

PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 

Recently uploaded (20)

PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 

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
  • 7.
  • 8.
  • 9. Drupal Lingo Node Comment Block Page Path Taxonomy Modules Themes Core Contrib
  • 10. Drupal Technology Stack PresentationHelpers Drupal LAMP/???P
  • 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.
  • 20. Darien Library SOPAC 2 http://www.thesocialopac.net/ Millennium integration (Locum) Locum is an abstraction layer between the ILS and Drupal
  • 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
  • 25. Idaho Commission for Libraries
  • 26. Troy Public Library <http://troylibrary.info>
  • 30. North State Cooperative Library System
  • 33. California State University San Marcos Digital repository/archive Intranet/Extranet E-resource directory/manager Ian Chan <ichan@csusm.edu>
  • 35. SFU Library Thesis Assistant
  • 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>
  • 37. Albert R. Mann Library - Cornell
  • 38. Anchor Archive Zine Library http://www.robertsstreet.org/n/searchinfieldsAmanda Stevens <amandastevens@zenbe.com>
  • 39. Curation Tool William Hayes <william.s.hayes@gmail.com>
  • 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>
  • 41. McMaster University Guides http://library.mcmaster.ca/guides/
  • 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);
  • 46. Drupal 7 changes – automated testing SimpleTest integration http://testing.drupal.org
  • 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
  • 53.
  • 54. Pro Drupal Development,Second Edition, John K. VanDyk
  • 55.
  • 56. Recommended sites Drupal Library Group - http://groups.drupal.org/libraries DrupaLib - http://drupalib.interoperating.info/ Drupal4lib mailing list – http://listserv.uic.edu/archives/drupal4lib.html
  • 57. Can’t say it enough… Don't hack core!
  • 58. Cary Gordon, MLISThe Cherry Hill CompanyLos Angeles, Californiahttp://chillco.comcgordon@chillco.com(310) 397-2999