Ma Wish list pour eZ Publish
- Publié le 09 Juin 2009
- 13 commentaire(s)
- Catégorie : Technologies Web
“- Tu veux quoi pour Noël ?
”
- Ha je sais pas, fais moi une surprise !
- Ca te dirait un voyage en norvège ? Les fjords, et tout ça...
- ... NON, on ira pas demander à eZ de refaire son Back Office
eZ Publish est en pleine mutation, avec de nombreuses pistes d'évolutions énoncées durant les divers roadmaps, developper days et autres discussions de bloggeurs. J'en profite pour donner ma « liste de voeux » des orientations et des améliorations que je souhaiterais « modestement » voir implémenter sur ce bel outil, en incluant d'ailleurs celles qui sont déjà clairement prévues pour les versions à venir (c'est une façon d'approuver).
Evolutions sur le système d'installation
- Une installation nue pour les experts, sans extensions, ni classes prédéfinies, qui permette ensuite de reconstruire son projet au besoin en ajoutant ses classes et ses extensions à partir d'une base propre
- Un assistant de création de « setup » pour les débutants, ou le choix des langues et des jeux d'extensions (orienté Web 2.0, ou shop, ou encore Extranet) s'effectue sur une interface (avant ou pendant l'installation).
Evolutions sur le projets.ez.no
- Sur http://projects.ez.no/, un explorateur de code (type Trac)
- Sur http://projects.ez.no/, une sélection d'extensions conseillées pour les débutants, par exemple en croisant le nombre de téléchargement, ou en croisant les "toplist" des membres, etc.
Evolutions sur le Back Office
- Redéveloppement des templates, en respectant les bonnes pratiques d'écriture du code (supprimer les mécanismes obsolètes comme les sections par exemple). Le Back Office pourrait ainsi servir de modèle exploitable pour les débutants. Je suppose que cette réécriture aura lieu lors du changement du système de templating (Librairie de Template eZ Components)
- Refactorisation ergonomique entre eZ OE et certains Datatypes. Le Online Editor permet par exemple de parcourir facilement le contenu par diverses méthodes (browse, recherche, signets) lors de l'ajout d'un média ou lors d'une association d'objet (ou eznode), ce qui n'est pas le cas pour les datatypes équivalents (images, object relation, object relations)
- Supprimer ezshop du Back Office par défaut. Les boutiques sont devenues marginales, et rarement exploitées en l'état avec eZ Publish. Autant ne pas favoriser l'exploitation de cet onglet obsolète (et non sécure), qui peut rapidement donner une image négative de l'outil
- Supprimer les interfaces influant sur l'écriture de settings via des formulaires (comme l'activation d'une extension par exemple, ou l'activation des debug). eZ Publish contraint tôt ou tard les développeurs à se confronter à l'exploitation des settings en fichiers, avec une réflexion sur l'organisation des settings et leur surcharge. La double possibilité d'écriture en fichier / interface est dangereuse pour 2 raisons :
- Elle peut provoquer des situations non maîtrisées (un Webmaster s'amusant avec certaines interfaces)
- Elle peut freiner l'apprentissage de l'outil, en laissant croire que l'on pourra tout faire à partir des interfaces, ce qui ne sera jamais le cas
- Supprimer les interfaces de manipulation du cache, qui comme les settings génèrent des situations tragiques, alors autant ne pas laisser la possibilité aux Webmaster / développeurs non informés de faire de graves erreurs. Par ailleurs, la suppression de ces interfaces serait une bonne façon de contraindre les développeurs à se préoccuper des mécanismes de cache automatiques (smatviewcache) ou avancées (API), et de laisser enfin les Webmasters s'occuper simplement de la saisie des contenus.
- Plus généralement revoir certaines logiques de navigation dans le Back Office (la médiathèque, le browse par exemple) et revoir le graphisme (pour le rendre plus limpide)
Evolutions plus techniques (pour les experts)
- Etendre le persistent_variable, à plusieurs variables, ou sur un mécanisme non concurrent du principe d'override actuel (actuellement il faut choisir entre l'exploitation pour override ou pour propager des valeurs dans le pagelayout.tpl)
- Revoir le principe des cache_block, pour les rendre plus finement configurable dans leur logique d'expiration
- Etendre le smartviewcache sur d'autres directives, comme par exemple les arbres descendants non relatifs (vider le cache d'un arbre de contenu non lié au noeud courant)
- Pouvoir stocker du contenu dans une base de données ou un container tierce (amélioration déjà sur le roadmap)
- Pouvoir syndiquer facilement des contenus (REST ou SOAP) & synchroniser des contenus entre plusieurs installations eZ Publish (déjà évoqué dans les roadmaps).
- Intégrer une couche basse de Workflow exhaustive (hook à tous les niveaux d'actions), par exemple à partir de la librairie de Workflow d'eZ Components
- Abandonner les librairies PHP hors d'age de l'API (toujours en services pour des raisons d'historique et de compatibilités), et favoriser les librairies plus avancées et mieux écrites, comme les excellents eZ Components (par exemple pour syndiquer du contenu, manipuler les fichiers de settings, etc.). C'est visiblement la démarche actuelle, qui est certes attendue mais délicate, comme par exemple le remplacement inévitable du système de templating qui va fortement compliquer les montées de versions et nécessiter la réécriture complète du Back Office (une bonne occasion à ne pas rater)
- Refaire une documentation de type "référentiel" complète et à jour (un recrutement semble en cours à cet effet), aussi bien pour eZ Publish que pour son API
- Repenser la logique de documentation autour d'un Wiki. L'initiative ezpedia est certes intéressante, mais totalement inaboutie pour plusieurs raisons :
- Tags :
- eZ Publish
Que boire avec ce billet ?
Domaine du Mas Blanc - Clos du Moulin - Rouge 2002
| Région : | Languedoc |
| Appellation : | Collioure |
| Domaine : | Domaine du Mas Blanc |
| Couleur : | |
| Stock : | 0 |
| Notation : | |
| Prix : | 15 € |
| Commentaire(s) : | 0 Commentaire(s) |
L'année 2002 n'a pas bonne presse, et c'est souvent justifié sur certains domaines et certaines appellations (cela explique le prix de cette cuvée habituellement plus coûteuse). Dommage pour les sceptiques, cette cuvée à dominante de mourvèdre est splendide avec quelques années de gardes (7 ans), et propose une concentration, une élégance et une pureté proche des grands Bourgogne.
Ctrl+C / Ctrl+V
J'espère que tu m'en voudras si je copie colle et que j'envoie aussi cette lettre en décembre ![]()
Je rajouterai aussi l'uniformisation des identifiants d'attributs dans les classes prédéfinies (ça impliquerait un peu de remaniements des Templates..)
Mais bon se serait bien, comme on a pas d'héritage
de pouvoir avoir des Templates génériques (abstraits). Il faudrait juste que toutes les classes aient un title ou un name, ou encore, un short_title ou un short_name mais que ça soit uniforme !
Et aussi les objects states dans les versions mais bon c'est le ++ faudrait être trop sage !
A bientot
C'est moi ou on est en juin ?
Une belle liste tout ça, de bonnes idées là dedans. Il me semble avoir déjà entendu parler de certaines... je me trompe ? ![]()
Rien de très délirant là dedans. Le plus difficile dans tout ça est que plusieurs de ces suggestions (celles relatives au cache par exemple) s'inscrivent dans des refontes plus majeures du CMS, et font appel à des termes qui disparaitront peut être. Mais ce n'est certainement pas ça qui va nous arrêter !
trac sur projects.ez.no
Le bug tracker est cruellement en manque, tout aussi bien que le concept de "release" pour chaque projet.
Par contre une interface web vers le svn est dejà là, seulement un peu cachée: http://websvn2.projects.ez.no/wsvn/ezclasslists p.e. pour le projet en top de la homepage aujourdhui
déclaration des classes de contenu en PHP
Et pourquoi pas se débarrasser de la déclaration des classes de contenu en base de donnée au profit d'une déclaration sous forme de vrai classe PHP ?
un truc du genre :
class myArticle extends eZContentClass
{
function contentClassArticle()
{
$this->Identifier='article';
$this->Name=eZI18n('Article');
$this->NamePattern=''<short_title|title>";
$this->Attributes = array (
new eZStringDataype( 'title', eZI18n( 'Title' '), ...),
new eZXMLDataype( 'body', eZI18n( 'Body' '), ...)
);
}
...
}
Avantages : possibilité de sauvegarder et historiser les classes dans les outils de versionning (Subversion...), livraison en production facilitée, allègement du modèle de données et diminution des requêtes sur la base...
Inconvénient : on perd la possibilité de changer la structure d'une classe en production sans re-livrer le source, mais qui change les classes en production sans avoir à livrer quoique ce soit ?
L'outil d'édition des classes pourrait alors devenir un simple outil de RAD pour produire le fichier PHP initial...
Je plussois!
wow, retour à d'anciennes discussions ^_^
Alors j'appuis ta wishlist en rajoutant (ou renforçant) sur :
* La mise à jour de la doc
* Un installer/Gestionnaire de MAJ
* Le module shop à faire disparaitre et remplacer par des modules d'intégration de shop type magento/uberkart/shopify/<add you fav ecommerce stuff>
* La refonte du back-office est un MUST
* Un système de gestion de extensions installation/activation/maj via un outils en ligne de commande (a la apt-get/pear etc) et inclusion d'un système de gestion de dépendances (pour éviter d'avoir 3 extensions qui embarque chacune leur propre version de mootools par exemple ^_^)
* Revoir le système de mails, assez merdique à mon goût l'exploitation de template
* Les workflows c'est vraiement à revoir de fond en comble, mais c'est en cours d'avancement avec les ObjetStates
* + d'eZComponents (... ezcTemplate?)
* La gestion de divers environnements pour les configurations sensibles
* L'inclusions d'hander à chaque étape du cycle de vie des contenus et de l'exécution de tout module/vue
@Damien ta proposition de définition de classe en php est très Django like! j'adore
ps pour le coup des handlers, j'ai besoin d'ajouter un post-traitement lors de la collecte d'information, si quelqu'un à une solution qui n'implique pas de réécrire mon propre module de collecte d'information je suis preneur!
Joyeux Noël!
Après je sort
Pour moi, la principale évolution que j'attend c'est de pouvoir utiliser PHP comme langage de template... . Mais bon, je crois que je vais pas me faire des amis.
Ba...
Bref ça recoupe en partie ce que j'avais fait.
http://www.wascou.org/wascou/Blogs/Maxime-THOMAS/Cher-pere-Noel-312
Sinon pour l'install d'un ez "à poil", c'est déjà possible, tu sélectionne le package "plain" et tu n'auras que les types de base, folder, article, file... Maintenant si tu veux vraiment un truc à poil à poil, ça va être difficile dans la mesure où tu as quand même besoin de folder et settings pour les top levels nodes.
Pour les components, on est tout à fait d'accord, il est temps de passer à l'action et de les intégrer. La vérité est qu'eZSystems ne voit aujourd'hui aucun business sur ce genre de mise en place, donc il faut de la réparation ou du remplacement progressif. Avec Project V on a un peu plus d'espoir.
Blagues sur noel
Maxime : Damned je connaissais pas ton billet ! Je vais passer pour un gros copieur de vannes sur noel ! Plus grave, ca pourrait confirmer une tendance humoristique similaire chez les fans d'eZ Publish...
Le même template ?
@gandbox Auriez vous utilisez le même template ?
Project V ... aporware ?
"Avec Project V on a un peu plus d'espoir."
Pour l'instant la seule interprétation que l'on peut avoir du 'V' est Vaporware.
Sauf si quelqu'un a des informations à ce sujet sur l'état de l'avancement de ce projet (commits SVN, blogs, autre ...)
Re
Pour moi en prio, ça serait :
- Un vrai moteur de workflow.
- Plusieurs niveaux de surcharges des fichiers ini seraient top.
Surtout quand on est sur du multisite multilingue et qu'on doit maintenir plus d'une dizaine de siteaccess quasi identique.
Re à nouveau
@Sylvain :
les object states tels qu'ils existent débloquent un peu la situation, mais pour l'instant c'est vraiment que de la rustine;
je ne trouve pas ça top que l'état d'un objet soit uniquement une information supplémentaire associée à la version publiée d'un contenu.
La date de publication n'a plus de sens avec l'utilisation des objet states, et leurs utilisations n'est plus valable sur de la mise à jour de contenu, puisqu'en changeant l'état d'un objet on ne leur rend plus visible de l'internaute.
entre les sections, les états et les versions... l'association n'est pas cohérente.
Et puis, ils auraient au moins pu intégrer une tableau de bord pour afficher la liste des contenus par état. Sur un site riche en contenu, pas évident de trouver les contenus que l'on doit traiter.
Bravo
Et bien bravo pour ta prestation de l'eZConf, désolé de l'avoir raté, ton sujet m'a paru très intéressant d'apres le post http://www.llaumgui.com/post/petit-resume-de-l-ez-conference-awards
raa tu as raté l'award du bloggeur Bouhhhh ^^
