Drupal
From DocForge
Drupal is a web-based content management system (CMS) written in PHP. Its supported data sources are MySQL and PostgreSQL.
Contents |
[edit] Features
- Easy installation - after installation all configuration options are available through the administrative section of the web site. Additional modules are installed by unpacking into a directory and turning on the modules through the administrative section.
- Easy upgrades with an automated update script to handle database changes.
- Many themes available and new themes are relatively easy to implement.
- Common CMS features are included in built-in standard modules, including blogging, forums, user profiles, categorization (taxonomy) and comments.
- Role-based access control provides granular security. Roles can be added by an administrator and assigned to users. Two default roles are "anonymous user" and "authenticated user". Permissions (such as "create pages", "post comments", and "select different theme") are assigned to roles.
Features of interest to software developers:
- Drupal is written in the functional programming paradigm. Objects are used for passing basic data elements, such as users and nodes.
- Drupal is a modular system down to the core. Creating basic modules is very simple. New content types are created by writing modules.
- The basis for all content is one data type called a node. This allows all functionality for nodes to automatically support new content types. For example, all content types can be organized by taxonomy. New content types are created by expanding the features of a basic node.
- Simple permissions are added by each module and automatically maintained by administrators from an access control page.
- Built-in RSS syndication.
- Internal application logging.
- Execution is procedural, with complex data passed as objects.
- The developer's mailing list, forums, and ticket system are very active.
- The highest levels of the development team are very strict about the quality of contributions. Every contribution is heavily scrutinized before being accepted into the core of the project code.
- Multiple theming options, functional or through a theme engine.
[edit] Terminology
Drupal consistently uses a set of terms to describe various aspects of the application.
- Node is the fundamental data type of basic content, what you might call a document. All document types are extensions of nodes.
- A block is a section of HTML displayed anywhere around the main content. Blocks can be created within modules or through the administrative system. Blocks can also be turned on and positioned through the admin.
- Taxonomy is the organized set of categories. Sets of categories can be used for multiple or single node types.
- A module, as one would expect, is a set of functions following an API naming convention and typically included in one file in the modules directory or subdirectory of modules.
- A theme, also as one would expect, is a set of files and/or functions defining most of the layout, HTML, and CSS of the application.
[edit] Configuration Issues
When attempting to use Drupal with PHP 5.2 connecting to MySQL, the "mysqli" driver must be set in settings.php. The "mysql" driver will run SELECT SQL queries but not properly execute UPDATEs. The first symptom you may notice for an improperly configured Drupal installation is the inability to remain logged in. The first page displayed after logging in will look correct, but proceeding pages will show you are not actually logged into your Drupal installation.
[edit] See Also
- Drupal Project Homepage
[edit] Documentation
- Drupal Handbooks for users, administrators, and developers
- API Reference for module, theme, and core developers
- Forms API Reference

