SlideShare una empresa de Scribd logo
1 de 57
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!

Más contenido relacionado

La actualidad más candente

Docker 101 @KACST Saudi HPC 2016
Docker 101  @KACST Saudi HPC 2016Docker 101  @KACST Saudi HPC 2016
Docker 101 @KACST Saudi HPC 2016Walid 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, OrchestrationErica Windisch
 
Docker 101 2015-05-28
Docker 101 2015-05-28Docker 101 2015-05-28
Docker 101 2015-05-28Adrian 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 InstallationAlexander Bitar
 
Build service with_docker_in_90mins
Build service with_docker_in_90minsBuild service with_docker_in_90mins
Build service with_docker_in_90minsLarry 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 — SCALE12XJé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 2017Chris Tankersley
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with DockerGeeta 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/2014Christian Beedgen
 
Docker for Developers - php[tek] 2017
Docker for Developers - php[tek] 2017Docker for Developers - php[tek] 2017
Docker for Developers - php[tek] 2017Chris Tankersley
 
Deploying Symfony2 app with Ansible
Deploying Symfony2 app with AnsibleDeploying Symfony2 app with Ansible
Deploying Symfony2 app with AnsibleRoman Rodomansky
 
Docker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHPDocker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHPChris 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 containersBen Hall
 
Docker DANS workshop
Docker DANS workshopDocker DANS workshop
Docker DANS workshopvty
 
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 PodmanMihai Criveti
 
Docker module 1
Docker module 1Docker module 1
Docker module 1Liang Bo
 
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.
 

La actualidad más candente (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 a Drupal in Libraries

Drupal Now! - Introduction to Drupal
Drupal Now! - Introduction to DrupalDrupal Now! - Introduction to Drupal
Drupal Now! - Introduction to DrupalAlozie 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 DistributionsThom Bunting
 
Introduction to Drupal - Installation, Anatomy, Terminologies
Introduction to Drupal - Installation, Anatomy, TerminologiesIntroduction to Drupal - Installation, Anatomy, Terminologies
Introduction to Drupal - Installation, Anatomy, TerminologiesGerald Villorente
 
Getting Started with Drupal - Handouts
Getting Started with Drupal - HandoutsGetting Started with Drupal - Handouts
Getting Started with Drupal - HandoutsRachel 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 7Phase2
 
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 DrupalCampLAJesus Manuel Olivas
 
Drupal4uic 2008 04 25
Drupal4uic 2008 04 25Drupal4uic 2008 04 25
Drupal4uic 2008 04 25leoklein
 
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 TechiesRobert Carr
 
Drupal Experience Sharing at Prime College
Drupal Experience Sharing at Prime CollegeDrupal Experience Sharing at Prime College
Drupal Experience Sharing at Prime Collegeguest08bc36
 
Drupal Experience Sharing At Prime College
Drupal Experience Sharing At Prime CollegeDrupal Experience Sharing At Prime College
Drupal Experience Sharing At Prime CollegeGeshan 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 DrupalRob Sawyer
 

Similar a 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
 

Último

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 

Último (20)

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
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
  • 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