RoundCube Documentation

Code Layout

Controller

  • The application controller (index.php) initializes all required classes
  • Configuration is read from config/main.inc.php and config/db.inc.php
  • Login to the IMAP server (-> user authentication) is done in index.php
  • Basic sequence: rcmail_startup() -> rcmail_load_gui() -> new rcmail_template() -> rcmail_template::send()

Tasks & Actions

  • index.php limits tasks to set list
  • and includes a specific PHP file for the requested action

View

  • Templates for each task/action are stored in skins/default/templates
  • In templates "<roundcube: />" tokens will be replaced with dynamic content by the rcmail_template class
  • All absolute paths (starting with "/") within the templates will be altered to point to the skin directory
  • Also AJAX requests are handled by the rcmail_template class

Directory structure

The root folder of a RoundCube installation contains the following folders:

config/
Home of the local configurations files
program/
All application files are stored in this folder.
These files will be replaced when upgrading the installation.
program/js/
Client JavaScript files
program/lib/
External libraries used for RoundCube
program/include/
Classes and core functions
program/localization/
Contains subfolders with localization files.
program/steps/
Include files for every task/action
bin/
Commandline tools and shell scripts for internal use
logs/
Contains log files. This folder has to be writable for the webserver.
temp/
Location of temporary saved files such as attachments and cache files
This folder has to be writable for the webserver.
skins/
Contains skin subfolders
SQL/
SQL files for database initialization and update. Only needed for installations or upgrades.

Important files

All requests from the client are sent to index.php. This index file loads all core components and establishes connections to the database and the IMAP server. It analyzes the request and then includes one of the step files. Direct access to config, log and temp folders should not be permitted.

For Apache webservers which allow local overrides, the .htaccess file includes some PHP configuration settings as well as file access directives. More .htaccess files are located in the protected folders mentioned above.

Code Documentation

See PHP Commons for common functions and global objects available in the RoundCube framework. For a detailed documentation please refer to the Online PHPDoc.

Database Schema

Database Schema (v0.1-rc1)

Attachments