The QuickApps core team is excited to announce the release of QuickAppsCMS
2.0.0-beta1. QuickAppsCMS has been entirely rebuilt from scratch based on
CakePHP v3.0. This major release causes QuickAppsCMS to be incompatible with any
previous version, however we are introducing several exciting new features, all
aimed to facilitate developers to extend this platform.
Below is the list of new features and changes introduced in this major version. For
more specific details take a look to the new QuickBook.
CakePHP 3.0
QuickAppsCMS has been rebuilt from scratch based on the brand new CakePHP v3.0. We
have taken advantage of the new CakePHP features such as ORM, Event System, etc. to
incorporate them into QuickAppsCMS.
The new version of QuickAppsCMS has been designed to work as a standalone
application that can be installed using Composer. However you can "extend" its
functionalities by creating and installing new plugins or themes. QuickAppsCMS
introduces almost zero conventions in addition to CakePHP's, so creating new plugins
for both platforms is exactly the same.
Composer Compliant
QuickAppCMS 2.0 is fully compliant with Composer's packages and CakePHP's community
plugins. Plugins can be installed using an interactive Web UI. Although package
dependencies are fully supported, QuickAppsCMS will not install those dependencies
as Composer does.
Plugins & Themes
As introduced in CakePHP 3.0, plugins and themes are now the same. Nonetheless, in
QuickAppsCMS any plugin suffixed with the Theme
word will be automatically
considered a QuickAppsCMS Theme.
The old <PluginName>.yaml
configuration file has been replaced by composer.json
.
Now building plugins/themes either for QuickAppsCMS or CakePHP is exactly the same.
Check Composer installation instructions available at this link.
jQuery & Bootstrap
Twitter Bootstrap & jQuery libraries are now included, by default, on every
QuickAppsCMS installation. Furthermore, all the templates or any HTML code generated
automatically by QuickAppsCMS will follow Bootstrap conventions (CSS class names,
Grid system, etc). Likewise, every JS script automatically generated by QuickAppsCMS
is created with jQuery in mind.
Two new plugins have been included (Bootstrap
& jQuery
) for dealing with such
libraries, providing a few generic helpers to assist you.
New Hook System
A more flexible and consistent Hook System has been built on CakePHP's Events
System. Triggering or creating events has never been easier. Attach the new
HookAwareTrait
trait to your classes and your are ready to go:
$this->trigger('MyEventName', $arg1, $arg2, ..., $argn);
This trait is by default attached to Controller, Helper and View classes. Check the documentation for more details.
Shortcodes
Shortcodes system has been rebuilt as well, changing the way they work and how they look:
{my_shortcode color=red} Content of my hook tag {/my_shortcode}
Shortcodes are now globally parsed before content is presented to users, this allows you to use shortcodes absolutely anywhere you wish; in yout contents, in your template files, etc.
Check the Shortcode API.
EAV & Field APIs
QuickAppsCMS's flexibility comes mainly from its Field API (a.k.a. Drupal's CCK),
which allows to create and define virtually any content type. Although this API
worked just fine in early version of QuickAppsCMS, its complexity was its major
weakness; creating new Fields was a complex task.
In v2.0 a new EAV API
has been introduced, which provides a generic implementation
for EAV data model. The Field API has been rebuilt on top of this new API in
combination with the new Hook System. Furthermore, several utility classes has been
introduced to assist you when creating new Fields.
Check the Field API documentation for further details.
User Notification API
A new Notification API has been introduced in QuickAppsCMS 2.0 to better deal with
mailing users. This API provides a very simple mechanism for defining and sending
email messages to any registered user in the system, for example:
$user = $this->Users->get($id);
$result = NotificationManager::welcome($user)->send();
Check Notification API documentation.
Search API
The new Search API allows entities to be search-able through an auto-generated index
of words. It also provides searching methods for filtering Entities using human-
readble criteria, for instance:
$criteria = '"this phrase" OR -"not this one" AND this';
$nodes = $this->Nodes->search($criteria);
Search Operators
An Operator is a search-criteria command which allows you to perform very specific
filter conditions in your SQL queries. An operator is composed of two parts: a name
and its argument, both parts must be separated using the :
symbol, e.g.:
// operator name is: "created"
// operator argument is: "2013..2016"
created:2013..2016
And it can be used as follow:
$criteria = 'created:2013..2016 AND "has this title"';
$nodes = $this->Nodes->search($criteria);
Check the Search API documentation
Block & Region APIs
The Block API has been rebuilt. It is now more flexible and robust, allowing to
create Widget
blocks in a simple way. Also, the way blocks are rendered in your
themes has changed:
echo $this->region('left-sidebar');
The new Region API allows to do nifty things such as combine two or more regions, or
limiting the number of blocks it can hold:
echo $this->region('left-sidebar')
->merge($this->region('right-sidebar'))
->blocksLimit(3);
Checks the designer guide for further information.
What's Next
This beta release will be the first of two Beta releases, meaning there will be one
more Beta version and at least one RC version before releasing the final and stable
version of QuickAppsCMS v2.0. Although most of the initially planned features have
already been implemented in this release, the feedback received will help us
determine if more features will be included in the future.
Future releases will focus on:
- API stabilization
- Bug fixes
- Creating new test cases
- Keep working on the QuickBook
P.S.: We are also looking for translators as the only currently available language is English (Your help translating would be well received).
Source code(tar.gz)
Source code(zip)
cms-2-0-0-beta1.zip(6.67 MB)