Raccourcis : Contenu - rubriques - sous rubriques
EN FR

Piste : 1.1

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 en jClassBinding. Cette classe reste expérimentale.
  • Méthode jClasses::getBinding() enlevée (la méthode bind() 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> et datetime 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)

Autres versions

Fils rss des changements récents dans le wiki Creative Commons License