This is the documentation for concrete5 version 5.6 and earlier. View Current Documentation

Compiled by JohntheFish with additional input from Jordanlev, Mainio, Mesuva and Greg Joyce

These are the sorts of things a beginner may find useful when first getting their hands dirty with Concrete5. Terminology, resources on the web and in books.

(Any ideas for additional resources to add - please PM)

HTML - Hyper Text Markup Language

HTML is the language web pages are written in. It consists of text that is structured by tags. When you look at it in a text editor, tags look like <tagname> and </tagname> to mark the start and end of what a tag applies to. What tags do is further controlled by attributes.

Within a tag, attributes look like <tagname attributename="attribute value" >

The most confusing mistake beginners make with HTML is to not end a tag. For example, if a block is started with <div> and not ended with </div>, it will carry on forever and distort how everything below it is shown on the page.

Concrete5 outputs web pages as HTML, but you don’t need to know anything about HTML to write content for your Concrete5 site.

CSS - Cascading Style Sheet

Whilst HTML tags create the structure of a web page, how that is formatted on a web browser is controlled by styles defined in a style sheet. The ‘cascading’ part comes from the way multiple styles and style sheets interact to come up with the final way an HTML page is formatted.

Concrete5 themes use CSS to make web pages look good. When you use the Concrete5 dashboard to change the font or colour of text across your site, Concrete5 changes the CSS for you.

PHP - PHP: Hypertext Preprocessor (a recursive acronym)

PHP is a computer programming language used to make the HTML for web pages interact with the user (or with other things like a database). A web page that is written in HTML is static like a printed page of paper. Using PHP with HTML enables the page to become dynamic, doing things like reading information from forms and showing the results.

Concrete5 is written in PHP, but you don’t need to know any more unless you want to write blocks, add-ons or themes.

MySQL Database (My Structured Query Language)

A database is a way for a computer to store and organise information. MySQL is the name of a popular database used by Concrete5. PHP interacts with the MySQL database using SQL, which is another computer language designed for working with databases.


JavaScript is a programming language that can be sent with a web page to execute on a web browser. Things like picture galleries, dropdown menus, content sliders and tabs all use JavaScript to do their magic.

You don’t need to know JavaScript to write Concrete5 blocks, addons or themes, but you will need to if you want to start adding special effects or jQuery.


jQuery is a library of JavaScript programming. It is used extensively by Conrete5 and addons to make complicated JavaScript easier for developers to provide special effects and behaviours on web pages.

AJAX - Asynchronous JavaScript and XML

AJAX covers a series of mechanisms that JavaScript running on a web page in the browser can communicate with the web server, and hence Concrete5, without changing the web page. Many add-ons use AJAX to provide advanced functionality and Concrete5 uses AJAX when you edit a page. Fortunately, you don’t need to know anything about such advanced stuff as Concrete5 user.

Web Server

A web server is a computer set up to ‘serve’ web pages. The most popular software to do this is called Apache. Web servers are usually provided by web hosting companies. Each Concrete5 web site runs on a web server. Web browsers in PCs, Macs and iPhones connect over the internet to web servers to view web sites.

PHP and MySQL reside on the web server with Concrete 5. They send web pages as HTML and CSS to web browsers.

CMS - Content Management System

A CMS runs on a web server and provides a way of creating and managing a web site without having to know HTML or any programming such as PHP or JavaScript. Concrete5 is a CMS. Unlike conventional web sites where your pages map to HTML files, with a CMS your pages don't actually exist and are created as needed from tables in a database such as MySQL.


Even with computers and the internet, some things take a (relatively) long time or lot of resources to process. Rather than keep on repeating that processing, software can keep a note of the results and just refer to the notes. Such notes are a 'cache'.

Suppose someone asked you to go to the local library and look up something from a book. If a few hours later they asked you the same question again, rather than going to the library again, you can just pull out your notebook and say 'well, this is the answer from last time you asked me'.

Of course, the book you looked at may change. Perhaps a new edition is published each year. So as well as making a note of the answer, you would also make a note of when the next edition of the book is due to be published. That way you will know when you really need to go to the library again rather than just pull out your trusty and well worn notebook.

In computer terms, what you have written in your notebook is a cache.


Its why you are here. Don’t forget that many questions you may ask on the forums are already covered by the Developer’s Guide and by Howtos.

Read more How-tos by JohntheFish

Loading Conversation