Drupal Intro: An Overview of The Architecture, Features and Basic Site-Building Workflow of The CMS
Drupal Intro: An Overview of The Architecture, Features and Basic Site-Building Workflow of The CMS
Drupal Intro: An Overview of The Architecture, Features and Basic Site-Building Workflow of The CMS
An overview of the architecture, features and basic site-building workflow of the CMS.
Chris Neglia and Lisa Forgan
Copyright 2009 Page1solutions, LLC
What is Drupal?
Open Source software written in php.
What is a CMS?
Simply put, a CMS is a website you build using the website itself.
Wikipedia definition: A content management system (CMS) such as a document management system (DMS) is a computer application used to manage work flow needed to collaboratively create, edit, review, index, search, publish and archive various kinds of digital media and electronic text.[1]
Drupal was designed to be more of a generalist: its for making anything and is far more robust.
Wordpress could be the better choice for blogs since it is better at being a blog than Drupal. This is something of debate.
Wordpress is still a sound choice of CMS for SEO and security; so if wordpress satisfies a simpler projects requirements then by all means use it- it is easier and faster to set up than Drupal.
Wordpress is not designed to be highly scalable to many simultaneous users, nor does it have flexible roles, permissions, extensible content types, nor does it have plentiful well-tested, quality add-ons. It has a few and a lot of really poor plugins. Caveat: Trying to force Wordpress to do something it cannot do easily with very popular plug-ins can be worse than suffering the learning curve of Drupal.
What is a UI?
UI is a user-interface, which is a general term for the layout of options, widgets and settings used to configure the system or manage content. Site-building activities refer to configuring settings or managing content through the UI, such as building navigation menus.
Drupal Structure
Drupal is a database-driven (dynamic) application. It requires a database. Drupal has a core filesystem whose functionality can be extended using the UI itself, modules and themes. The UI settings are stored in the database.
Modules
Packages of files in a directory that you upload into drupals module space (/sites/all/modules) Add functionality to drupal Core Modules come shipped with drupal
Themes
Packages of files in a directory that you upload into drupals theme space (/sites/all/themes) Themes adjust the site layout and style. Like skinning your media player.
Drupal Database
Drupals database tracks things like : Site and Module settings, Users information, Access information, Logging information, Permissions and User Roles, System Paths Content and content metadata
Nodes
A node is the primary form of content in a drupal site. At a minimum it is a title and a body, and can be specialized.
A page and story for example are node types that have a specific node settings. A node type is a blueprint for creating instances of content of a particular type.
Nodes (cont)
Not everything in Drupal is a node. This is important!! Ex: A user is not a node. A taxonomy is not a node. An account is not a node. Knowing this is important for evaluation of what can and cannot be easily done through the UI, without additional programming.
Think of the content region as a big node block that allows other blocks in it but the node itself cant move.
Blocks
Blocks are added by modules. Blocks can contain views, widgets, menus, nodes (in special circumstances), and panels. Blocks can be moved around through the UI Blocks can be styled individually.
Additional Terminology
Views an interface for making customized lists of the data contained in the drupal database. Panels an interface for making customized layouts of nodes available to the panels module. Widgets a general term for interactive form elements or graphs that are enabled by modules.
Admin Menu
The administrative menu is a part of the UI that allows one to configure Drupals settings. The settings available depend on which modules are installed and enabled.
Users
All CMSes (wordpress, Joomla, Drupal) have a user login system; users have a username/pw. Drupal also supports the concepts of 1) Roles and 2) Permissions.
Roles are user designations to groups having the same set of permissions.
Anonymous User
A (not-logged-in) site visitor is called a guest, visitor or anonymous user. Has a user-id (uid) of 0 (zero). All anonymous users belong to the anonymous user role (a role ID of 1) and have a set of permissions assigned to them.
Authenticated User
A user in drupal may belong to one or more roles. Every registered user in Drupal belongs to at least the authenticated user role. Authenticated user role has a role ID of 2
Managing Permissions
KEY concept: if you grant permission to an authenticated user, it applies to ALL roles except the anonymous user. To grant a permission to everyone on a site, you must grant the permission to both the anonymous user and authenticated user.
Managing Permissions
To grant permission to only a newly created dentist role, tick the permission on that role. Leave all the other roles deselected. If you grant to both the dentist role AND the authenticated user role, you would be doing it wrong. Drupal assumes you know this.
Contact your local IT support for assistance or consult the drupal handbook for more info. For the purposes of this demo, its not important but it -is- important to enable later.
Click Primary Links On the Primary Links List Items page, click Add Item In Path, type contact. In Menu link title, type Contact Form. Change weight to 50 (drupal 6.x; 10 in drupal 5.x) Click Save. You will notice that Contact Form appears now on the far right of your primary links. Click it to go to the contact form.
If all else fails, call Chris or Alex to build a GUI interface in Visual Basic to track down the perpetrator in realtime.
Installing Modules
Download (from drupal.or) and Unpack module tarballs (*.tar.gz) files to the folder inside. Upload the module folder to <drupal_root> /sites/all/modules. Create the modules and themes directories if they are not there.
Go to Administer > Site Building > Modules : and tick Enabled next to the module to enable it and click Save Configuration
Using Modules
A newly enabled module will add an administration menu. Go to that module and read the help before changing anything. Play around and learn its feature set.
Install the Advanced Help module to get more verbose help with modules.
Token
Actions
Triggers Messaging, Messaging API Path Redirect Html Purifier Taxonomy Manager
Notify Mime Module & messaging-phpmailer Global Redirect Page Titles Scheduler
Webform SEO Compliance Checker Meta Tags XML Sitemap Wysiwyg-api, imce FCKeditor | TinyMCE Auto Assign Role (+patch)
SEO Checklist Search404 Printer-friendly pages Captcha & Mollum || Spam Addthis || Diggthis Sharethis
Google Analytics
Menu Attributes
Guestbook
Simplenews
Ubercart
CCK
SEO Compliance Checker Meta Tags New XML Sitemap Ubercart FCKEditor Triggers
Views
Pathauto
Global GEOurl Site Map Date IMCE Notify Guestbook
String Overrides
Path Redirect
Html Purifier Taxonomy Manager Mollum / Spam Chaos Tools + Delegator Scheduler Simplenews
GoogAnalytics
SEO Checklist
Path + Pathauto
Path Redirect
Global Redirect
Search404
Meta Tags
Global GEOurl
Html Purifier
Page Title
Menu Attributes
Site Map
Search404
Menu Attributes Auto Assign Role (+patch) WYSIWYG API Actions
Meta Tags
New XML Sitemap Ubercart FCKEditor Triggers Date
Global GEOurl
Site Map
Html Purifier
Taxonomy Manager Mollum / Spam
Page Title
Token Captcha
IMCE Notify Scheduler Chaos Tools + Delegator Guestbook Simplenews Panels GoogAnalytics
Addthis / Diggthis/ Sharethis Advanced: Advanced: Apache Solr Search (we cannot support yet)
Blarland an evil copy of garland. Place it in sites/all/themes and change the name of garland to blarland in folder, and file names esp in the info file.