180 likes | 311 Views
Drupal for UCSC Web Coords. by Shawn Seley May 20, 2008. Goals for this presentation. Answer some basic questions Demo a Killer feature of Drupal A quick taste of Drupal administration screens A sampling of how to use Drupal as a framework 15+ minutes at the end for questions.
E N D
Drupal forUCSC Web Coords by Shawn Seley May 20, 2008
Goals for this presentation • Answer some basic questions • Demo a Killer feature of Drupal • A quick taste of Drupal administration screens • A sampling of how to use Drupal as a framework • 15+ minutes at the end for questions
So … am I drinking the Kool Aid? • The Kool Aid that I am drinking is this Web Coords group • What I’m really interested in promoting is that we work towards common standards • Learn from each other • Share each other’s work • Collaborate with each other • Drupal is only what I see as a good means towards that end….
What is Drupal? Drupal is 3-in-1 • Content Management System (CMS) - very light weight, but fully extensible • CMS framework for rapid custom features • Programmingframework for layered-code web application development
What is a CMS? • Manage web based content • Separation of content from display • Example: by clicking a radio button, I can change a whole site’s look….
So, what is a programming framework? • Buzzword with an obscured meaning • More than a library. In a library the programmer’s code calls on library components • But in a framework, the framework calls on the code written by the programmer • Programming customizes and extends the framework
Benefits of a framework? • Faster development (twice as fast?) • Standardized for collaboration • Facilitates best practices • Facilitates code reuse by separating logic into layers • Data • Business logic • Presentation • Leverage the work of others
Why not a different CMS? • WordPress: not a programming framework • Joomla: requires a separate installation for every site (hard to maintain more than a few) • Plone: written in rarer Python language, and known for a steeper learning curve • Sharepoint (MOSS): (no in-depth comparisons) not open source, requires Windows servers, also I suspect it to be less standards compliant (?), and as a framework it requires knowledge of C# and ASP.net … I suspect it has a higher learning curve (?)
What makes Drupal special?(Killer features) • No-code rapid (basic) custom web apps • Proven scalability (400+ sites on one installation, able to support very high traffic) • Best blend of power and ease. A good solution for simple/small sites as well as for big/complex sites. It’s the one that I can recommend to the greatest number of web developers here on campus … and that’s my Kool Aid
No code web applications? • Caveat: basic web applications • Two downloadable modules: • Content Construction Kit (CCK) • Views • Extremely widely used in production on Drupal 5, but still in development for Drupal 6 (used in this demo)
CCK • Wizard interface for creating custom web forms • Automatically creates new database fields and the code to populate them • Automatically informs the Views module about these fields • Also has its own programmer’s API
Views • Wizard interface for creating database driven lists/reports • Handles table relationships automatically • Many options for data formatting, sorting, and filtering … even according to passed URL arguments • Output is completely themeable with both HTML and CSS • Also has its own programmer’s API
Web app example • As a proof of concept, I created a little project-tracking web application … entirely through CCK and Views (and Fivestar) • Staff submit their projects via a web form • Divisional Liaisons then go in and discuss via comments and assign star rating to each project … the highest average star rating gets worked on first • [demo CCK, Views, and their permissions]
Drupal as a programming framework • Simple example from my own module • This code (called a “hook” in Drupal) function randomqoute_perm() { return array('access randomqoute content', 'display edit link'); } • Produces these checkboxes for the administrator
Which can then be checked by using code like this if (user_access('display edit link')) { print ' (' . l('edit', 'node/' . $quote->nid . '/edit') . ')'; } • To produce this output on the home page when viewed by a content editor:(highlighting added for clarity)
Drupal Developers Group? • I know there is interest in Drupal, but I’d rather not dominate the Web Coords group with the details of how to use it • So, for those developers who are interested in using Drupal please email me at shawnse@ucsc.edu