Drupal (from the Dutch. Druppel – drop) – Content Management System (CMS) written in PHP and uses as a repository content relational database (supports MySQL, PostgreSQL, and any database supported library PEAR).
Drupal is a free software license GPL-protected and created by the efforts of enthusiasts from around the world. Began development Dutchman Dries Buytaert, which still is the leader of the project.
Drupal architecture allows it to build different types of sites – from blogs and forums to information archives and news sites. Functionality is provided by plugins that access common API Drupal. A standard set of modules includes, for example, features such as news feed, blog, forum, downloads, news collector, voting, and other search large number of additional modules, greatly extend the basic functionality can be downloaded from the official site.
The most important functions provided by the module shipped with Drupal:
- Common categorization of all kinds of content – from of forum posts to blogs and news articles
- The inclusion of categories of any depth
- Content search site
- Access of users to the documents (role model)
- Dynamically builds a menu
- Support for XML-format:
– Output documents in RDF / RSS;
– Aggregation of material from other sites;
– BlogAPI to publish materials from external applications.
- Support the general authorization from one site to Drupal (“partner sites”)
- Short URL
- Support for switching themes site providing several ready-made
- Support transfer site interface to different languages
- The ability to create sites with overlapping content (such as the total user base, or general settings)
- Separate site configuration for different virtual hosts (including their own set of modules and themes for each sub-site)
- Mechanism to limit the load on the site (automatic shutdown at a high attendance of information blocks and modules)
The system supports the interface localization for different languages. There is support for Russian language. Uses its own mechanism for localization are transformed into the database, along with the rest of the site contents. In this case, simple is to adapt to working with the standard library gettext. Import and export translation site also takes the form of po-files (the format used by the library gettext).
Complete localization of content is supported by third-party modules (not supplied Drupal, but can be downloaded from the developer’s site.)
Methods of structuring the content
In Drupal offers a flexible scheme of the site structure based on taxonomy. Taxonomy – a mechanism that allows you to create any number of thematic categories for site content and associate them with the modules that provide input and output information. Categories may be flat or hierarchical lists or complex structures where the item can have multiple “parents” and several children. With this scheme the same modules can be arranged various options of structuring content. For example, is easily created through a list of “key words” for all site documents, etc.
Site Design by Drupal based on the changing themes. As such, no single scheme of constructing the design, instead of Drupal allows you to use various “engines” by using templates easy to edit (XML templates in the engines xtemplate and Smarty templates or HTML + PHP built-in engine phptemplate, etc.), or create themes directly access the API Drupal.
Starting with version 4.7 Drupal supports Ajax, for dynamic-loading content without full page refresh.
The undoubted advantages of Drupal should include a very complete documentation on the various aspects of the system (but only in English.)
Critics Drupal developers reproached poor use of object features PHP. Indeed, API Drupal uses almost no possible available in PHP OOP. Developers argument is weak in the OOP language (especially PHP to version 5). The object model in Drupal is present, but in a slightly non-traditional form of PHP. See motivation in the choice of the system architecture of Programming in Drupal terms of the PLO.
Due to extensive use Drupal database may be too heavy for the resources available on the cheap tariff plans of hosting providers, but for small sites with attendance of several hundred or thousands of visitors a day these resources will be sufficient.
Much depends on the literacy settings. Better to choose hosting, specifically tuned for Drupal: nginx 0.6.31 + php5-fcgi, for example.