Ajouter des définitions de champs aux modules ? -
airelibre - 23/01/2012
Bonjour à tous,
Je cherche une manière d'ajouter simplement des définitions de champs à mon module EventsManager (gestion d'évènements en tous genres). Comme pour le module News ou encore les différents modules de Calguy.
Après avoir étudié le code de ces modules, il semble que ce soit fait "à la main" à chaque fois avec une table "fielddefs" et une table "fieldvals".
Aussi, je me demandais si l'un d'entre vous avait connaissance d'un module qui permettrait d'étendre les possibilités d'autres modules avec l'ajout de définitions de champs ? J'ai bien testé ModuleXtender mais rien qui ressemble à cela...
Sinon, et à mon avis après les recherches c'est ce que je vais devoir faire, que pensez-vous d'un module qui permettrait justement aux développeurs de gérer facilement leurs définitions de champs ?
L'idée serait de proposer des classes qui pourraient être intégrées ou étendues (extends) dans d'autres modules. Ceci offrirait des fonctions en plus pour chaque module afin de gérer ces définitions de champs ainsi que leurs contenus.
L'avantage d'une telle méthode serait qu'en un seul et même lieu on peut ajouter des types de champs, voire même des modes de fonctionnement - Par exemple, créer un ensemble de champs "Localisation" qui pourrait regrouper Lat/Long et adresse pour CGGoogleMaps - Et avec un affichage en conséquence sur la page d'édition de l'item du module concerné.
Vous en pensez quoi ? Peut-être que cela existe déjà, mais dans ce cas je ne l'ai pas trouvé...
Merci pour vos avis de développeurs
Ajouter des définitions de champs aux modules ? -
Eric11 - 24/01/2012
Perso je n'ai pas connaissance d'un tel module, par contre il y'a Listit2 qui fonctionne comme cela (si j'ai bien compris ton besoin), il permet de définir des champs et les types, peut être pourrais tu t'en inspirer.
Personellement, je définis cela dans mes class, une variable public reprennant les noms des colonnes et les propriétés type, html et cie, comme sous Zend. Ensuite j'ai une class _core qui interprète tout ça.
Ajouter des définitions de champs aux modules ? -
airelibre - 24/01/2012
Merci Eric11 - Je vais regarder Listit pour voir ce que c'est !
Ajouter des définitions de champs aux modules ? -
Eric11 - 24/01/2012
Listit est pas mal foutu (soucis juste pour les langues mais facilement corrigeable) il permet de se développer rapidement un petit module personnel, on l'a utilisé avec Romain et on l'a trouvé bien pratique. Moi j'ai regardé le code (et oui, comme celui de ton module Event), j'ai trouvé des trucs interessant.
Ajouter des définitions de champs aux modules ? -
airelibre - 24/01/2012
Merci
Ajouter des définitions de champs aux modules ? -
bess - 24/01/2012
Citation :Sinon, et à mon avis après les recherches c'est ce que je vais devoir faire, que pensez-vous d'un module qui permettrait justement aux développeurs de gérer facilement leurs définitions de champs ?
L'idée serait de proposer des classes qui pourraient être intégrées ou étendues (extends) dans d'autres modules. Ceci offrirait des fonctions en plus pour chaque module afin de gérer ces définitions de champs ainsi que leurs contenus.
mon framework se base justement sur ce genre de déclaratif. Autant dire que le travail est déjà pré-maché
On peut étudier le fait de faire un module dédié à cela mais par expérience (avec mon recul sur le sujet) ce sera pas simple de prévoir le champs des possibles :/
Ajouter des définitions de champs aux modules ? -
airelibre - 25/01/2012
Merci Bess pour ta réponse - De quel framework parles-tu ? C'est un framework maison ?
Je dois encore regarder ListIt, mais si je suis amené à me lancer dans le développement d'un module de ce genre, c'est sûr que y'a du taff. L'idée serait de proposer un "Core" avec quelques champs, qui serait ensuite extensible avec de nouvelles classes (1 classe = 1 type de champ). Ainsi, on pourrait imaginer que n'importe quel développeur de module puis ajouter une classe de champ dans un dossier spécifique de son module, qui serait alors repris dans ce même module.
Y'a du boulot, mais si ca fonctionne, ca serait un gros gain de temps pour tous les autres modules, et une souplesse intéressante pour la gestion des contenus de ces modules.
Ajouter des définitions de champs aux modules ? -
bess - 25/01/2012
Code :
De quel framework parles-tu ? C'est un framework maison ?
Mmmfs, :
http://mmmfs.furie.be
et je fonctionne avec du déclaratif,
Une table = X champs
à chaque champs je lui déclare un "HTMLField" correspondant
et j'utilise les fonctions de cette classe pour tout générer : le backoffice, le front-office et tout le reste.
Je présence justement ce framework durant le prochain GeekMoot
il n'est pas en open-source pour le moment.