Quick links: Content - sections - sub sections
EN

Trace: telechargement 1.0beta3

This is an old revision of the document!


Jelix 1.0 beta 3

2007, 14 september (svn 583)

Main improvements

  • Full implementation of jForms, the form system of Jelix: automatic checking of the datas, server side and client side; automatic generation of a HTML form.
  • Generic controller for ??CRUD|Create Read Update Delete??, to quickly produce screens of table contents management (using a DAO and a jform).
  • support of drivers in jAcl
  • Automatic control of configuration parameter, basePath.
  • new junittests module to facilitate the creation of unit tests
  • possibility to have templates specific to languages
  • Reorganization of plugins directories: concept of plugin is not any more restricts to the plugins of the coordinator, but this concept indicates also the drivers of authentification, jDb, plugins of templates etc. It facilitates and improves teh extensibility of the framework, without modifying the jelix directory. Moreover, the naming of the functions of the plugins slightly changed.
  • Official distribution of Jelix 1.0beta3 is not compatible any more with PHP 5.0, but it is only designed for PHP versions higher than 5.1. (However you can build your own jelix distribution for PHP 5.0 starting from the sources).
  • better support of HTTP headers in the responses
  • better automatic control of the language of the navigator in the plugin autolocale

To update since jelix 1.0 beta 2/2.1

Because of some modifications in Jelix 1.0beta3, here what you must do to update Jelix and your application:

  • remove the directories lib/jelix and lib/jelix-plugins/ (recover your own files if you put some in these directories, you will reinstall them then)
  • remove the directory lib/jelix-modules/jelix
  • remove the contents of the directory temp of your application
  • install the new directory lib/jelix, lib/jelix-plugins (which is empty in the beta3) and the other directories provided.
  • modify the configuration file of your application, and other source files, by changing the names of the parameters defaultModule, defaultAction, defaultLocale, defaultCharset, defaultTimeZone, defaultTheme, respectively by the names startModule, startAction, local, charset, timeZone and topic.
  • If you created plugins of coordinator:
    1. place them in under directory coord/in your directory of plugins (example: your-appli/plugins/exemple becomes your-appli/plugins/coord/exemple
    2. rename your plugin files : exemple.plugin.php to exemple.coord.php
    3. in your plugin files, change the name of the interface jIPlugin to jICoordPlugin
  • If you created your own drivers of authentification, drivers jdb, rename also the files and the names of the classes (see documentation on the plugins)
  • if you created plugins of templates
    1. move your directories common, html etc in a sub-directory tpl/ of your directory plugins (in your-appli/plugins/tpl thus)
    2. in the configuration files of your application, remove the line tplpluginsPath which is not necessary any more
    3. modify the function names of your plugins, by following the pattern “jtpl_plugintype_outputtype_pluginname” where plugintype is the type of plugin (function, to modify etc.), outputtype is the type of format (HTML if it is in repertory HTML, common if it is in the repertory common etc.).
  • In your DAO files:
    • change the attribute names selectmotif, updatemotif and insertmotif, to selectpattern, updatepattern and insertpattern (but it is not an urgency, the old names are still recognized in the beta3)
    • in your methods in PHP, change the call to $this→_pkFields into $this→getPrimaryKeyNames ().
  • In your PHP files, if you use jDatetime, change the names of the constant BD_* into DB_* (but it is not an urgency, the old names are still recognized in the beta3)
  • if you use JSON class (lib/JSON/) directly, replace the call by the use of the new class jJson.
  • There were many modifications in the format of the jForms files. Refer to the documentation to know the new XML grammar.
  • Change the call to the classes jAclManager and jAclUserGroup by jAclDbManager and jAclDbUserGroup (see the details of the changes)
  • Use of the requests jsonrpc and xmlrpc: received parameters RPC are now in a single parameter jelix “params”.

Details of the changes

API changes

  • jDao: the attributes selectmotif, updatemotif and insertmotif were renamed in selectpattern, updatepattern, insertpattern. The old names are valid until version 1.0.
  • jException: the method getMessage return the localized message instead of the key of the message. There are no more the properties localizedMessage, localeParams, and the method getLocaleMessage. New methods: getLocaleKey and getLocaleParameters.
  • Reorganization of directories of the plugins coordinator, drivers of authentification, drivers for jDb and of the engines of urls. For the details, to see the page of the plugins
    • Maintaining the repertories indicated by the parameter pluginsPath of the configuration contain all these plugins, classified in distinct sub-directories.
    • the naming of the names of classes and the files of the plugins for the coordinator was modified following the reorganization of the repertories of plugins. The names of the files become foo.coord.php, the names of the classes fooCoordPlugin. And the plugins are moved in under repertories coord/repertories jelix-plugins etc. The interface jIPlugin was re-elected in jIAuthPlugin.
    • The naming of the classes and the files of the drivers for the authentification, jDb, the engines of urls and the plugins of templates also changed.
  • jDateTime: the constant BD_* were re-elected in DB_*. The old names are nevertheless valid to version 1.0.
  • Modifications in the format of the files jForms.
  • Modifications in the files of configurations: the names of the parameters defaultModule, defaultAction, defaultLocale, defaultCharset, defaultTimeZone, defaultTheme, were famous respectively in startModule, startAction, local, charset, timeZone and topic.
  • jAcl:
    • jAclManager becomes jAclDbManager
    • jAclUserGroup becomes jAclDbUserGroup
    • jAcl:: isMemberOfGroup () moved in jAclDbUserGroup
    • jAcl:: getDbProfil () moved in jAclDb (new class) and re-elected in getProfil ()

Improvements, new features

  • Configuration:
    • The parameter of configuration basePath is now detected automatically when its value is with vacuum in the configuration. However, for the applications which have several entrance points in repertories different, it should all the same be indicated to the hand.
    • New parameter jelixWWWPath, which shows the way URL towards the contents of the jelix-www repertory
  • Improvement of the automatic control of language in the plugin autolocale
  • jForms: complete implementation, which thus includes/understands:
    • method check (), validating the data with dimensions waiter, which was largely supplemented and debuggée
    • plugins of templates to generate a form HTML corresponding to an object form jForms, also including the automatic generation of the validation Javascript with dimensions customer, the posting of the errors detected with dimensions waiter
    • new methods saveFile and saveAllFile, which makes it possible to easily safeguard the uploadés files of a form.
  • jReponse:
    • new method clearHttpHeaders ()
    • a code HTTP 500 is sent when there are errors
    • jResponseHtml: addition of the assumption of responsibility of the alternate style sheets
    • jResponseJson and jResponseJsonRpc: one can now specify code HTTP of answer. (ticket 157)
  • jTpl:
    • one can have templates specific to a language, by putting them in sub-directories having for name the code of a language (as for the repertory local)
    • one can force the type of template (HTML, text etc.), at the time of the call to the method fetch (useful when one wants to use a template to generate the contents of an email for example, independently of the type of the response of the action)
    • New types of plugins of templates, cfunction and cmodifier: they are plugins called during the compilation of the template rather than to posting, which makes it possible to improve the performances.
    • new modifier “count” to recover the number of element of a table
    • one can indicate if the template that one uses is of confidence or not (3rd parameter with the methods display, fetch…)
    • new modifier eschtml (identical to escxml)
    • the arguments of the modifiers can now separated by commas (ticket #129)
    • Addition of variables of templates per defect: j_datenow, j_timenow, j_basepath, j_jelixwww
  • jDateTime: (ticket #176)
    • new method now ()
    • modification on the methods add () and sub (): they always accept a jDateTime object in parameter, but there is now a new alternative. They can now accept the parameters year month day hour minute second.
    • the constant BD_* were re-elected in DB_* but remain usable (obsolete)
  • jDao:
    • new methods jDaoRecordBase:: getPk (), jDaoRecordBase:: getPrimaryKeyNames (), jDaoFactoryBase:: deleteBy (), jDaoFactoryBase:: getPrimaryKeyNames (), jDaoFactoryBase:: getProperties ().
    • new type of property: text
  • jAuth:
    • assumption of responsibility of the persistent authentification (ticket #229)
    • the name of the variable of session containing information of a connected user, is now skeletal, and thus makes it possible to use several type of authentification in the same application
    • new method jAuth:: getRandomPassword ()
    • possibility of indicating a name of profile for driver dB
  • jAcl is based now on a system of driver, allowing for choice of the source of the data on the rights. The implementation of jAcl was thus moved towards a driver “dB”. The drivers must implement the new interface jIAclDriver.
  • jUrl:
    • for the significant engine: several urls significant can now point towards the same action, provided that they have static parameters which differentiate them
  • New class jJson and jCrypt.
  • New controller, jControllerDaoCrud, to make a data management of the type CRUD on a table, with automatic posting starting from a CAD and of a form, screens lists, edition, obliteration of recordings.
  • New module junittests to be able to easily make unit tests in the modules.
  • Improvements on the script of checking of installation
  • Addition of a script to create a whole interface CRUD starting from one only table
  • Activation of the detection of typical mistakes E_STRICT
  • Improvement of documentation the API one in jAuth, jDao, jUrls, plugins of templates

Bug fixes

  • jDb, driver pdo: the driver pdo returned a table instead of an object during the use of the resultSet as a iterator (because of a bug in PDO). (ticket #180)
  • jDao:
    • an attribute “been worth” vacuum was not authorized (ticket #191)
    • bad formatting for the method.limit.forbidden error
    • removal of a “note” in jDaoRecordBase:: setPk ()
    • bad generation of the conditions on the level of operators IN/NOT IN (bug #203).
    • the names of the tables and the fields between quotes in the request are now generated, in order to be able to correctly use these names in Postgresql and mysql. (bug #98)
    • for the optional properties, the methods did not check if the corresponding dynamic values were null, and if thus a IS NULL had to be generated or not during their use in clauses WHERE. (ticket #228)
    • correction of bugs on the properties of the type autoincrement
  • jTpl:
    • (regression) the use of the key words true, false and null was not possible any more bus php sees them like constants
    • certain operators were usable in the tags of posting. They are not it any more.
    • the same compiled file of template was used during the use of the template in answers of the different type (bug #225)
    • it was possible to include tags PHP in a template, which is a potential hole of safety for the templates which are not “confidences” (uploadé by one to use by ex).
    • It was not possible to put in comment tags jtpl (bug #106)
  • answers:
    • headings HTTP were not well managed in certain answers: one could not modify them (ticket #198).
    • jResponseBinary: the property mimeType was not declared (ticket #188)
    • jResponseXmlRpc and jXmlRpc: bug during the analysis of the data of the type struct (ticket #190 et#192) and to the level of the name of the method (ticket #245 and #243).
    • rss and atom: the code language was badly generated (ticket #247)
  • jUrl, engine of significant URL: in the file xml, parameter of the type dates, the days “10” and “20” were not recognized (ticket #204)
  • jAuth: bad operator in jauth.listener.php (bug #221).
  • jControllerCmdLine: the signature of the method param () was not identical to that of its class mother
  • Problem of encoding with class JSON included in Jelix: update of this class (bug #321)
  • Problem of encoding at the time of the sending of the emails

Other versions

en/changelog/1.0beta3.1190995212.txt.gz · Last modified: 2007/10/18 22:06 (external edit)

Recent changes RSS feed Creative Commons License