Features

Posa Doble has the following features:
- CMS and WebApp framework
- CMS5 was built as a WebApp framework with CMS capabilities.
- It has a strong front-end back-end design.
- The front-end being the website, the back-end being the CMS and WebApp environment.
- The front-end is optional, using only the backend makes it a WebApp.
- Completely built according to the Model-View-Controller (MVC) model
- Model = database
- View = client-side html, css and javascript
- Controller = serving the view to the user by using the model. It also navigates the user through the CMS (it knows which controller to call next).
- Webapp for desktop and mobile
- due to the responsive layout design the CMS can be used on desktop browsers and browsers on mobile phones.
- Dark mode
- Support for dark-mode and light-mode.
- Switch with the click of a button
- Sandboxed modules.
- Each module has it’s own “walled garden” to play in.
- Add extra functionality by developing your own modules.
- Zip it, offer it as a download and customers are able to install it by uploading it via the UI.
- Template engine:
- Simple, fast, powerful and flexible.
- No extra “template language” to learn, just use regular PHP code
- Support for skins and templates.
The skins are the layout that doesn’t change on a page (menu, header, footer)
The templates are the content of a page (the actual blog post for example)
- Pagebuilder support
- Built-in pagebuilder
- pagebuilder has support for mobile devices (responsive layout)
- when designing support for 3 viewports: desktop, tablet, mobile
- Use the built-in pagebuilder or develop your own pagebuilder, it’s up to you.
- Automatic form generation with a form builder
CMS5 can generate forms and- checks submitted values with validators (only numbers, email addresses, character whitelists/blacklists etc etc etc)
- built-in support for ReCaptcha
- built-in support for automatic CSRF tokens (Cross-Site Request Forgery)
- built-in support for an automatic honeypot against spam
- built-in retrieval of values from inputfields is by default XSS safe.
- Built-in DOM creator/editor
- render HTML documents: by building a tree-like structure of elements and convert it into HTML.
- HTML parser: read HTML, manipulate the DOM and render it.
- HTML DOM purifyer to filter for XSS (Cross Site Scripting)
- Spam detector
- a built-in spam detector that can be combined with the form generator
- TModel class
- a model class which allows building SQL-less queries.
- Designed to be database independent.
By using SQL-less queries, SQL dialects are abstracted away.
Write your own database class and talk to any relational SQL database you like (MsAccess, SQLite, Postgresql etc). - Atomic database transactions built-in by default.
Inserts are done with a “commit” and “rolled back” on failure to ensure data integrity. - Support for automatic incrementing 64 bit integer iID as primary key.
- Support for to manually maintained 64 bit integer iID as primary key.
- Support for a 64 bit iRandomID. This can act as primary key with non-chronologic numbering.
This prevents enumeration attacks with sensitive data on public websites (like order id, or customer id). - Support for UUID string as record identifier.
- Abstract controller class
- enables caching to file and session without hassle.
- It is even possible to cache only parts of a page!
- Multi language support
- CMS5 has multi language support out of the box.
- Separation of translation files (global, website-only, CMS-only, module-only).
Out-of-the-box it supports English, but translate the language files to your own language to make it available in your language. - The language files are easy to read and edit .CSV files.
- Localisation support
- Both framework and CMS support localisation (date, time and number notation can differ per region in the world)
- Localisation settings adjustable on CMS user level. Each user can set their own localisation and language preferences in the settings menu.
- Multi website support
- CMS5 has support for multiple websites out-of-the-box, not just one!
- Suppors for multiple language for each individual site.
- Easy authentication implementation
- Want built a login section on your website? i.e. webshop or tool?
Just inherit the controllers and authentication class and save yourself tons of time.- Flood detection on IP addresses, usernames, failed and successful login attempts and many more.
- fingerprinting the browser to limit chance of cookie stealing
- Want built a login section on your website? i.e. webshop or tool?
- Cronjob support
- For maintainance of the framework and your module to keep everything safe, fast and secure.
- Theme support
- You can create custom themes for the CMS back-end and front-end website.
- Create a fully customizable (white label) user interface and environment for your client (with their branding and functionality needs), without having to change the business logic.
- You can create new controllers and views while keeping the models
- You can easily switch between themes in the settings screen.
- Back-end themes operate completely independent of themes of the frontend website(s) and vice versa.
- Speed
- CMS5 is designed to be fast.
- No unnecessary usage of OOP (which is slow in PHP)
- if OOP is used, classes are flat
- not every module and library is loaded on every page load, only what is needed.
- Easy to use ratelimiter: just use 1 function: rateLimiter()
- Configuration files contain global constants, instead of expensive CSV, JSON, INI or XML operations.
- CMS5 is designed to be fast.
- Library
- extensive libraries with userful functions, like: lib_string, lib_inet, lib_types etc.
- send javascript notifications in an easy way to the browser
- extensive library of WebComponents with server-side counterparts:
- Checkbox – different styles and behavior
- Checkbox area – allows min and max amounts of checkboxes to be checked
- Combobox – allows tree structures, checkboxes and searching
- Context menu – right-click contextual menu with support for checking, icons and shortcut-keys
- Database filters – filter and search 1 or more database fields (strings, integers, booleans)
- Date picker, Time picker, DateTime picker – choose date and time with support for localized formats.
- Dialog message – shows messages to user
- File uploader – uploads files with progress bar and automatically converts and resizes images
- Info icon – more information upon mouse hovering
- Number picker – big + and – buttons for easy increment and decrement
- Progress bar – shows progress
- Spinner – animated spinning icon hides elements when starting and shows them when stopping
- Paginator – splits big record sets in pages for easy navigation
- Tabsheets – Automatically creates tabsheets out of <div> components inside, that are shown and hidden on clicking
- Security
- very easy-to-use built-in rate limiter: rateLimiter()
- flood detection and logging multiple credentials.
- blacklisting ip addresses and whitelisting ip addresses (enabled by default)
- Stealth mode can be enabled in config, then blacklisted and non-whitelisted IP addresses don’t get to see any pages of the CMS to protect against directory enumeration attack.
- TSysModel has default support for avoiding SQL injections
- Several functions in lib_file to protect against directory traversal attacks.
- Built-in features for XSS attacks (Cross Site Scripting) in forms and (server side) web components.
- Installer
- An automated installer helps you step by step through the process of installing and configuring your software
- The installer installs, updates and removes Archimedes from your computer or (web)server.
- Familiar interface, because it resembles well-known application installers