je viens de déposer un plugin Extras2 dans _dev_ ; son objectif est de
permettre d'éditer n'importe quel champ de n'importe quelle table dans
l'espace privé. J'ai fait l'interface qui liste les tables et champs
disponibles, et permet de choisir ceux qu'on veut rendre éditables.
Il a aussi un navigateur très basique dans ces tables (la pagination
s'arrête à 50 items), et un formulaire d'édition encore plus
élémentaire.
A faire :
* lorsqu'un champ appartient à une table connue (articles,
auteurs...), proposer ces extras dans la page normale d'édition de ces
éléments.
* navigation ( passage en squelettes ? )
* intégrer au core ou aux crayons ?
Une petite erreur quand j'accède à la page via (?exec=extras)
Warning: Invalid argument supplied for foreach() in
/home/site/public_html/plugins/extras2/inc/extras.php on line 43
Le 6 juillet 2008 23:24, Fil <fil@rezo.net> a écrit :
je viens de déposer un plugin Extras2 dans _dev_ ; son objectif est de
permettre d'éditer n'importe quel champ de n'importe quelle table dans
l'espace privé. J'ai fait l'interface qui liste les tables et champs
disponibles, et permet de choisir ceux qu'on veut rendre éditables.
Il a aussi un navigateur très basique dans ces tables (la pagination
s'arrête à 50 items), et un formulaire d'édition encore plus
élémentaire.
A faire :
* lorsqu'un champ appartient à une table connue (articles,
auteurs...), proposer ces extras dans la page normale d'édition de ces
éléments.
* navigation ( passage en squelettes ? )
* intégrer au core ou aux crayons ?
Super plugin à haut potentiel mais je crois me souvenir que les champs extra 1 permettent aussi, et c'est même le grand interet, de creer un champs d'un certain type : select, radio, etc.
je viens de déposer un plugin Extras2 dans _dev_ ; son objectif est de
permettre d'éditer n'importe quel champ de n'importe quelle table dans
l'espace privé. J'ai fait l'interface qui liste les tables et champs
disponibles, et permet de choisir ceux qu'on veut rendre éditables.
Il a aussi un navigateur très basique dans ces tables (la pagination
s'arrête à 50 items), et un formulaire d'édition encore plus
élémentaire.
A faire :
* lorsqu'un champ appartient à une table connue (articles,
auteurs...), proposer ces extras dans la page normale d'édition de ces
éléments.
* navigation ( passage en squelettes ? )
* intégrer au core ou aux crayons ?
Super plugin à haut potentiel mais je crois me souvenir que les champs extra
1 permettent aussi, et c'est même le grand interet, de creer un champs d'un
certain type : select, radio, etc.
c'est pour ça que j'hésite à les mettre avec les crayons, qui
permettent de créer des champs de TOUS types (y compris upload de
fichiers) avec un mécanisme de controleur/vue
je viens de déposer un plugin Extras2 dans _dev_ ; son objectif est de
permettre d'éditer n'importe quel champ de n'importe quelle table dans
l'espace privé. J'ai fait l'interface qui liste les tables et champs
disponibles, et permet de choisir ceux qu'on veut rendre éditables.
WOW !
A faire :
* lorsqu'un champ appartient à une table connue (articles,
auteurs...), proposer ces extras dans la page normale d'édition de ces
éléments.
Est-ce qu'il serait possible/envisageable qu'il cherche aussi dans une table <table_connue>_extras, histoire de ne pas altérer le modèle de données de SPIP ?
* navigation ( passage en squelettes ? )
* intégrer au core ou aux crayons ?
Si les extras v1 disparaissent à terme du core, il faudrait prévoir une procédure de migration vers ce nouveau système, ce qui risque d'être compliqué s'il n'est pas dans le core.
Est-ce qu'il serait possible/envisageable qu'il cherche aussi dans une table
<table_connue>_extras, histoire de ne pas altérer le modèle de données de
SPIP ?
Je n'ai pas touché aux anciens extras
Si les extras v1 disparaissent à terme du core, il faudrait prévoir une
procédure de migration vers ce nouveau système, ce qui risque d'être
compliqué s'il n'est pas dans le core.
Est-ce qu'il serait possible/envisageable qu'il cherche aussi dans une table
<table_connue>_extras, histoire de ne pas altérer le modèle de données de
SPIP ?
Je n'ai pas touché aux anciens extras
Oui, je sais bien, c'est juste une proposition de fonctionnalité pour extras2.
Si les extras v1 disparaissent à terme du core, il faudrait prévoir une
procédure de migration vers ce nouveau système, ce qui risque d'être
compliqué s'il n'est pas dans le core.
Je ne crois pas qu'ils disparaîtront
Ah bon ? Il me semble que pas mal de monde dit pourtant depuis le début que c'est un hack crade, à virer dès que possible. Je les utilise depuis le début, mais il est vrai que leur stockage dans un unique champ sous forme sérialisée est un peu limitant.
Les remplacer dans le core par ton nouveau plugin, avec la fonctionnalité proposée ci-dessus en bonus, me paraîtrait intéressant.
Est-ce qu'il serait possible/envisageable qu'il cherche aussi dans une table
<table_connue>_extras, histoire de ne pas altérer le modèle de données de
SPIP ?
Je n'ai pas touché aux anciens extras
Si les extras v1 disparaissent à terme du core, il faudrait prévoir une
procédure de migration vers ce nouveau système, ce qui risque d'être
compliqué s'il n'est pas dans le core.
Je ne crois pas qu'ils disparaîtront
on avait pas prévu de virer le code spécifique pour le mettre dans un plugin car tous les branchements sont bon pour cela maintenant ?
(quitte à le livrer avec le core)
cela permettrait la maintenance du code en dehors du core, sans perte de fonctionnalité
J'ai testé tous les types d'objet de spip (articles, rubriques, breves, sites, mots, auteurs) et c'est ok :
chez moi ça marche (c)
En théorie, ils peuvent marcher avec tout autre objet introduit par un plugin si celui-ci utilise bien les pipelines :
afficher_contenu_objet pour l'affichage du contenu de l'objet
editer_contenu_objet pour l'affichage du formulaire d'edition du contenu
pre_edition avant enregistrement en base
mais je n'ai pas testé de cas pratique.
Cédric
Le 7 juil. 08 à 11:51, Fil a écrit :
je vais passer la serpillère
il y a une erreur aussi qui consiste à tester $auteur['extras'] pour
brancher : il ne faut pas préjuger de ce qu'on cherche.
pas compris
Il faut appeler le pipeline indépendamment de tout autre test ; or
dans ecrire/inc/auteur_infos par exxemple j'ai laissé traîner
if ($GLOBALS['champs_extra'] AND $auteur['extra']) {
include_spip('inc/extra');
$res .= extra_affichage($auteur['extra'], 'auteurs');
}