Drupal Content Management System Mallikarjuna Pinjala CIS 764, Nov
CMS? Application to manage public content. Identify users and roles. Manage multiple versions of content Capture content Constituent Interaction
History Creators: Dries Buytaert and Hans Snijder Small news site, builtin web board, drop.org. In 2001, software behind drop.org released as “Drupal” (droo-puhl).
Features Open Source Friendly URLs Personalization Modules Search Solid CMF Database Independent
Setup Download Drupal Rename the /drupal/sites/default folder Edit htaccess file. Create Database MySQL mysqladmin -u username -p create databasename createuser --pwprompt --encrypted --no-adduser --no- createdb username createdb --encoding=UNICODE --owner=username databasename Run automated Install Script
Installation
Setup Structure sites/default/settings.php sites/example.com/settings.php sites/example.com.site3/settings.php sites/sub.example.com/settings.php sites/sub.example.com.site3/settings.php sites/ sites/ sites/sub.example.com/settings.php sites/sub.example.com/themes/custom_theme sites/sub.example.com/modules/custom_module
Basic CM Page and Story Content Types Content Addition Edit/ Disable primary links Menus Alias Set up category
Administration Site Configuration (Dist authentication, Error reporting, Site Maintenance). Site Building (Blocks, Menus, Modules etc) User Management (roles, Access Rules..) Content Management
Complex DB mounted on Web
Components of Drupal Module system Based on the concept of “Hooks” Foo_bar (), Foo module name, bar hook name
Components (Contd.) Database Abstraction Layer Inherits PHP’s PDO Performs queries by db_query () or db_query_range ()
Menu System Follows hierarchy defined by paths. Page request is registered as a menu item with a callback. Searches for the most complete match with a callback it can find
Form Generation Processing and display of HTML forms drupal_get_form () drupal_execute () to submit forms programmatically.
File System File handling functions: file_create_url (), file_copy (), file_create_filename () etc. Search Interface hook_view (), hook_nodeapi () hook_search (), create a search tab for module. hook_update_index (), uses indexing scheme
Example Modules Restrict Node Access nd_access_ex_frm_alter (), nd_access_ex_nodeapi (), nd_access_ex_perm ()..Implementation of hook_* ().
Takeaways Open-Source Software –Buggy –Frequent updates –Support Community Simplicity –Minimize reliance on modules –Steer away from excessive and focus on the essential Tracking System –Document versioning & modules (sources & versions) –Helps tie-in with overall web strate
References Dries Buytaert, “Drupal” ( Open Source Content Management System), visited 11/04/ “Drupal” ( Content Management System), Wikipedia, 9 pp., visited 11/04/2008
Questions?
Questions? * What is the relation between Rails and Drupal (as relates to 764)? What similarities? What differences? What is language of web components, of business logic? What ORM? What DB’s can be used?
Other CMS … many Jahia