logo otto


MIT license

Developer documentation

jeff-flatpage is a jeff module that lets you store simple "flat" HTML content in a database and handles the management for you via jeff’s admin interface.

Use it for one-off, special-case pages, such as "About" or "Privacy Policy" pages, that you want to store in a database but for which you don’t want to develop a custom Jeff module.

The module is provided with english and italian translations, and a mysql statement for the table creation.

Media (images, videos) may be added to the page content, whose access may also be restricted to some system groups.

The access to backoffice administration is restricted to users having the flatpage admin permission.


Instructions on how to insert images and videos inside the page text are provided in the insertion form. Such elements may be inserted using custom tags like
{{image1 width=200 position:left lightbox:true}}



  1. Create the db table and add the admin permission executing the statements provided in the flatpage.sql file. This file contains the statements using the mysql syntax, change it for different DBMS.
  2. Insert the table definition provided in the project_tables.php file inside your same-name file. If you don't have one copy it inside your ROOT directory.
  3. Create a "flatpage" directory inside the "upload" directory under ROOT (for the images upload).
  4. Append the array elements inside languages/.php to your theme languages files (the default one is in ROOT/themes/default/languages/.php).
  5. Copy all the files inside view directory inside your theme view directory (the default one is ROOT/themes/default/view).
  6. Copy the whole flatpage directory inside your modules directory (ROOT/modules).
  7. Finished.
  8. Add an admin menu link to access the flatpage backoffice, the url is ROOT/admin/flatpage/manage.
  9. Enjoy it.


Surf the doc folder for developer documentation

Please report issues, bugs and what you like in the project github issues page.