230 likes | 554 Views
Drupal. Create a website/web app quickly with this Content Management System Jiaying Xu jx2129@columbia.edu Spring 2011 COMS E6125 Web- enHanced Information Management (WHIM). Content Management Systems (CMS). What is a CMS?
E N D
Drupal Create a website/web app quickly with this Content Management System JiayingXu jx2129@columbia.edu Spring 2011 COMS E6125 Web-enHanced Information Management (WHIM)
Content Management Systems (CMS) • What is a CMS? • A CMS allows for the management of website content in a user friendly way • Extension of web application framework that has additional functionality and is more user-friendly • CMS benefits • Clients can update content themselves • Separation of content and presentation • Easy to redesign website since content is stored in the database and inserted using page templates • Develop websites/web applications quickly • Utilize built in features such as user management and content management • Popular CMSs • Drupal, Joomla, Wordpress
Overview of Drupal • Open source • Maintained by many developers • Community • There are over 400,000 Drupal websites • DrupalCon yearly conference • Documentation • Extensive documentation on drupal.org written by Drupal community • Developer friendly • Functionality can be easily extended • Requirements • PHP, MySQL, web server (Apache) Usage statistics of Drupal from drupal.org, which only shows sites with the Update Status module enabled[1] Map showing the local Drupal groups around the world from drupal.org[1]
Sites That Use Drupal • Large variety of organization use Drupal • Corporate, Education, Entertainment, Government, Newspaper, Non-profit, Sports
Features of Drupal • Administrative interface • Web interface that allows admins to manage content, users, etc • Content Management • Allow users to create, edit, manage content without detailed knowledge of HTML/CSS • User Management • Built in user authentication • Management of adding, editing, deleting users • Menus • Easy to add pages to menus • Easy to display menus on website Content management admin page WYSIWYG editor seen when editing pages
Features of Drupal • Statistics • Tracks website usage - referrers, page hits, visitors, etc • Performance • Tune website performance with page caching and bandwidth optimizations of CSS and JavaScript files • File Uploads • Allows users to easily upload files • URL Aliases • Allows admins to define custom URL aliases for pages Recent log entries page Performance page
Drupal is Extensible and Themable • Modules • Open source add-ons to Drupal that extends its functionality • Over 7000 modules available and you can contribute your own module • Example modules • Pathauto: Generates automatic URL aliases for pages based on a pattern such as the page title • Content Construction Kit (CCK) • Views • Themes • Allows you to apply a design to your website • Over 800 themes available and you can contributeyour own theme Corolla theme[1]
Drupal Basics: Content • Nodes • All content are nodes • Content types • Page • Story • Add your own • Examples: Alumni Profile, Event, Lecture • Content Construction Kit (CCK) Module • Allows you to add custom fields to content types • Without using CCK, the only fields in a content type are the title and body • Custom fields can have type: date, email, file, image, integer, link, text Custom Alumni Profile content type with custom fields defined using CCK Creating an Alumni Profile node
Drupal Basics: Views • Views Module • User interface that allows you to select and display one or more pieces of content in a single view • Can create view from content nodes or users • Builds SQL query to select the content on the back end Example view to display board members of an organization Page rendered from view
Building a Job Database Web App • Functionality • Allow any visitor to post jobs • Jobs can be viewed and searched for • Basic steps • 1. Define a custom content type and CCK fields • 2. Create some sample job nodes • 3. Create a view • 4. Modify permissions Result of creating job database app in Drupal
1. Define a Content Type and CCK Fields Define a content type called job Create custom fields for the job content type
2. Create Job Nodes Create some sample jobs for the job database Page generated as a result of submitting the “Create Job” form shown on the left
SQL Select Statement Review SELECT – which table columns to retrieve WHERE – what to filter the results by ORDER BY – sort results of query 3. Create a View • This generates the main job database page that lists all the jobs in a table and allows for user searches and filtering • Fields (SQL select) • Add all the job fields that will be shown in the display • Filters (SQL where) • By default, a view shows all nodes • Specify that the node type is job • Add exposed filters so users can filter and search • Sort criteria (SQL order by) • Sort all jobs in descending order according to when the job was submitted • Style • Display the results in a table format Job database view SELECT node.nid AS nid, node.created AS node_created, node.title AS node_title, node_data_field_job_employer_name.field_job_employer_name_value AS node_data_field_job_employer_name_field_job_employer_name_value, node.type AS node_type, node.vid AS node_vid, node_data_field_job_employer_name.field_job_position_type_value AS node_data_field_job_employer_name_field_job_position_type_value, node_data_field_job_employer_name.field_job_paid_value AS node_data_field_job_employer_name_field_job_paid_value, node_data_field_job_employer_name.field_job_category_value AS node_data_field_job_employer_name_field_job_category_value, node_data_field_job_employer_name.field_job_location_value AS node_data_field_job_employer_name_field_job_location_valueFROMnode node LEFT JOIN content_type_jobnode_data_field_job_employer_name ON node.vid = node_data_field_job_employer_name.vid WHEREnode.type in ('job') ORDER BY node_created DESC Generated SQL query
4. Modify Permissions • By default, anonymous users cannot create content • Modify permissions to allow anonymous users to create job content Permissions page
Power of Drupal • Drupal is not just a platform for creating web pages • Allow developers to create both simple websites and powerful web applications • Applications that Columbia created using Drupal • Student Affairs - Student Groups Interactive Directory • Columbia College: Fellowship Database • Career Center: Internship Survey Database Student Groups Directory – ACM page
Bibliography • [1] “Drupal – Open Source CMS.” Drupal. http://drupal.org. • [2] Harrison, Davd. “The advantages and disadvantages of Content Management Systems.” http://daveharrison.net/articles/the-advantages-and-disadvantages-of-content-management-systems.