~~LANG:FR@fr:changelog:1.4~~ ====== Jelix 1.4 ====== This page is listing updates and enhancements added since 1.3.x version, and that are available in the 1.4 version. Release date: 08/30/2012 ===== Main improvements ===== * new jApp::config() method, to retrieve the configuration and new jApp::loadConfig() to load the configuration. $gJConfig is deprecated. * new jApp::coord() method, to retrieve the coordinator and new jApp::setCoord() to set the coordinator into the Jelix environment. $gJCoord is deprecated. * new autoload system. Classes to autoload can be indicated into module.xml file of your modules. The autoload system support the [[https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md|PSR0 specification]] * virtual templates * new API to support HTTP cache * new classes to read Atom and RSS feeds * new class, jPref, to set and get dynamic/functionnal configuration options. An interface is available to allow a webmaster to manage these preferences. * modules can provide their own response object and indicate them directly into the configuration * modules can provide their own CSS and JS file without copying them into the @@F@www@@ directory * The plugins directories of modules are now automatically registered, no need to indicate them into @@pluginsPath@@. * Jelix-scripts now searches a .jelix-scripts.ini in the current directory and its parent directories, before searching in the home directory * New jDb driver using the mysqli API (FlorianLB) * jDb: experimental driver for sqlite3 * Support of automatic language parameter in URLS. * **"simple" URL engine is deprecated**. Will be removed from Jelix 1.5 * Improved support of locale/lang: supports now only official lang code, and use real country code when it is not given. * en_US becomes the default locale of Jelix. en_EN is now deprecated, since it is not a valid language code ===== Migrating from Jelix 1.3.x ===== * **READ THE [[http://docs.jelix.org/en/manual-1.4/installation/migrate|MIGRATION TUTORIAL]]**. ===== Details of changes from 1.4b1 to 1.4 ===== ==== Enhancements ==== * Ticket #953 - Support of automatic language parameter in URLS. static and param elements in urls.xml can now have a type attribute with 'lang' or 'locale' value. For param elements of these types, there is no need to give them when calling jUrl::get.> At startup, the language in jApp::config()->locale is set automatically with the value of the param or static element that have a type 'lang' or 'locale'. * Improved support of locale/lang. It don't add same value as lang for country when country doesn't exist, since it has no sens for most of offical locales. new methods getCorrespondingLocale, getPreferedLocaleFromRequest and langToLocale on jLocale. * The configuration parameter availableLanguageCode of the autolocale plugin has been moved to the main configuration and renamed to availableLocales. * jDb: experimental driver for sqlite3 * jDb: removed Intuition plugin. not maintened anymore. * The plugins directories of modules are now automatically registered ==== Bugs fixed ==== * fixed for resources in external modules (Steven jehannet) * Removed some forgotten gJConfig and gJCoord call.. * admin-module jpref ui : added selectedMenuItem (Steven Jehannet) * Fixed SQL script of Testapp, to specify table type, else some tests could fails with some mysql server (Brice Tencé) * Fixed issues with the new mysqli plugin (Brice Tencé) * Remove a dependancy of testapp to php's gd module (Brice Tencé) * Fixed bug in jforms: instance with non numerical ids were not correctly destroy after several ::get or ::create. * informations about modules should not be loaded when there are deactivated ===== Details of changes from 1.3 to 1.4b1 ===== ==== Enhancements ==== * Core * the global variable $gJConfig is now deprecated. You should use jApp::config() instead, to retrieve the configuration. Entry points should indicate the configuration file with jApp::loadConfig(), not with the coordinator. * the global variable $gJCoord is now deprecated. You should use jApp::coord() instead, to retrieve the coordinator. Entry points should store the coordinator into jApp, not into $gJCoord. * New HTTP cache API on response object: cleanCacheHeaders(), setExpires(), setLifetime(), isValidCache(). @FlorianLB * jXmlResponse allows now to specify your own mime type. @Thomas PT * in the configuration, we can indicate a response class which is in a module. Syntax: @@{responsetype}=module:{modulename}~{classname}@@. And the response class should be store into a @@F@{modulename}/responses/{classname}.class.php@@. * Methods isModuleEnabled and getModulePath have been moved from jCoordinator to jApp. These methods are still availabled on jCoordinator but deprecated * new class jAutoloader, to be used as a class autoloader * support of new elements into module.xml to indicate classes (or class pattern) for the autoloader. * rework the errors/exceptions handlers * Short error message is now displayed on the error page at startup * New coordinator plugin to trace execution (FlorianLB) * actions in controllers can be implemented with @@__call@@ (flav) * jUrl * new method getRootUrl($keyword) (and a jTpl plugin) to associate some urls to keywords. @bricet #1073 * jTpl: * virtual templates. You can use jTpl with simple strings (not readed from files): jTpl::fetchFromString(). @doubleface, @laurentj, #545 * new meta instructions: meta_if, meta_else, meta_endif. @bricet * plugins: added support of IE8 and IE9 in meta_html * jDao: * new method jDaoRecordBase::save. (Sid-Ali Djenadi) * jAuth: * new hash function bcrypt() using blowfish algorithm. @FlorianLB * jAcl, jAclDb and jAcl2Db use the new autoload system. All jAclDb* and jAcl2Db* classes, and coord plugins acl and acl2, have been moved into their respective modules. * Utils: * new classes to retrieve and parse Atom and RSS feeds: jAtom10Reader and jRSS20Reader. Compatible with responses that generates Atom and RSS feeds. @FlorianLB #23 * jIniFileModifier: new methods getValues and setValues * new class jPref : a system to store dynamic configuration options (not system options for the framework). An interface is available to allow a webmaster to manage these preferences. It uses jKVDb as storage backend. * Jelix-scripts: * now searches a .jelix-scripts.ini in the current directory and its parent directories, before searching in the home directory * createapp now generates a .gitignore file and .dummy files in empty directories so they can be included into a repository * the debugbar is activated by default on new application created with the createapp command ==== Bugs fixed ==== * none ---- * [[en:changelog|Return to the main page of changelog]]