Planète eZ Publish, Ze french corner!

Planète eZ Publish (Page 33)

Nabil Alimi : Migration eZ Publish 4.0.1 et www.assiki.fr

J'ai procédé à la migration vers la version 4.0.1 d'eZ Publish récemment.
Je partais d'une version 3.9.0, il était donc nécessaire de faire l'opération en 2 étapes à savoir passage en 3.10.1 puis en 4.0.1. Pas d'énormes soucis pour peu que l'on suive les procédures rédigées par eZ Systems . A noter toutefois que la mise à jour du charset de la base de données est bel et bien facultative. Si vous êtes dans mon cas, n'oubliez pas non plus, et cela n'est pas forcément trivial, qu'il sera nécessaire de passer en PHP5 l'ensemble de vos extensions. Par ailleurs, si vous tenez à conserver vos URLs telles qu'elles, une configuration du fichier transform.ini sera nécessaire.

Je profite de ce cours billet pour vous annoncer la mise en ligne du site via lequel je présente mes activités de développeur web indépendant (http://www.assiki.fr ). Techniquement, ce site tourne sur la même instance d'eZ Publish que ce blog. Le tout aura nécessiter 4 jours de réalisation : graphisme, intégration xHTML puis intégration eZ Publish compris. A noter qu'il est multilingue (anglais et français).

Publié par Nabil Alimi le

Jean-Luc Nguyen : eZ Publish : Redéfinir le content/action

Il est possible de créer des content/action customisés dans eZ Publish : vous mettez vos nouvelles actions dans extension/mon_extension/actions/content_actionhandler.php.

Il faut redéfinir le content.ini dans votre extension en ajoutant le fichier extension/mon_extension/settings/content.ini.append.php, qui contient :

[ActionSettings]
ExtensionDirectories[]=mon_extension

Le fichier extension/mon_extension/actions/content_actionhandler.php contient le code suivant :

function mon_extension_ContentActionHandler( &$module, &$http, &$objectID )
{
if ( $http->hasPostVariable("CustomAction") )
{
// vos nouvelles actions
}
}

Le nom de la fonction doit commencer par le nom de votre extension, sinon ça marche pas !

Dans votre template, vous définissez votre formulaire :




Le ContentObjectID doit être inclus dans le POST.
Pour plus d’exemples, allez faire un tour dans le code : /kernel/content/action.php pour réutiliser du code.

Publié par Jean-Luc Nguyen le

Arnaud Georgin : Invoquer des méthodes d’un objet métier dans un template ezPublish

Lors de développements de modules ou d’extensions pour le CMS ezPublish nous sommes souvent amenés a développer des classes php métiers (pour accéder aux données, réaliser des traitements particuliers, …).

Il peut devenir alors utile dans un template de vouloir manipuler une instance d’une classe métier et d’invoquer des méthodes php de cette classe. EzPublish fournit pour cela un mécanisme assez simple à mettre en oeuvre qui permet d’exposer des méthodes d’une classe php à un template.

Pour cela, la classe métier doit définir les trois méthodes suivantes :

  • attributes
  • attribute
  • hasAttribute

Méthode attributes

Cette méthode permet de donner la liste de toutes les fonctions de la classe que le template peut invoquer sur l’instance de cette classe. En gros elle retour un tableau de chaines de caractère avec le nom des méthodes accessibles dans le template.

Elle ne prend pas de paramètre en entrée.

Méthode hasAttribute

Cette méthode permet de valider que la fonction invoqué sur l’instance de la classe dans le template existe bien.

Elle prend en entrée un paramètre de type chaine de caractère représentant la méthode à invoquer

Méthode attribute

Cette méthode fonctionne comme un hub en reroutant l’invocation de fonction depuis le template sur la bonne méthode de la classe.

Elle prend en entrée deux paramètres :

  • une chaine de caractère représentant la méthode invoquée
  • un booléen indiquant s’il s’agit d’une fonction invoqué ou un attribut de la classe

Voici un exemple de classe php implémentant ces méthodes :

class myClass{
public function __construct(){…}
public function sayHello(){
return “hello the world !!!”;
}
/**
* Retourne un tableau avec toutes les méthodes utilisables dans
* un template
*
* @return array liste des toutes les méthodes accessibles en template
*/
public function attributes(){
return array(’sayHello’);
}
/**
* Valide que la méthode appellée dans un template existe
*
* @return bool true si la fonction existe false sinon
*/
public function hasAttribute($attr){
return in_array($attr, array(’sayHello’));
}
/**
* Execute la méthode demandée dans un template
*
* @param string $attr
* @param bool $noFunction
*/
public function attribute($attr, $noFunction = false){
if($attr == ’sayHello’){
return $this->sayHello();
}
}
}

Maintenant dans un template auquel nous avons au préalable passé une instance de la classe myClass, nous pouvons invoquer la méthode sayHello de la manière suivante :

{$instance.sayHello}
Publié par Arnaud Georgin le


Arnaud Georgin : Extension ezPublish AjaxClassEdit

Voici la dernière extension ezPublish que j’ai développé.

Cette extension modifie l’interface d’édition et de création des classes de contenu ezPublish en évitant de poster et recharger la page à chaque modification.

Tous les traitements se font en AJAX ce qui rend la gestion des classes plus facile et surtout plus rapidement (notamment lorsqu’il faut déplacer des attributs).

L’extension utilise la framework javascript JQuery dans sa version 1.2.6 et fonctionne à partir de la version 4.0 d’Ez Publish.

vous pouvez télécharger l’extension à l’adresse suivante : http://ez.no/developer/contribs/applications/ajax_class_edit

Installation de l’extension

Pour l’installation il suffit de suivre les étapes suivantes :

  1. décompresser l’archive zip dans le répertoire extension de votre installation ezPublish
  2. activer l’extension dans le backoffice (onglet administration)
  3. regénérer les autoloads

N’hésitez pas à laisser vos commentaires si vous rencontrez un problème un bug ou si vous désirez des améliorations

Publié par Arnaud Georgin le



Alain Sahli (Yoteco) : [PHP][Web] eZ developper day à Paris

http://blog.gauthier-garnier.fr/post/eZ-developer-day-a-Paris-7-novembre-2008

Le 7 novembre a eu lieu l'eZ developper day à Paris.
Cette journée est toujours très riche en annonce. On apprend notamment que d'ici la fin de l'année la version 4.1 d'eZ Publish sera disponible.

Pour une description complète de cette journée vous pouvez vous rendre ici : http://blog.gauthier-garnier.fr/post/eZ-developer-day-a-Paris-7-novembre-2008

Publié par Alain Sahli (Yoteco) le

Ronan Guilloux : Compte-rendu de l'eZ Publish Developer Day in Paris, ce 7 novembre à Paris

eZVoici un compte rendu détaillé de l'eZ Publish Developer Day qui s'est déroulé ce 7 novembre à Paris :

  • Une matinée réservée aux partenaires d'eZ Systems ;
  • Une après-midi consacrée à la communauté des développeurs.

Le tout organisé à La Cantine, le bar parisien cheap et branchouille ouvert par le Silicon Sentier et la Région Ile de France

Commentaires bienvenus !

EDIT : Merci à Jérôme Renard et Ludovic Gasc pour les relectures.

Matinée eZ Partner Program

Au cours de la matinée, consacrée aux membres du programme de partenariat d'eZ Systems, Roland Benedetti a refait le point sur le positionnement d'eZ Systems et l'actualité d'eZ Publish. Le secteur media-entertainment reste sa principale niche, avec comme prochaine ouverture possible le monde de la finance (cf. des références récentes chez Banque Populaire et Société Générale). Le modèle économique reste basé sur le consulting, les abonnements et la maintenance, et de nouveaux recrutements sont en cours. eZ Systems redémarre aux USA, ouvre un bureau au Japon et un bureau à Paris (9°). Les plus récentes références sont Geo.fr, des sites pour Endemol et la BBC.

La vidéo promotionelle est arrivée

Roland nous a également diffusé une vidéo reprenant des interviews en plusieurs langues de clients finaux d'eZ Publish en Europe, un projet qui avait été proposé lors d'une rencontre entre les participants du eZ International Partner Meeting à Nuremberg en janvier 2008, projet dirigé par Maud, maintenant achevé et bientôt disponible. EDIT : Elle est là : http://fr.youtube.com/watch?v=UMLx-YUwoVk

Partenariat et offre de support & maintenance

Un point long et complet a été fait sur l'offre de maintenance et de support : Clarification des tarifs, nouveau support téléphonique, nouveaux tarifs dégressifs, nouveautés dans le système de "points" pour les membre du programme de partenariat. L'idée de fond était : "Vous (partenaires) intégrez des solutions basées sur eZ publish et nous (eZ Systems) en assurons le support et la maintenance". Roland et Maud ont détaillé comment l'offre de maintenance permettait entre autre de ne pas attendre la prochaine release communautaire pour bénéficier des patchs correctifs, puisque ceux-ci peuvent être installés sur chaque instance en mode automatique, semi-automatique ou manuel. Le support devient plus permissif quant aux développements dont eZ assume la stabilité : il autorise désormais les prestataires à développer et à soumettre au support des extensions non obligatoirement approuvées par eZ Systems. Avec les modifications apportées système de classement, les partenaires de niveau "Bronze" font maintenant clairement figure de "petits" partenaires, quelques soient la qualité ou la quantité de contributions au CMS eZ Publish, ou la nature de leurs références clients. eZ Systems n'entend s'impliquer que peu vis-à-vis de ces partenaires, à qui il ne permet plus d'utiliser le logo du partenariat avec eZ Systems. Cela vise les petites et moyennes web agency, dont l'activité ne serait pas uniquement centrée sur eZ Publish et dont le nombre annuel de références de ou contributions ne permet pas d'atteindre les 20 000 points annuels, qui est le seuil des partenaires Silver. Le niveau Bronze ne sert finalement plus que de faire-valoir aux niveaux qui lui sont supérieurs. Maud et Roland ont conclu en indiquant que la France était le pays le plus actif parmi les professionnels intégrateurs d'eZ Publish : Le premier pays représenté dans les stats de consultation d'eZ.no, le premier pays pour le nombre de formation dispensées par eZ Systems et le pays où se font les projets les plus complexes sur eZ Publish. Mais la France est aussi, selon eux, le pays où "la culture de l'achat d'offre premium est la moins développée". Ce qui est gentiment dit.

eZ

La Roadmap d'eZ Publish

eZ Publish 4.1

eZ Publish 4.1 a été très retardé par un bug sur les url_alias multilingues (8 mois-homme de corrections). Elle intègrera notamment un nouveau système de cache (re-priorisation du cache), le support d'Oracle, le nouvel Online Editeur basé sur Tiny MC, (rétro-compatible avec les contenus déjà existant au format eZ XML, format qui restera utilisé dans la nouvelle version, et compatible avec IE sous VISTA), les Object States, un cache amélioré (plus facile à distribuer dans un cluster), et la gestion du password expiry. La release est attendue pour décembre 2008.

eZ Flow 1.1

eZ FLow 1.1 sera packagé avec la 4.1, mais peut-être sans le multifile upload, car le passage de Flash 9 à Flash 10 a vu apparaitre des problèmes de versions. eZ Find 2 est également prévu en package dans eZ Publish 4.1. A noter : Une nouvelle certification apparaitra avec la version 4.1 d'eZ Publish.

eZ Publish 4.2

eZ Publish 4.2 est prévu pour le 2ème ou le 3ème trimestre 2009, avec notamment un éditeur CSS inclus et la gestion des droits sur les attributs de classe.

Project V

eZ Publish 5, "Project V" est sur les rails, avec une refonte / simplification du kernel (pour aboutir à un micro-kernel) et en contrepartie des librairies plus étoffées. Projet V correspond à une démarche de refactoring profond, "eZ Components oriented", CMS et un framework à la fois. Des incertitudes voire des difficultés sont à prévoir sur la migration du code de la 4.3 vers la 5. La migration des données pourrait cependant être assurée. Le même système de template devrait finalement être gardé, contrairement à ce qui avait été envisagé, mais eZ Publish 5 permettra des filtres propriétaires alternatifs à eZ Template : il devrait être possible d'utiliser directement Smarty par exemple. Project V devrait assez probablement nécessiter PHP 5.3.

eZ Components

La prochaine version d'eZ Components devrait être livrée fin 2008, intégrant un vrai modèle MVC, qui sera en fait la fondation du "Project V".

eZ Team Room

On notera la démo assez convaincante d'eZ Team Room, une solution de portail collaboratif basée sur eZ Publish, avec personnalisation de l'interface par chaque utilisateur via drag'ndrop (netvibes-like), collaboration sur les documents partagés, groupes ou ateliers de travail avec pour chacun une sorte de mini-GED, un blog, un calendrier, un forum, bref des fonctionnalités très webdeux rappelant les bases de bluekiwi (par exemple). Cette solution pourrait être vendue en mode service, même si cela n'est pas trop le cœur de métier d'eZ Systems, A suivre, donc.

Le point sur eZ Find 2.0

Des nombreuses nouveautés présentées en détail par Paul on retiendra un ensemble de fonctionnalités qui au final feraient presque d'eZ Find 2.0 un mini-goggle bot, capable d'être configuré pour mettre en avant certains résultats plutôt que d'autres, grâce à un "facteur de boost" sur certains résultats pour qu'ils remontent plus que d'autres dans les résultats ("a tunable relevancy ranking"). eZ Find 2.0 intègrera aussi la mise en surbrillance des mots recherchés ("keyword highlight"), des filtres de recherche et de tri avancés, la possibilité d'associer du contenu lié à tel résultat ("more like this..."), la correction / suggestion orthographique (spelll checking), l'indexation de contenus externes (fils RSS, URL, etc.), la prise en compte de critères géographiques, un système de cache sur les filtres de recherche, une fonctionnalité Best Guess ("J'ai de la chance" google-like). Un micro-Google, quoi.

La présentation des résultats par "facets" permettra des tris par classe, attributs, métadonnées, tags, ou par auteur. Les contenus multilingues devraient être gérés avec le choix de la langue s'affichant dans les résultats. eZ Find 2.0 devrait également intégrer des fonctionnalités de "stemming" ("reducing words to common form").

La capacité d'indexation d'eZ Find 2.0 est désormais poussée jusqu'à 100 millions d'objets, et devient compatible avec les fonctionnalités natives de Roles & Policies d'eZ Publish.

A suivre, eZ Find 3.0 devrait encore s'enrichir des fonctionnalités du projet Nutch (http://fr.wikipedia.org/wiki/Nutch) de la fondation Apache.

Object States

Les object States fonctionneront comme les sections, c'est à dire qu'ils seront hérités par une arborescence entière, et ne seront pas géré par le système de version d'objet. Ils permettront un workflow avec gestion des rôles et droits sur chaque état de l'objet. Il ne sera cependant pas possible de faire nativement des discussion ou des commentaires sur les passages d'un état à un autre. Les object states ne seront disponibles que sur les objets déjà publiés. Ils permettront de faire des checkin / checkout / lock sur les objets, de gérer un personal draft / personal trash, et d'utiliser un trigger sur le changement d'état d'un objet.

L'une des applications possibles sera la possibilité de préparer des contenus en vue d'une version de pré-production ou d'une version 2 d'un site.

A suivre

Paul a également annoncé le lancement d'un eZ Dev Blog, permettant une meilleure communication entre la communauté et les responsables du projet eZ Publish chez eZ Systems, avec la possibilité pour la communauté de consulter les spécifications des prochaines versions et pour eZ Labs de faire des RFC (request for comments) sur ces spécifications. Cela devrait notamment concerner les prochaines versions d'eZ Find et le Project V.

Enfin Roland et Maud nous ont annoncé que le prochain International Partner Meeting se tiendrait à Barcelone les 29 et 30 janvier prochain.

eZ Camp

La journée s'est achevée par des démos, notamment d'extensions récemment développées par la communauté, mais non encore partagées :

  • Une démonstration de configuration d'eZ pour une instance multisite & multilingue, par Ludovic Gasc, de DMoon (Belgique)
  • eZ Static Export, extension d'export au format HTML statique d'une arborescence entière dans eZ Publish, export synchronisé avec rsync, initialement développée par eZ Systems France pour le compte de Noven et présentée par Jérôme Vieilledent de chez Noven, extension utilisée pour le Voyazine de voyages-sncf.com. Cette extension permet de ne pas mettre eZ publish en frontal, pour des questions de performance, et de servir des pages HTML statiques initialement générées depuis eZ Publish, mais avec un objectif de 2500 pages / seconde sur Apache 2. L'extension fait notamment une utilisation intelligente du eZ Cache Manager d'eZ Publish
  • Picnik Image Editing, une extension développée par Jérôme Cohonner, permettant l'édition d'image en ligne en utilisant les APIs de Picnik.com. Cette extension complète et améliore les possibilités de manipulation d'image déjà offertes nativement par eZ. Elle utilise les fonctionnalités wget ou cUrl et nécessite donc que l'instance d'eZ qui l'implémente soit disponible depuis Internet pour pouvoir dialoguer avec Picnik. Une démo en vidéo est disponible sur Youtube

eZ Publish ? "Only for connoisseurs".

Voilà, bravo si vous avez tout lu. J'ajoute en conclusion que...

  • eZ Publish devient d'année en année un superbe projet Open Source, porté avec bravoure et brio par des gens vraiment talentueux. La communauté reste petite et pratiquement composée que de professionnels, mais avec des références prestigieuses et des contributions de bonne facture. C'est le côté un peu "Only For Connoisseurs" d'eZ Publish.
  • Contrairement à d'autres projets derrière lesquels on trouve une entreprise privée et qui finissent par se scinder en deux avec une version communautaire et "réduite" d'un côté et une version pro complète et payante de l'autre, eZ Publish reste aujourd'hui un projet 100 % GNU GPL. On murmure que cela ne serait bientôt plus le cas de Drupal, par exemple. Ca sent le FUD, mais d'après les discussions entre partenaires d'eZ Systems, on s'aperçoit aussi que ce point est observé de près par tous.
  • Enfin, et c'est un peu une évidence, linkedin.com est un bon moyen pour garder contact avec les partenaires (Belges, Espagnols, Français) rencontrés lors de cette journée.
Publié par Ronan Guilloux le

Damien Pobel : eZ developer day à Paris le 07/11/2008

Bon cette fois ci je ne pouvais m'y rendre... Je suis content de voir que d'autres ont fait un résumé :

Merci à eux pour la séance de rattrapage :-) En passant, ce serait bien si ce genre d'évènement était filmé et diffusé sur eZ.no !

Edit : Ajout du résumé de Ronan Guilloux.

Publié par Damien Pobel le