Are you a developer interested in Concrete? You're probably interested in information about Concrete's underlying structure. As an application framework, Concrete features:

  • Integration with the popular, powerful ADODB Database Framework, which allows exposure to the following database functionality:
    • Data Portability: while Concrete CMS has only been tested extensively with MySQL, it should be mostly portable to other databases like PostgreSQL.
    • Database schemas for blocks and the site's tables are defined in XML, allowing them to be easily modified and imported across upgrades, using ADOXMLS
    • Data caching at the query level
    • A simple ActiveRecord pattern, which is used to make adding custom block types a breeze.
  • A built-in user authentication (including OpenID) and powerful permissions framework
  • Extensible metadata about users, pages and files. Define attributes for pages/collections and users, and reference them programmatically with ease. Use this metadata for your own purposes, or expose them to your users through automatically created HTML forms.
  • A powerful file manager which enables custom file-type-based editing, viewing and metadata import.
  • Create block types for small bits of unique content types, page types for templates, and static pages for one-off pages/forms on a site, then package them into Concrete 5 packages. Packages can even include dashboard pages and modules.
  • Static pages and reusable page types alike can employ a powerful Model-View-Controller syntax that makes adding special application logic into your Concrete apps a breeze.
  • A powerful, consistent API for common tasks, including:
    • User creation
    • Page creation
    • Block and Block Type Creation
    • Adding Blocks and Attaching them to Pages
    • more...
  • While pages are collections of blocks that are intended to be shown to end users, collection themselves don't have to have a presentation layer; they can easily just be generated by a unique key, and used behind the scenes as a way to group blocks together.
  • Helpers for assisting with common web-related tasks like validation and sending mail, and libraries for core application functionality.

Recent Discussions on this Topic

Release: Beginner's guide to editing v1.0

Hello all (I'm starting a new thread because the other one went off on a tangent a bit) Below is a link to the second draft of my concrete5 beginner's guide to editing. It's designed for clients who will be editing websites, so as such it doesn't co…

Is basic_test still working on concrete5.6.0?

Hi I downloaded and installed basic_test from and encountered the following warning: Warning: require_once(/var/www/concrete5.6.0/concrete/block…


Can I install backup files in a new installation? Where do I find define ('PASSWORD_SALT in data base table. Issues after transfer. ('PASSWORD_SALT was not used in Config.file set up for data base. Installed by simple scripts.

Connecting to Fox Pro DBF Files

Hi there, I am just wondering if anyone has ever tried connecting to a FoxPro as datasource/database instead of MySQL. I have been digging the net for days but unable to find a good solution. Here are some of the approach i did but all failed to …

System Defined Templates fallback to view.php NOT default.php

For page types you create yourself as indicated in this documentation if you make a page type named "car" and there is no "car.php" page template then "default.php" will be used to render all pages of the car page type. However, system-defined template su…