Trace: • 1.3
Table of Contents
Jelix 1.3 ¶
This page is listing updates and enhancements added since 1.2.x version, and that are available for the 1.3 version.
Release date: 18/10/2011
Main improvements ¶
- only one application.init.php and only one temp directory is needed now, for the www, cli and jelix scripts.
- jLog and jResponseHtml have now plugins
- new error managements. jLog is used to store errors, and errors are not displayed any more in responses.
- new error page (http code: 500), displayed when an error occured. you can redefine it to have the design you want.
- all connection profiles (for jDb, jKVDb, jCache etc) are now stored in a single file
profiles.ini.php
. - a new nice debug bar, extensible, showing many informations (errors, sql queries…)
- JELIX_APP_* constants are now replaced by methods in a new jApp class
- improvements in jAcl2: subjects groups, rights can be forbidden by a group.
- Major rework of jelix-scripts, to ease the use of jelix commands: no more jelix.php script. It has been replaced by a new cmd.php into the application to launch commands on the application, and by a single createapp.php script into lib/jelix-scripts/. Jelix-scripts is provided in the three editions of Jelix (dev, opt, gold).
- Better handling of the CGI context for CLI scripts that are launched with php-cgi
- Upgraded all vendors libraries: TCPDF 5.9.093, php5redis 1.2, jquery 1.6.2, jQuery UI 1.8.15, markitup 1.1.12
Migrating from Jelix 1.2.x ¶
- READ THE MIGRATION TUTORIAL.
Details of changes in 1.3b1 ¶
Enhancements ¶
- core:
- JELIX_APP_* constants are now replaced by new properties in a new jApp class. application.init.php must be changed into existing applications, to set paths with jApp instead of creating JELIX_APP_* constants. However, to be compatible with existing modules, these constants are created automatically by jCoordinator
- Removed multiple *.init.php files. Only one application.init.php is needed, and only one temp directory is needed. application-cli.init.php and jelix-scripts.init.php can be removed safely from applications. And only the temp/myapp/ directory is needed to store every temp files of any contexts.
- New object jInstallerApplication to retrieve the list of entry points, all used modules etc..
- jLog has been moved to the core, and has now plugins
- new method jLog::logEx() to log easily exceptions
- Ticket #1126: new way how errors are managed. Responses are not responsible anymore to displays errors. Errors are handled by loggers. Loggers can inject errors in responses if they want. A new template is responsible to display a generic error message. Details of the errors are stored by loggers. Moved or renamed some configuration parameters
- added a new method jRequest::isAjax
- support of PHP 5.0 and PHP 5.1 has been removed definitively.
- Removed jUrl::parseFromRequest()
- jRequest::getIp() - better handling of HTTP_X_FORWARDED_FOR
- new jApp object handling paths of the application. It has also these methods:
- jApp::loadPlugin to load a plugin for any component
- New parameter backendBasePath in the configuration, to support application installed behind a proxy, where the base path of the front end server URL is not equal to the base path of the backend server URL
- Plugins for the coordinator: their config can be readed automatically from a section coordplugin_xxx in the main configuration, if a filename is not given
- jLocale: added support of a fallback locale. (ticket 1252)
- jProfiles: this is a new class to manage any connection profiles, and a spool of connections. All profiles (for jDb, jKVDb, jCache and the new jSoapClient) are now stored in a single file, profiles.ini.php. dbProfils.ini.php, cache.ini.php etc, do not exist any more.
- responses:
- new basic html response (on which you can provide a template containing a full html page)
- jResponseHtml has now plugins.
- Minify is now a plugin of jResponseHtml, and is not integrated any more in the class. The class jMinifier does not exists any more, because of performance issues and licence issues. To minify css files and js files, the developer should now add a minify.php entry point which uses directly Minify.
- Made changes in responses to use the new error management. For most of responses, error content is output as a text response or as a html response.
- new true debug bar (as a plugin of jResponseHtml). It displays errors gracefully, and has its own plugins:
- plugin to show SQL queries
- plugin to show session data and jForms data
- plugin to show default logs
- plugin to show soap messages
- jDb
- implementation of jDbConnection::getAttribute() to retrieve db version (ticket #913)
- utils:
- jBuildTools, new processing instruction: includeinto, includerawinto. new options for all 'include' processing instruction
- jMailer: added the possibility to copy all mails in files
- New jSoapClient class to retrieve a SoapClient object, configured with parameters stored in a profile.
- Added scripts to create and run phpunit tests (Simpletests integration and the junittests module is now deprecated)
- Better random password generator in jAuth
- jAcl2:
- the primary key of a user group is now a string, not an autoincremented integer. setting rights and setting group will be easier. The code field has been removed too.
- added the possibility to forbid a right in a group. If a user is in several group, and if a right is canceled in one of these groups, then the user has not this right.
- Made improvements on the UI of rights management (module jacl2db_admin)
- jForms:
- added the ability to run easily js code during the submit event. new jFormsJQ.addSubmitHandler method.
- added support of attributes on the form tpl plugin, ie: html attributes can be added on the generated form element.
- added the possibility to deactivate an item in a choice control
- Menulist should have empty item even when it is not required (Ticket #977)
- added support of empty items in listboxes (Ticket #977)
- Jelix-scripts: major rework of jelix-scripts, to ease the use of jelix commands
- no more jelix.php script. Replaced by a new cmd.php into the application to launch commands on the application ( –myapp parameter does not exist anymore)
- new createapp.php script into lib/jelix-scripts/
- new configuration file (ini format), to store in your own HOME directory. No more default.conf.php file
- better internal API, more objects, less single functions, no more defines, and better error handling
- jelix-scripts is now built in all editions: dev, opt, gold
- new command to create lang package (ticket #268)
- jTpl: we should be able to indicate a lang code to the jlocale plugin of jTpl (ticket #1203)
Bugs fixed ¶
- Ticket #1318: fix bug: jUrl::escape doesn't call urlencode in highlevel mode
- https protocol is now checked when https is required, in significant url engine (ticket #380)
- ticket #1160: support of limit query in the mssql driver.
And all bug fixes from the 1.2.x branch (1.2.0, 1.2.1, 1.2.2).
Details of changes in 1.3RC1 ¶
Improvements ¶
- Ticket #1379 - upgrade TCPDF 5.9.093
- Updated php5redis lib to 1.2
- Upgraded jquery to 1.6.2
- Update jQuery UI to 1.8.15
- Update markitup to 1.1.12
- jForms: better check of control name when retrieving a control in some methods
- New implode plugin for jTpl
- ticket #1340 - jTpl: formdatafull should output a list for multiple-items controls
- Debug bar, sql log: improvement on the display of the list of log, better detection of jdao object
- jAcl2: new dao method to change the subject group on subjects
- ticket #809 - Generate jACL2 rights with the createdao command.
- ticket #1388 - enhance performance when using clearstatcache
- Ticket #1189 - crud controller, offset page should be passed to all pages so the user return at the right part on the page list
- ticket #1421 - Display HTTP referer in logs
- better security check based on the ip in the auth plugin
- Jelix script:
- Little improvement in the display of the help command
- changed an error message in the createapp script
- ticket #1400 - added date time format without second in jDateTime
- In a cli context, it's better to display error messages directly on the console
- Better handling of the CGI context for CLI scripts that are launched with php-cgi
- jUrl - significant engine - new parameter type, 'path' to allow to have a path as a parameter
- Ticket #1411 - Add a config option to force HTTP version
- ticket #1416 - jIncluder should throw an exception when the compiler fails
- ticket #1220 part 2 - new method jImageModifier::transformImage to modify an image in a new file, without using the cache system of jImageModifier
- Default value for notfoundAct should not be empty
- Update links in the template of the zone check_install
Bugs fixed ¶
- fixed a jelix update, where emailHeaders was moved with a bad value
- install sql scripts, pgsql: boolean values should be inside quotes
- ticket #1384: fixed bug on an updater for jelix 1.3
- ticket #1381 - fixed undefined variable in jAuth::getRandomPassword
- ticket #1382 - error File jIAuthDriver.iface.php doesn't exist when using installapp with opt edition
- fixed bad method name in jRequest: getDomainName
- jUrl::getFull should support the case where the url engine already returns a domain name
- Components should use methods of jRequest to retrieve the protocol and the domain name, instead of using directly values
- Ticket #1385: memory logger should have limits to store messages
- Fixed bug in jUrl::getFull - domain name was duplicated in some case
- fixed bugs in jacl2db_admin: rights for the anonymous group couldn't be changed. And we couldn't change a right from 'no' to 'yes'
- ticket #1404 - fixed php error when using the CSS exclude list in the minify plugin
- ticket #1392 - jelix commands should be compatible with php-cgi in a cli context.
- Ticket #1414 - fixed a regression: For specific protocols, errors responses are not in the right format
- jelix scripts: for command that have variable parameters, the error 'too many parameters' was always triggered
- jelix-scripts, acl2right command: help was not right
And all bug fixes from the 1.2.x branch (1.2.3, 1.2.4, 1.2.5).
Details of changes in 1.3RC2 ¶
Critical bug fixes ¶
- XSS Vulnerability in the form of the module jauth. In the template “auth~login.form”, the variable $login was not escaped.
Other bug fixes ¶
- ticket #1426 - the datepicker in jforms was not initialized with the given date. Regression after the update of jQueryUI.
- Fixed an issue in jDao: the use of float values into SQL queries may generate SQL errors, when the system locale does not have a point as decimal separator. new jDb::floatToStr method to convert a float value into a correct float representation in SQL.
- Fixed a regression in the support of Minify: first CSS/JS was minified even if it shouldn't.
Details of changes in 1.3RC3 ¶
Critical bug fixes ¶
- none
Other bug fixes ¶
- Fixed a regression: jAcl2db did not worked anymore with postgresql. bad field type in the database.
- the authlogout listener of jacl2db now clear the jAcl2DbUserGroup cache
- junittests now takes care about the new 'skip' api of simpletest
- jDaoConditions: exceptions should be thrown when a given property is unknown
- Jelix-scripts: chmod values were not used correctly.
- Jelix-scripts: the createapp command did not take the values of newAppInfoLocale and newAppInfoCopyright.
- In PHPUnit tests for an application, the coordinator and the configuration should be available in global variables. tests in modules may need them
Improvements ¶
- jUnitTestCase: added methods to allow to do things before and after the run of all tests of a class
- Jelix-scripts: createdaocrud command now generates urls in the urls.xml file of the module, when the application is using the significant url engine.
- Jelix-scripts: added a new command resetfilesrights
- PHPUnit launcher: Added help for specific options for jelix tests
Details of changes in 1.3 final ¶
- Fixed infinite loop when ob_end_clean fails, during the display of an error page
- ticket #1432 - date_format should support timestamp as parameter
- Redirection should be allowed with almost of type of request