Piste : • 1.1
Table des matières
Jelix 1.1 ¶
Voici la liste complète des modifications et améliorations apportées depuis la version 1.0, et qui sont disponibles dans la version 1.1.
Sortie le 14 Février 2009. svn 1310.
Principales évolutions ¶
- Nombreuses améliorations dans jForms :
- nouvelle version 1.1 du format XML (la version 1.0 reste toujours utilisable)
- nouveaux contrôles : <hidden>, <captcha>, <group>, <choice>, <htmleditor>, <date>, <datetime>…
- ajout/suppression à la volée de contrôles, ainsi que l'activation/désactivation
- dépendances statiques entre certains contrôles
- possibilité de connaître les valeurs modifiées
- Intégration de jQuery, Wymeditor (éditeur html wysiwyg)
- Protection automatique contre les attaques de type CSRF
- Les générateurs sont maintenant des plugins
- Nouveau système de droit jAcl2
- Nouvelle réponse htmlfragment pour les appels AJAX
- Support de SOAP
- Amélioration dans le moteur de template jTpl
- possibilité de déclarer à la volée des modificateurs et des fonctions
- amélioration dans la syntaxe : instruction multilignes, {=expression}
- nouveaux plugins : cycle, flash, breadcrumb, link_to_remote, number_format, const, image, jmessage, ifctrl..
- Nouvelles classes utilitaires jIniFileModifier, jHttp, jDuration, jMessage, jImageModifier…
- Profiles virtuels dans jDb
- Améliorations dans les jelix-scripts
- nouveau module master_admin, pour afficher une interface web d'administration, ainsi qu'une commande jelix
initadmin
pour activer/configurer facilement ce module. - nouveau module jacl2db_admin pour gérer les droits de jAcl2
- nouveau module jauthdb_admin pour gérer les utilisateurs
Mettre à jour depuis Jelix 1.0.x et Jelix 1.1 beta 1 ¶
Il est important de suivre les instructions qui sont indiquées dans le manuel pour migrer de Jelix 1.0 vers Jelix 1.1
Détails des changements ¶
Améliorations, nouveautés ¶
- Toutes les petites améliorations apportées dans les versions 1.0.x
- core
- Ajout de la prise en charge de SOAP (donc jSoapRequest et jResponseSoap) (#377)
- Réécriture des gestionnaires d'erreurs et d'exception (factorisation de codes) (#467)
- amélioration des performances sur la récupération d'un objet response
- Nouveau contrôleur CRUD jControllerDaoCrudDfk, pour les tables dont la clé primaire est sur deux champs
- Nouvelle réponse jResponseHtmlFragment pour les reponses AJAX en html (#501)
- Nouvelle réponse jResponseCmdLine, pour les scripts en ligne de commande, avec un nouveau coordinateur jCmdlineCoordinator (#406)
- le premier argument à jController::getResponse() est maintenant optionel
- jLocale : possibilité d'inclure des sauts de lignes dans les chaînes localisées (#569)
- Erreurs : messageLogFormat supporte maintenant le pattern %url% pour inclure l'url courante dans les logs (#638)
- détection automatique de la timezone (#600)
- nouveau moteur d'url basic_significant, reposant sur les noms des modules/contrôleurs/méthodes pour générer les urls. C'est maintenant le moteur par défaut
- init.php utilise maintenant
spl_autoload_register
à la place de__autoload
pour permettre à des bibliothèques tierces de définir leur propre autoload. - Un script en ligne de commande peut maintenant être dédié à l'action par défaut, ainsi il n'est plus besoin d'indiquer l'action en argument (#777).
- nouvelle option loadClasses dans la section
sessions
, ainsi on peut indiquer les classes à charger avant le démarrage d'une session
- jControllerDaoCrud
- nouvelle méthode _preCreate et _preUpdate (#627)
- ajout des méthodes _getForm et _createForm, ainsi on peut redéfinir la création des formulaires et la personnaliser.
- jResponseHtml :
- on peut maintenant spécifier son propre doctype, en surchargeant la nouvelle méthode outputDoctype() (#440)
- la méthode _commonProcess est remplacée par la méthode doAfterActions (simple renommage donc), mais _commonProcess reste utilisable pour la compatibilité (jusqu'à Jelix 1.2)
- nouvelle méthode addLink() (#657)
- jForms :
- possibilité d'ajouter son propre builder (XUL, extjs ou autre) sous forme de plugins (#434). Les plugins de template pour jForms sont maintenant aussi plus indépendant du format de sortie (du builder donc).
- possibilité d'indiquer le builder au niveau des plugins de templates (#583)
- Nouvelle version 1.1 du format XML de jforms, incluant :
- Nouveau contrôle <hidden> : support des champs cachés (#212)
- Nouveau contrôle <captcha> (#248)
- Nouveau contrôle <group> (#549)
- Nouveau contrôle <choice> (#564)
- Nouveau contrôle <htmleditor> : edition html wysiwyg (#215)
- Nouveaux contrôles <date> et <datetime>, + affichage d'un datepicker avec le builder html (#196)
- Support de type=“html” sur <input> et <textarea>, qui permet de saisir du html avec vérification et nettoyage coté serveur des balises interdites pour éviter les problèmes de sécurité (#381)
- Changement de la manière d'indiquer une source de donnée, avec une nouvelle balise <datasource>
- Possibilité d'indiquer un paramètre à une méthode DAO au niveau des sources de données (#555): attributs criteria et criteriafrom.
- Nouvel élement <emptyitem> pour la balise <menulist>, permettant d'indiquer le label de l'option “vide” quand le choix est facultatif (#584)
- support des attributs minlength et maxlength sur <secret> (#556)
- support de l'attribut required sur <checkbox> (#635)
- Nouvelle méthode jForms::clean() pour détruire les formulaires trop vieux en session
- Nouvelle méthode jFormsBase::getModifiedControls() (et initModifiedControlsList()) pour savoir les valeurs modifiées (#351, #700)
- Nouvelle méthode jFormsBase::prepareDaoFromControls(), une alternative à saveToDao() (#497)
- Nouvelle méthode jFormsBase::addControlBefore() (#728)
- Nouvelles méthodes sur jFormsBase : isReadOnly(), getRootControls()
- Possibilité d'ajouter et enlever des contrôles à la volée, grâce aux nouvelles méthodes de jFormsBase: addControl(), removeControl().
- Nouvelles méthodes sur jFormsControl : setForm(), setData(), setReadOnly(), setValueFromRequest(), setDataFromDao()
- Possibilité de spécifier la présence d'un champs dans le formulaire généré, grâce à jFormsBase::deactivate(), et jFormsBase::isActivated(), ainsi que jFormsControl : deactivate(), isActivated() (#518)
- support de l'attribut maxlength sur <input> (#460)
- importantes réorganisations dans le code de jforms
- nouveau template de plugin ifctrl (#601)
- nouveau template de plugin formdatafull pour les reponses text (#649)
- plugin de template {formcontrol} : il est maintenant possible d'indiquer une liste de contrôle que l'on ne veut pas dans la boucle (#652)
- remplacement des sauts de lignes par un br lors de l'affichage du contenu des textareas (#646)
- nouveau builder htmllight (#688) : il génère du HTML + javascript classique, tandis que le builder html utilise maintenant jquery.
- support des urls externes (en http et https) pour la cible des formulaires (#710)
- jDao :
- jDaoFactoryBase::countBy : possibilité d'utiliser DISTINCT (#580)
- nouvelle méthode jDaoConditions::addItemGroup pour les groupby (#579)
- Lors d'une mise à jour, les champs en “updatepattern” et “selectpattern” sont mis à jour dans l'objet record donné (#770)
- jDb :
- suppression du support des vieilles version de PDO (php 5.0), et des vieilles constantes de jelix JPDO_*.
- jDbConnection::query() et jDbResultset::setFetchMode() ont maintenant la même API que PDO
- Ajout du support de FETCH_INTO
- Ajout du support de profils virtuels dans jDb (#410)
- Amélioration du parsing des scripts MYSQL par jDBTools.
- jelix-www:
- les scripts javascripts fournis sont maintenant “compressés” pour de meilleure performance
- Mise à jour de tooltip.js en version 1.1
- Ajout de wymeditor pour faire de l'édition HTML wysiwyg dans les pages HTML (#214)
- Ajout de jQuery, jQuery UI et de plugins jQuery (date_input)
- jAcl2 : nouveau système de droit plus simple que jAcl.
- Nouveau module jacl2db_admin permettant de gérer les droits dans une interface HTML
- jAuth :
- ajout d'un paramètre “persistence” à l'évenement AuthLogin, contenant le timestamp de la fin de la validité de la persistance
- ajout de jAuth::getDriverParam() pour pouvoir récupérer facilement un paramètre de la configuration d'un driver de jAuth
- Mise à jour de l'utilisateur courant en session quand une modification survient sur cet utilisateur avec jAuth::updateUser (#461)
- jTpl :
- nouvelles méthodes registerModifier et registerFunction (#138)
- nouvelle méthode assignByRef (#137)
- les tags jtpl peuvent maintenant être écrits sur plusieurs lignes (#55)
- nouveau plugin “cycle” (#149)
- petites amélioration mineurs dans le compilateur
- améliorations sur le plugin image
- nouveaux plugins pour intégrer du flash (#498, #585)
- amélioration du plugin meta_html (#553)
- nouveau plugin breadcrumb (#527)
- nouveau plugin link_to_remote (AJAX) (#30)
- nouveau plugin modifier number_format (#679)
- pour les plugins compilés de templates : nouvelle méthode jTplCompiler::isInsideBlock() permettant de savoir si on est à l'intérieur d'un block ou pas.
- nouveau plugin pour afficher une constante PHP (uniquement dans les templates sécurisés)
- nouvelle syntaxe pour afficher le résultat d'expressions : {=$truc…}
- autre plugin
- plugin history pour le coordinateur (#507)
- plugin zendframework pour le coordinateur, permettant d'utiliser directement les classes utilitaires de ZF (#651)
- jelix:utils
- nouvelles classes jIniFileModifier et jIniMultiFilesModifier
- Ajout d'une classe jHttp, pour faire des requêtes HTTP (#7)
- Nouvelle classe jDuration (#425)
- jClasses : ajouts de méthodes pour l'injection de dépendance (#523)
- nouvelle classe jMessage et son plugin de template associé pour afficher des messages entre 2 actions (#644)
- jMailer : possibilité d'utiliser un template pour les messages (#530), et nouvelle option pour les connexions SMTP sécurisées:
smtpSecure
. - jZone : remplacement de la méthode getParam() par param() (getParam() reste utilisable, mais déprécié) (#690)
- Nouvelle classe jImageModifier pour modifier facilement des images et les mettres en cache. Son code est issue du plugin de template image (#604)
- module junittests : possibilité de lancer les tests en ligne de commande (#454)
- module auth :
- jauth~login:form redirige maintenant vers l'action indiquée dans after_login, si l'utilisateur est déjà identifié (#650)
- meilleure prise en charge de la redirection vers une page d'origine (où l'on était avant de venir sur le formulaire d'authentification) (#658)
- utilisation d'une nouvelle réponse htmlauth dans l'action jAuth:form (#750)
- nouveau formateur pour jDiff (Diff) (#720)
- nouveau script jelix_check_server.php pour tester la compatibilité d'un serveur avec jelix (#409)
- nouveau module master_admin, pour afficher une interface web d'administration, ainsi qu'une commande jelix
initadmin
pour activer/configurer facilement ce module. - nouveau module jauthdb_admin pour gérer les utilisateurs avec le driver db de jAuth
- extension php jelix (gold edition) : nouvelle option pour php.ini pour désactiver l'extension dans un virtualhost (#386)
- Jelix-Scripts
- createapp : on peut maintenant indiquer un chemin pour le documentroot de l'application (par défaut ça reste votre_appli/www) (#163)
- createapp : application.init.php fait maintenant l'inclusion du fichier jelix/init.php, et cet inclusion n'est plus faite dans les points d'entrée, ce qui apporte plus de souplesse lors du déplacement du www ou du répertoire lib.
- nouvelles constantes à renseigner dans scripts.conf.php (auteur, copyright, licence…) pour remplir automatiquement les commentaires d'entête des fichiers php crées et les fichiers module.xml, plugin.xml et projet.xml.
- nouvelle commande createentrypoint pour créer un point d'entrée du type que l'on veut
- createform : ajout un champs de saisie pour les clés primaires non autoincrementée, et le controlleur CRUD l'affiche ou pas selon le type d'utilisation du formulaire
- Nouvelles spécifications pour le format des fichiers module.xml, plugin.xml et projet.xml.
- Mise à jour de TCPDF vers la version 4.3.006
- Mise à jour des classes clearbricks vers la version svn-192.
- Mise à jour de PHPMailer vers la version 2.3 (et séparation du code de la classe jMailer et du code original de PHPMailer)
- Mise à jour de WikiRenderer vers la version 3.1pre65
Corrections ¶
- Toutes les corrections apportées dans les versions 1.0.x
- La méthode jDatetime::durationTo calculait mal les durées. Utilise maintenant la nouvelle classe jDuration (#453)
- Correction du content-type dans jResponseJson, pour qu'il soit en accord avec la rfc4627 (#552)
- jDaoFactoryBase::findBy n'ignore plus l'argument limit à 0 (#665)
Corrections et petites améliorations depuis jelix 1.1RC1 ¶
- renommage
jBinding
enjClassBinding
. Cette classe reste expérimentale. - Méthode
jClasses::getBinding()
enlevée (la méthodebind()
doit être utilisée à la place). cette méthode reste expérimentale. - Dans la configuration, renommage de la section
[Bindings]
en[classbindings]
. - Un script en ligne de commande peut maintenant être dédié à l'action par défaut, ainsi il n'est plus besoin d'indiquer l'action en argument (#777).
- Jelix scripts:
- Ajout d'une vérification sur le nom du module dans createapp et createmodule.
- createdao: correction d'un bug sur le paramètre table et petites améliorations dans le template des daos
- La création d'un module n'était pas possible quand basePath est assigné à un chemin virtuelle (#783)
- le fichier scripts.conf.php a été renommé en scripts.conf.php.dist, ainsi on peut avoir son propre fichier scripts.conf.php sans qu'il soit écrasé par les mises à jour de jelix
- jMailer:
- la méthode
Tpl()
retourne maintenant un objet jTpl, ainsi on peut le manipuler avant l'envoi du mail - passage de private à protected de certaines methodes de phpMailer pour que jMailer puisse y accéder sans erreurs
- jforms_jquery.js: le raccourci '$' de jquery n'est plus utilisé, pour éviter les conflits avec les autres bibilothèques (#788)
- correction d'erreurs de syntax dans les versions compressées des scripts js
- jForms:
- corrections dans le datepicker.
- le datepicker ne pouvait être chargé quand ui.core.js était chargé deux fois (#794)
- permission d'utiliser
<date>
etdatetime
dans un groupe. (#789) - corrections sur les listes déroulantes de sélection dans les controles date et datetime (#790)
- API interne de jFormsJQ modifiée, pour permettre les tests unitaires.
- correction d'une erreur javascript lors de la validation des radio buttons. (#781)
- getModifiedControls ne fonctionnait pas pour les checkbox. (#772)
- modules:
- ajout des scripts SQL de création pour jAuth.db, pour postgresql
- renommage de jacl2_admin en jacl2db_admin
- amélioration des templates dans jacl2db_admin
- nouveau module master_admin, pour afficher une interface web d'administration, ainsi qu'une commande jelix
initadmin
pour activer/configurer facilement ce module.
- jDb:
- jDbTools/mysql, erreur sql lors de l'appel à
getFieldList
lorsque le nom contenait un caractère comme '-' (#795). - Amélioration du parsing des scripts MYSQL par jDBTools.
createapp -wwwpath somepath
ne fonctionnait pas sous windows (#776)- mise à jour de Clearbricks à sa version svn-204, et ajout de lib.files.php pour le ticket #776
- init.php utilise maintenant
spl_autoload_register
à la place de__autoload
pour permettre à des bibliothèques tierces de définir leur propre autoload. - corrections d'URL dans les templates de check_install
jIniFileModifier
: des valeurs contenant des caractères non alphanumériques n'étaient pas mise entre quotes- correction d'une regression sur les appels de addJSLink, addCSSLink dans une reponse autre que jResponseHtml (#791)
Corrections et petites améliorations depuis jelix 1.1RC2 ¶
(1.1RC2: svn 1262)
- plugins de jAuth : les mots de passes vides sont maintenant considérés comme invalide
- jelix-scripts, l'application web et les scripts en ligne de commande de l'application ne partagent maintenant plus le même répertoire temp, pour éviter les problèmes de droits. (#633)
- module master_admin :
- corrections dans les templates
- ajout de la prise en charge de jMessage
- petites améliorations diverses
- la commande initadmin configure maintenant les urls pour le moteur simple et basic_significant (#803)
- module jacl2db_admin :
- vérification des droits dans le listener pour le menu de master_admin
- ajout d'un formulaire pour pouvoir spécifier les groupes par defaut pour les nouveaux utilisateurs
- corrections de bugs dans la commande createapp (nom de module), acl2right (erreur de table)
- nouveau module jauthdb_admin pour gérer les utilisateurs avec le driver db de jAuth
- nouvelle option loadClasses dans la section
sessions
, ainsi on peut indiquer les classes à charger avant le démarrage d'une session - jForms: ajout de la méthode
prepareObjectFromControls()
Corrections et petites améliorations depuis jelix 1.1RC3 ¶
- Jelix-scripts :
- initadmin : écrasait les tables de jauth et jacl2 existantes (#820)
- correction de bug à propos de selecteurs
- la commande cleartemp ne nettoyait pas le bon repertoire, et deux nouvelles constantes (JELIX_APP_TEMP_CLI_PATH et JELIX_APP_REAL_TEMP_PATH) doivent être maintenant définies dans le fichier votre_appli/jelix-scripts.init.php
- jWSDL : corrections sur les urls soap générées (mauvaises urls quand le point d'entrée soap n'était pas soap.php)
- jMailer : nouvelle option pour les connections SMTP sécurisées:
smtpSecure
. - jAuth, jAcl2 : le cache de jAcl2 n'était pas vidé lors d'un logout
- jAuth : suppression des options de configuration inutiles enableAclDbEventListener et enableAcl2DbEventListener
- jDao : correction de bug sur le traitement des patterns
- jForms : les champs de type boolean n'étaient pas bien sauvegardé via les dao (#824)
- module master_admin :
- nouvelle possibilité d'ajouter n'importe quel contenu dans le menu (#811)
- correction d'un bug sur l'affichage des widgets (#816)
- nouvelle possibilité d'ajouter du contenu dans la zone info en haut (#812)
- jTcpdf :
- utilise maintenant la fonte helvetica par defaut. (#819)
- Ajout de constantes manquantes (#814)
- plugin de template swf : corrections de bugs dans IE (#805)
- jEvent : problème sur les noms des fichiers des listeners quand ils contenaient des majuscules
(1.1RC3: svn 1281)