A brief overview of Drupal 7 By Robin Isard, Systems Librarian Algoma University.

Slides:



Advertisements
Similar presentations
Drupal in the Enterprise
Advertisements

A Guide to Using Partner Publishers Resources (module 3)
White House New Media & Open Source Software Macon Phillips White House New Media.
Business Development Suit Presented by Thomas Mathews.
Repositories The Algoma University Experience By Robin Isard, Algoma University.
New Release Announcements and Product Roadmap Chris DiPierro, Director of Software Development April 9-11, 2014
Database System Concepts and Architecture
July 2010 D2.1 Upgrading strategy Javier Soto Catalog Release 3. Communities.
Seattle Drupal Clinic Introduction to Drupal and Web Content Management.
Using Drupal to connect Social Investors with Social Entrepreneurs.
Our aims ease the pain – for all our users get with the times better communication with our supporters recruit and engage people to our campaigns raise.
Drupal Create a website/web app quickly with this Content Management System Jiaying Xu Spring 2011 COMS E6125 Web-enHanced Information.
Attribute databases. GIS Definition Diagram Output Query Results.
Feeds Computer Applications to Medicine NSF REU at University of Virginia July 27, 2006 Paul Lee.
Sharepoint Portal Server Basics. Introduction Sharepoint server belongs to Microsoft family of servers Integrated suite of server capabilities Hosted.
The Dr ü G Book: An Intro to Drupal The Dr ü G Book: An Intro to Drupal (Dr ü G: Drupal User ’ s Group - users, not developers) This is an introduction.
Justin Klein Keane Drupal Training Session 1 Introduction to Drupal.
Drupal Workshop Introduction to Drupal Part 1: Web Content Management, Advantages/Disadvantages of Drupal, Drupal terminology, Drupal technology, directories.
Walking the walk and talking the talk… T HE L ANGUAGE OF D RUPAL.
Building Library Web Site Using Drupal
1 Web Developer & Design Foundations with XHTML Chapter 6 Key Concepts.
Installing CiviCRM onto Wordpress. How does it work?
Welcome to Drupal Crash course - Gartheeban Ganeshapillai.
Drupal Content Management System Mallikarjuna Pinjala CIS 764, Nov
SCHOOL OF INFORMATION UNIVERSITY OF MICHIGAN si.umich.edu Drupal: Configuration and Customization Week 4: Installation, Module Development January 25,
Crystal Hoyer Program Manager IIS Team Preview of features that will be announced at MIX09 Please do not blog, take pictures or video of session.
Drupal Training Syllabus Chaitanya Lakshmi
1. 2 introductions Nicholas Fischio Development Manager Kelvin Smith Library of Case Western Reserve University Benjamin Bykowski Tech Lead and Senior.
Content Strategy.
Content Management Systems Drupal. Content Introduction Setting up Drupal Structure Features Core functions Comparison of Joomla and Drupal Total Cost.
BZUPAGES.COM Presentation on Content Management System (CMS) Presented to. Sir Ahmad Kareem.
Nonprofit? There's an App for That! Drupal Modules for Activism, Donations and other Nonprofit #NYCCamp Benjamin J. Kallos iMediaEDGE
What is Drupal? Open Source software written in php. A CMS or content-management system. A sophisticated web application building tool.
Entities in Drupal 7 & the Entity API #sudrupalcamp April 6, 2013 JD Leonard ModernBizConsulting.com ModernBizConsulting.com ModernBizConsulting.com.
Data File Access API : Under the Hood Simon Horwith CTO Etrilogy Ltd.
GCMD/IDN STATUS AND PLANS Stephen Wharton CWIC Meeting February19, 2015.
1.Getting Started 2.Modifying Design 3.Page 4.News 5.Events 6.Photo Gallery 7.Newsletter Index Training 15 th Mar., 2011.
Office of Educational Technology School District of Philadelphia Introduction to Sites Google Sites This presentation is available at
DotNetNuke v3 Overview Stan Schultes Stan Schultes Enterprise architect / application developer Enterprise architect / application developer Conference.
University of Illinois at Urbana-Champaign A Unified Platform for Archival Description and Access Christopher J. Prom, Christopher A. Rishel, Scott W.
JavaScript, Fourth Edition Chapter 5 Validating Form Data with JavaScript.
Proposal for the new group web infrastructure SFT Group meeting 3/7/2009 Yves Perrin.
Introduction to Omeka. What is Omeka? - An Open Source web publishing platform - Used by libraries, archives, museums, and scholars through a set of commonly.
IFORM ACCOUNT MAINTENANCE ICT4D SESSION 4. IFORMBUILDER WEBSITE REQUIREMENTS To access the iFormBuilder website, you need the following items: -Reliable.
Seattle Drupal Clinic Introduction to Drupal Part 1: Web Content Management, Advantages/Disadvantages of Drupal, Drupal terminology.
Entities in Drupal 7 & the Entity API #sfdug March 11, 2013 JD Leonard ModernBizConsulting.com.
6 th Annual Focus Users’ Conference 6 th Annual Focus Users’ Conference Import Testing Data Presented by: Adrian Ruiz Presented by: Adrian Ruiz.
How does Drupal Work? Information Systems 337 Prof. Harry Plantinga.
 Registry itself is easy and straightforward in implementation  The objects of registry are actually complicated to store and manage  Objects of Registry.
Table of Contents TopicSlide Administrator Login 2 Administrator Navigations 3 Managing AlternativeDr.com Blogs 4 Managing Dr. Lloyd May Blogs 5 Managing.
CD Web XMS Training How to use the Xeno Media web site content management system.
Www2.computer.org Web Publishing Training Leo Wadsworth, Staff Manager April 2008.
Date : 3/04/2010 Web Technology Solutions Class: PHP Web Application Frameworks.
 Pages within our Framework  Categories within Framework  Products within Framework  Model-View-Controller description of Page, category and products.
Drupal Content Management System Mallikarjuna Pinjala CIS 764, Nov
+ Publishing Your First Post USING WORDPRESS. + A CMS (content management system) is an application that allows you to publish, edit, modify, organize,
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
How EPA/ORD Moved to Drupal 7 Jessica Dearie U.S. EPA, Office of Research and Development Office of Science Information Management.
INFM 700 Project 3 (Aqua) - Akashdeep Ray - Arnaud Lawson - Neha AR - Vidisha Vedvyas.
Thinking of Drupal 8? Get started with the resources.
1 Copyright © 2008, Oracle. All rights reserved. Repository Basics.
Joomla Awdhesh Kumar Singsys Pte Ltd. What is Joomla? Joomla is an award-winning content management system (CMS), which enables you to build Web sites.
How to use Drupal Awdhesh Kumar (Team Leader) Presentation Topic.
Web Technology Solutions
Building Library Web Site Using Drupal
Database System Concepts and Architecture
CONTENT MANAGEMENT SYSTEM CSIR-NISCAIR, New Delhi
Content Management Systems
Database Management Systems
Is a Content Management System in Your Future?
Presentation transcript:

A brief overview of Drupal 7 By Robin Isard, Systems Librarian Algoma University

What I'm going to look at Overview of Drupal 7 The module system How Drupal manages your data Case study – 2 years working with Drupal

What is drupal? Content Management System Becoming more of a Content Management Framework Created by Dries Buytaert, a Belgian computer science student in major releases since then Current major release is Drupal 7 As of 2011 approximately 630,000 subscribed users A drop

Architectural Overview Essentially a LAMP stack Modular Core Contributed Custom Themes Business logic intensive

Core Core modules Blogs Comments Aggregator (RDF, RSS, Atom feeds) Forums Polls Taxonomy (tagging) Menu customization Hierarchical ordering of content Tracking system Statistics OpenID login Logging Theming system Update manager Trigger system

Drupal community

Contributed modules Functionality and themes 9947 modules total 3929 compatible with Drupal 7 Content: 551 File Management: 90 Administration: 343 Themes: 298

IMCE

How modules work A collection of php files designed to implement some find of functionality /sites/default/modules mymod.info mymod.install mymod.module

.info name = Administration menu description = "Provides a dropdown menu to most administrative tasks and other common destinations (to users with the proper permissions)." package = Administration ; Purposively added for feature development. version = 7.x-3.x-dev core = 7.x project = admin_menu

.install /** * Install, update, and uninstall functions for the admin menu module. */ /** * Implements hook_schema(). */ function admin_menu_schema() { $schema['cache_admin_menu'] = drupal_get_schema_unprocessed('system', 'cache'); $schema['cache_admin_menu']['description'] = 'Cache table for Administration menu to store client-side caching hashes.'; return $schema; }

.module Hook system Php function Defined input and output Allows you to implement a certain behavior at a certain point in drupal core

Hooks _ () hook_user_load() mymod_user_load() 342 available hooks hook_comment_load hook_cron hook_css_alter hook_field_validate

Example /** * Implements hook_help(). */ function admin_menu_help($path, $arg) { switch ($path) { case 'admin/settings/admin_menu': return t('The administration menu module provides a dropdown menu arranged for one- or two-click access to most administrative Tasks … the menu.'); case 'admin/help#admin_menu': $output = ''; $output.= ' '. t('The administration menu module provides a dropdown menu arranged for one- or two-click....');

APIs Module system (Drupal hooks) Database abstraction layer (Schema API) Menu system Form generation File upload system Field API Search system Node access system Theme system

Data access and storage

Data management By default a LAMP stack Other database options available with more or less support Drupal 7 has a rewritten database abstraction layer PostgreSQL now a first class member of the community MongoDB Essentially uses Object-relational mapping

APIs Entity (core) Entity API Schema API

Important data management concepts Entities Users Taxonomy terms Comments Nodes Fields Entity + Fields = Bundles

Bundle - Example news_item (a node entity) + Date (field) Subject (field) = news_item bundle

Key entity hooks hook_entity_info() Entity (core) hook_schema() Schema API Entity API entity_create() entity_save() entity_delete() entity_view() entity_access().

function user_entity_info() { $return = array( 'user' => array( 'label' => t('User'), 'controller class' => 'UserController', 'base table' => 'users', 'uri callback' => 'user_uri', 'label callback' => 'format_username', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'uid', ), ' hook_entity_info()

hook_schema() function user_schema() { $schema['authmap'] = array( 'description' => 'Stores distributed authentication mapping.', 'fields' => array( 'aid' => array( 'description' => 'Primary Key: Unique authmap ID.', 'type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE, ), 'uid' => array( 'type' => 'int', 'not null' => TRUE, 'default' => 0, 'description' => "User's {users}.uid.",

hook_schema() Supports primary and foreign keys Supports indexes Field lengths Precision Signed / unsigned

Data storage example

public | node | table | public | field_data_field_db_access_link | table | public | field_data_field_db_build_name | table | public | field_data_field_db_description | table | public | field_data_field_db_ezp_note | table | public | field_data_field_db_ezp_test | table | public | field_data_field_db_sfx_name | table | public | field_data_field_db_url | table |

Data storage example TABLE: node nid | 164 vid | 164 type | db language | und title | Women Writers' Project uid | 1 status | 1 created | changed | comment | 1 promote | 0 sticky | 0 tnid | 0 translate | 0 TABLE: field_data_field_db_url entity_type | node bundle | db deleted | 0 entity_id | 164 revision_id | 164 language | und delta | 0 field_db_url_value | field_db_url_format |

Viewing your data Views module Still a contributed module Essentially a report writer Complicated Database API

An example: Algoma University's Archive

Algoma University Archive Over 25,000 images and documents 3 TB of data on scattered hard drives Most of the data important for legal purposes Index housed in InMagic-DBtextworks Relational like ASP driven No social media aspects No means to display the content in an engaging way

Questions we asked about a new CMS Service integration Is there documentation? Is there an API? Does it support data exchange protocols? JSON XML RDP

Questions we asked about a new CMS Data access and storage How does it store data? Does it have a CRUD layer? Can I get my data out of it in standard formats? CSV XML What options are there for non-sql data?

Migration 2010 project started to update the archive We chose Drupal because It seemed to answer the questions listed above of it's very large user community recommendations from peers it's ability to integrate with enterprise technologies like Fedora Commons and Solr It's social media abilities

Phase 1 Get the data out of InMagic and into Drupal Took nearly 4 months Process Dump the data out of InMagic as CSV files Import into PostgreSQL Use SQL to clean up and format the data Use migration module to import the cleaned up tables into Drupal

Phase 2 Use Drupal's extensibility to ability to meet archivist needs for the archive Problems with contirb Postgres Bad code Malfunctioning modules Dates Unix time stamp no good for archives

Phase 3 – in planning Migrate to drupal 7 Needs to be done No back-porting Drupal is now smarter about databases – which is a problem

Lessons learned - modules Drupal runs the show Always interact with Drupal via a module Stay as close to core as possible Is this the best possible module for the job? Put time into choosing modules When was the last commit? Do you understand the code yourself? Is there a plan to upgrade it? Read the code for you modules You should be able to fix it yourself

Lessons learned - database Drupal doesn't really like relational databases Do you know what a given module will do to the DB? Categories module Does it use MySQL specific statements? Use Fields and Views as much as possible Always interact with the DB via a module

The possibilities Database layer can be rewritten All kinds of data stores theoretically possible Can be conceptualized as simply a user interface for different kinds of data stores Discovery Solr integration Islandora Web services