published by admin on Nov 19, 2012 00:03 | 1 comments
The QuickApps CMS development team is happy to announce the release of QuickApps CMS 1.1-FINAL. This release contains some really interesting new features and improvements. Check the migration guide if you're upgrading your QA installation. A quick list of changes in 1.1-FINAL:
1.1 FINAL
New modules/themes directory. Powered by GitHub.
Allow users to easy search, download and install modules or themes!.
New option for Form inputs `helpBlock`, allows to insert help blocks right after input. e.g.: $this->Form->input('Model.name', array(..., 'helpBlock' => 'Insert your name here'))
New CCK Search API allows you do conditionals find() using CCK fields as part of your conditions. info
Breadcrumb system reviewed
New API methods for display-modes handling. Allow to register new modes, remove or overwrite existing ones:
QuickApps::displayModes()
QuickApps::registerDisplayMode()
QuickApps::removeDisplayMode()
LayoutHelper::meta() now accepts custom html meta-tags.
LayoutHelper::meta(), automatically adds `charset` meta
Deprecated methods:
LayoutHelper::userAvatar(), use UserHelper::avatar() instead
LayoutHelper::menuNodeChildren(), use MenuHelper::menuNodeChildren() instead
LayoutHelper::menu(), use MenuHelper::render() instead
LayoutHelper::toolbar(), use MenuHelper::toolbar() instead
LayoutHelper::blockPush(), use BlockHelper::push() instead
LayoutHelper::emptyRegion(), use BlockHelper::regionCount() instead
LayoutHelper::blocksInRegion(), use BlockHelper::regionCount() instead
LayoutHelper::blocks(), use BlockHelper::region() instead
LayoutHelper::block(), use BlockHelper::render() instead
LayoutHelper::getNodeType(), use NodeHelper::getAttr("node_type_id") instead
LayoutHelper::nodeField(), use NodeHelper::getAttr() instead
LayoutHelper::renderNode(), use NodeHelper::render() instead
LayoutHelper::renderField(), use NodeHelper::renderField() instead
TableHelper::create(), use TableHelper::render() instead
New method InstallerComponent::rmkdir(), recursive make dir.
New CCK Field `FieldImage`
Core themes `Default` & `Admin` are now fully responsive. `Admin` theme was completely redesigned using Twitter Bootstrap
1.1 RC2
Adding more info related to current language in JS variable `QuickApps.settings.locale`
Permissions yaml entries are now translatable.
Several security fixes and improvements againts CSRF/XSS.
New C-hook callback added `black_hole_handler`, allow modules to implement custom logic when request get black-holed
New expressions added to the search engine:
`created`: Allow to filter nodes by date range, e.g.: created: [* TO now]
`modified`: Same as created. e.g.: modified: [1 January 2012 TO 31 December 2012]
Ability to theme individual content type per view mode
New utility method LayoutHelper::elementExists()
Added a "Permissions" shortcut link for each module in the modules administrator section.
Field API reviewed, simpler conventions and code rafactoring.
Search engine improvements. Support for RSS, AJAX and XML feeds.
Deprecated `language:any`, use `language:*` instead.
view variable $Layout['viewMode'] is now $Layout['display'] (may affect some themes)
1.1 BETA
CakePHP core v2.2-beta [3]
Blocks-cache improvement, which reduces considerably the amount of SQL queries per request.
Better control over user's avatar and Gravatar.
Logins attempts feature for added security. Block visitors after certain amount of failed login attempts.
Multilingual Installation.
Since v1.1 all language packages will be included by default.
The old languages repo does not exists anymore.
New search URL pattern (old pattern deprecated), added the `search` word to URL. e.g.: `/search/text to search`.
Some visual changes on Default theme.
Several improvements in Translatable entries system.
Adding the concept of fuzzy entries. Each time the function __t() is used and no translation is found for the given string, it gets marked as fuzzy. This allows you to know every string in your site that has not been translated yet. In this way fuzzy antries may be considered as `suggested entries`.
You can export a list of all fuzzy entries as .pot to be translated/imported later.
Ability to import/export translatable entries.
Theming Nodes by Content Type.
Allow to use different render elements per Content Type.
Allow to use different layouts per Content Type. info
Fields now can be locked, so users cannot edit them. DB schema update required
Fields may define `entity_types` on their .yaml file. An array of entity types that can hold instances of this field. If empty or not specified, the field can have instances in any entity type.
New `QuickApps::field_info()` which replaces the old `field_info` behavior-hook.
New Menu helper class. More simple and easy to work with.
FieldFile now allows to implement custom display formats using special hook callbacks.
hookDefined() now supports Plugin-dot-syntax, if you need to check if an specific module has defined a certain method.
LayoutHelper::userRoles() removed, use QuickApps::userRoles() instead.
Various coding style fixes
MIGRATION GUIDE
Migration from v1.0 to v1.1,
Replace the entire `QuickApps` directoy.
Clear all your cache files in `tmp/cache`, `tmp/persistent`, `tmp/models`
Update of `webroot/.htaccess` required
Update of `Locale/*` required
Update you database schema, with the scripts below (examples using `qa_` as table prefix):
ALTER TABLE `qa_fields` ADD `locked` TINYINT( 4 ) NOT NULL DEFAULT '0' AFTER `settings`
CREATE TABLE IF NOT EXISTS `qa_search_data` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`foreignKey` bigint(20) NOT NULL COMMENT 'entity ID. e.g. node_id for Nodes',
`field_name` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'field''s name from the `fields` table, NULL means `all fields` which holds the information of every field',
`entity` varchar(30) COLLATE utf8_unicode_ci NOT NULL COMMENT 'Type of item. e.g. Node, User, Comment, etc',
`data` text COLLATE utf8_unicode_ci NOT NULL COMMENT 'List of space-separated words from the item.',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1;
INSERT INTO qa_search_data(foreignKey, entity, data) SELECT node_id, 'Node', data FROM qa_nodes_searches;
DROP TABLE `qa_nodes_searches`;
Upgrade all you modules.
Making your old v1.0 theme v1.1 compliant:
Usage of deprecated method, Such as `$this->Layout->blocks('region-name')` is now `$this->Block->region('region-name')`. Or `if (!$this->Layout->emptyRegion('region-name')) { ... }` is now `if ($this->Block->regiounCount('region-name')) { ... }`
Usage of deprecated variables, such as $Layout['viewMode'] is now $Layout['display']
Meta-tags. Now `LayoutHelper::meta()`, automatically adds `charset` meta
Recommended to update old URLs patterns:
/s/something to search is now /search/something to search
/d/node-slug.html is now /node-type-id/node-slug.html
Great Work!
I'm a big fan of both Drupal and CakePHP, and is very good to see both concepts together in a single CMF, and getting more and more reliable.
Great Work!
I'm a big fan of both Drupal and CakePHP, and is very good to see both concepts together in a single CMF, and getting more and more reliable.
Comments
said on Dec 06, 2012 09:07
Permalink
Great Work!
I'm a big fan of both Drupal and CakePHP, and is very good to see both concepts together in a single CMF, and getting more and more reliable.
Add new comment