TableData pour Spip 2

Màj 2.2.0 - Portage SPIP 2, gestion clé multiple, et fonction effacer

Gestion des tables SQL, portage de ce plugin pour SPIP 2
Une Nouvelle Fonction : EFFACER des enregistrements et divers correctifs.

Présentation

Dans SPIP, on peut ajouter une table (« matable » par ex.) et utiliser des boucles pour la parcourir : {BOUCLE_a(matable)} et extraire ses champs avec des balises {#CHAMP1}, {#CHAMP2}, etc.

L’objet de cette contrib est de visualiser, ajouter et modifier le contenu de ces tables.

Pour plus de précision et bien comprendre l’intérêt, voir les articles suivants :
-  Plugin TableData v0.4 de moi-même
-  La gestion de tables SQL supplémentaires de Déesse A
-  le § Détection automatique de tables SQL et de jointures sur SPIP.net
-  Nouvelles boucles et cette contrib

L’objet de cette contrib est de visualiser, ajouter et modifier le contenu de ces tables.

-  Nom  : TableDATA
-  Version : 2.0.7
-  Auteur : Christophe Boutin
-  Licence : GPL
-  Compatibilite SPIP : testé sur SPIP 2.0.5 , SPIP 2.0.7

(existe également pour versions antérieures 1.9.1 & +, voir précédent article)

-  Testé sur ces navigateurs [1]

TestéPlateformeNavigateurVersion
oui windows Internet explorer 7.0
oui windows Firefox 3.0.8
oui Unbuntu Firefox 3.0.8

Maintenant, ce plugin fonctionne avec la nouvelle interface SQL de SPIP. Il est donc compatible avec les autres bases SQL supportées par SPIP et facilement portable.

Une Nouvelle Fonction : EFFACER des enregistrements

Etat actuel : En test Mais semble stable, qu’en pensez-vous ??

V2.2.1 — Stable— 25/05/2009 -------------

-  Overflow sur le tableau d’affichage de la table

V2.2.0 — Stable— 24/05/2009 -------------

-  On peut maintenant tavailler sur toutes les table. (Enfin je pense)

Cette version corrige notamment un bug lorsque la table contenait une clé mais pas une clé primaire.

V2.1.1 — Test — 07/05/2009 -------------

-  Activation des fonctions supprimer et modification sur le table sans clé.
Astuce : Clause Where reprenant tous les champs (Affichage du nombre d’enregistrement sélectionnés)

V2.1.0 — Test — 07/05/2009 -------------

-  gestion clé sur champ multiple
-  correctif concernant table avec préfixe spécial
-  Correction d’affichage des caractères accentués après modification

V2.0.7 — Test — 25/04/2009 -------------

-  Modif possible champs DATETIME
-  J’ai rassemblé toutes les fiches en une seule,
Ainsi la def des champ input n’est écrite qu’une fois (éviter erreur code)
-  Remise en forme code partie ShowTable
-  Correction de la fermeture de page (pb <DIV>)
-  Modif taille des champs <TEXTAREA> pour un meilleur affichage
-  Correction d’un bug dans l’ajout d’enregistrements

V2.0.6 — Test — 21/04/2009 -------------

Compatible avec la nouvelle interface SQL de Spip2. (donc compatible MySQL, PostgreSQL et SQLite)

V2.0.5 — Test ----------------------------

Nouvelle fonction : Supprimer un enregistrement (DELETE en sql)

V2.0.4 — Dev ----------------------------

Toutes les fonctionnalités qui existaient sur la version spip1.9 sont de retour.
(cette version intègre les correctifs d’affichage proposées par JF-Moreau)

V2.0 — Dev — 16/04/2009 -----------------

Compatible SPIP2. Correction de l’affichage des caractères accentués.

Notes

[1Navigateurs : J’attends votre retour d’expérience pour compléter le tableau avec les autres navigateurs, merci d’avance

N’ayant pas d’autre base que MySQL, merci aux utilisateurs de PostgreSQL et SQLite de confirmer le bon fonctionnement sur ces bases ?

Ce plugin est maintenant disponible sur plugins.spip.net n’hésitez pas à inscrire votre site si il utilise ce plugin.

Discussion

31 discussions

  • Comment est-ce que l’on effectue une recherche sur les tables ajoutées et gérées par TableData dans un squelette ?
    L’ajout du critère recherche ne suffit pas à déclencher la recherche.

    Répondre à ce message

  • Est-ce que ce plugins pourrait être mis sur la zone ? Merci d’avance !

    Répondre à ce message

  • Bonjour,

    Finalement, en ligne, tout marche. Autrement dit, qch foirait dans la config en local, ou alors c’est bel et bien MAMP qui est « limité ». Va savoir...

    Merci à tous

    E

    Répondre à ce message

  • 3
    Eric S.

    Bonjour,

    Le plugin TableData ne démarre pas correctement sur ma config (voir détails ci-dessous). Je suis en local sur mac OSX, grâce au serveur MAMP. Après avoir validé TableData dans la page plugins, lorsque je clique sur ’Configuration/Gestion tables SQL’ cela donne un écran blanc... Bon, rien n’est planté puisqu’il suffit de revenir en arrière sur le navigateur, mais je suppose qu’il y a un hic quelque part.

    Où dois-je chercher ? Est-ce un bug TableData ? Une limitation MAMP ? Une limitation mac ? une erreur de ma part ?

    Merci pour votre aide

    Eric
    Bruxelles

    CONFIG : SPIP 2.0.8 - TableData 0.40 - OS X 10.4.11 - Firefox 3.0.10 - MAMP 1.7.1

    • Désolé, je n’utilise pas de Mac. Alors si quelqu’un peut apporter son expérience, il est le bienvenu !

      Je n’ai pas encore testé sur la v2.0.8 alors de même si quelqu’un d’autre à un retour, ça permettra d’aider à comprendre d’où vient le pb.

      (perso actuellement je travail sur OVH 90plan, spip2.0.7 et 2.0.5. Et en local avec EasyPhp3)

      Merci d’avance,

    • Christophe, je bosse avec la 2.0.8 de spip en svn dc si je trouve un beug je te le dirais

    • absolument aucun problème ici sur mac os x 10.5.7 / mamp 1.7.2
      avec un spip 2.0.8 et tabledata 2.2.1

    Répondre à ce message

  • archi02

    Merci Christophe !

    En effet, l’édition des tables avec clés primaires multiples est maintenant possible sur la version 2.2.1. Merci beaucoup !

    Répondre à ce message

  • 3

    Bonjour

    Pourrais t’on avoir un exemple de boucles pour sortir :

    CHAMP1 = NOM
    CHAMP2 = Prenom
    CHAMP3 = TEL

    • Bonjour Pierre,

      Je connais ce besoin et je prépare un article pour ces explications. Rappelons que cette fonctionnalité est directement une fonction des boucles de SPIP. Ce plugin ajoute juste un outil pour gérer le contenu de ces tables que l’on peut ajouter.

      Imaginons que la table qui contient ces champs s’appelle « amis », dans ce cas c’est très simple :

      <BOUCLE_copains(AMIS)>

      Nom : #NOM ; prénom : #PRENOM ; tél : #TEL <br/>

      </BOUCLE_copains>

      Explication :

      SPIP connais « ARTICLES », « RUBRIQUES », mais ne connais pas de composant nommé « AMIS » alors il recherche automatiquement la table appelée ainsi et hop il commence son travail : Il listera tout le contenu de cette table.

      Il est bien sûr possible d’ajouter des filtres comme sur toutes les boucles.

      Voila, c’est simple, non ?

      Christophe

    • Bonjour Christophe

      Si tu réalise un article très bien, si tu veux un relecteur pour la compréhension dit le.

      Pierre

    • Des liens pour apporter toutes les réponses sur les tables supplémentaires et les boucles. Je me permets de les rappeler :

      -  le § Détection automatique de tables SQL et de jointures sur SPIP.net

      -  Nouvelles boucles et cette contrib

      Je me permets de les rappeler, ils sont déjà en haut de l’article.

    Répondre à ce message

  • 1
    archi02

    Bonjour,

    Une petite question concernant une fonctionnalité non présente.

    Pourquoi ne pas pouvoir modifier les tables dont la clé primaire contient plusieurs champs (par exemple les tables de jointures de type spip_document_liens ou spip_auteurs_articles) ?

    Est-ce un choix, une impossibilité technique, un codage remis à plus tard ?

    Merci pour ta réponse !

    • Bonjour archi02,

      Je suis étonné car dans l’état actuel de mes réflexions, c’est possible. En tout cas, actuellement sur ma version “Dev” sur ma machine, ça fonctionne sur la table que tu cites “spip_document_liens”.

      Je mets en ligne très prochainement. (ce soir peut-être)

      @+

      Christophe

    Répondre à ce message

  • 4
    GYGodin

    Bonjour !

    Beau travail ce plugin. Il m’est fort utile. Mais il semble y avoir un pépin à la modification avec :
    1. l’affichage des champs DATETIME qui sont remis à zéro ;
    2. l’affichage des charactères accentués qui s’affichent sur 2 charactères du genre « Ã© » pour le « é » (ma base SPIP 2.0.7 est en UTF8).

    Bonne journée !

    Gilles

    • Bonsoir « GYGodin »,

      Concernant le pb d’affichage des caractères accentués après modification, il y avait une erreur c’est corrigé.

      Par contre pour le RaZ des DateTime, sur cette version j’ai pas constaté le pb (Mysql5 en utf8 + SPIP2.0.7 également)

      Tu peux télécharger la v2.1 qui permet également la modif sur clé multiple.

      Merci pour ton retour d’expérience, n’hésite pas à inscrire ton site sur : plugins.spip.net
      Merci,

      Christophe

    • Gilles

      Bonjour Christophe,

      Merci pour le correctifs des caractères accentués. Ça s’affiche parfaitement avec la V2.1. J’ai toujours le pb de RaZ des DateTime.

      Mon environnement est le suivant : Windows XP + SP3, MySQL 5.0.77, PHP 5.2.9, SPIP 2.0.7

      En passent, sous Windows XP, TableData pour SPIP 2 fonctionne bien avec Opera 9.64, Firefox 3.0.10, IE 6 et Google Chrome 1.0.154.59.

      Passe une excellente journée !

      Gilles

    • Gilles

      Encore bonjour Christophe,

      Je me rend compte que la RaZ se fait aussi sur un champ TIMESTAMP, ce qui me parait étrange puisque la valeur par défaut est CURRENT TIMESTAMP. J’apprécierais toute suggestion sur le sujet.

      Merci.

      Gilles

    • Ton problème ne se produit pas chez moi !! (XPsp3, Apache 2.2.11, MySql 5.1.30, PHP : 5.2.8, SPIP 2.0.7, Firefox3 et ie7)

      J’ai créé une table de test :

      CREATE TABLE IF NOT EXISTS <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+YXZlY2luZGV4PC9jb2RlPg=="></span> (
        <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Y2xlPC9jb2RlPg=="></span> int(10) unsigned NOT NULL AUTO_INCREMENT,
        <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGV4dGU8L2NvZGU+"></span> varchar(15) NOT NULL,
        <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGF0ZXRpbWU8L2NvZGU+"></span> datetime NOT NULL,
        PRIMARY KEY (<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Y2xlPC9jb2RlPg=="></span>)
      ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=12 ;
      
      INSERT INTO <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+YXZlY2luZGV4PC9jb2RlPg=="></span> (<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Y2xlPC9jb2RlPg=="></span>, <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGV4dGU8L2NvZGU+"></span>, <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGF0ZXRpbWU8L2NvZGU+"></span>) VALUES
      (1, 'téxté1', '2009-12-12 10:11:00'),
      (2, '120', '2009-05-10 18:19:20'),
      (29999, '22223', '2008-01-01 01:01:01');

      Et je peux éditer autant de fois que je veux les enregistrements, ils conservent leurs valeurs si je modificie un autre champ ou prennent les valeurs demandées...
      Je ne comprends peut-être pas ton pb ?... Envoie moi un email on pourra voir plus en détail...

      Christophe,

    Répondre à ce message

  • Christophe

    Ton plugins est compatible spip 2.0.7
    Et ubuntu, firefox, 3.0.8

    Répondre à ce message

  • 7

    Christophe si toutes les fonction sont de retour, je ne trouve pas le formulaire de rajout ? est ce normal ?

    • Merci Pierre pour tes messages,

      Pour répondre à ta question : Effectivement il n’y a pas de fonction pour ajouter une table.

      Pour expliquer cela : j’ai eu besoin de ce plugin lors de la création d’un site, il s’agissait que l’administrateur du site puisse mettre à jour des données contenues dans des tables additionnelles utilisées dans des boucles. Une solution aurait été de lui montrait comment utiliser PhpMyAdmin, mais il n’aime pas trop l’informatique et je ne voulais pas qu’il casse tout. Pour administrer tout son site, je trouvais également dommage de l’obliger à utiliser une autre interface. (compléxité en plus pour lui)

      Par contre durant la phase de création du site, ce n’est pas lui qui intervient, c’est moi et je maîtrise tous ces outils, aussi je ne vois pas l’utilité de refaire une interface que tous les webmasters connaissent et utilisent.

      Il me semble que la création de ces tables ne se fera que par ceux qui développent le site (mise en place des squelettes, CSS, etc.) et non pas par ceux qui l’exploitent (gestion du contenu)

      Alors peut-être as-tu une utilisation particulière qui nécessite cela... Alors merci de nous l’expliquer.

      J’appelle d’ailleurs tous ceux qui ont un avis sur la question à laisser un commentaire.

      D’avance, merci à tous,

    • Bonjour Christophe

      Mon projet est complexe, je suis entrain de monter un site complexe :
      déjà je souhaiterais aller chercher sur une autre BDD (pour m’y retrouver)
      pouvoir créer des tables sur cette bdd, m’éviter de le faire à la main j’aime pas ça

      Si tu souhaites programmer ceci recontacte moi j’expliquerais plus mon projet.

    • Cher Pierre,

      Je ne vois pas en quoi la complexité du projet développé justifierait de redévelopper PhpMyAdmin dans ce plugin ??

      Pour mémoire, à la base, il est juste fait pour venir compléter la fonction des “tables extras” de SPIP.

      Pour sourire, un clin d’oeil à mon collègue Ludo qui me dit toujours : « Il n’y a pas de projets complexes, il n’y a que des développeurs tordus. »  ;-)

      Bonne soirée,

    • Salut

      Laisse tomber ma complexité si c pas dans l’objectif du projet.
      J’arriverais a faire sans.

    • C’était une boutade, pour sourire un peu ;-)

    • Tu ne me donnes pas d’explication justifiant ce développement, alors j’ai cherché une utilité...

      Tout d’abord, je suppose que chaque base a son client spécialisé... Et donc chaque administrateur a le sien.

      Alors le seul intérêt que j’y vois serait : dans le cas d’un projet hétérogène, avoir une interface de gestion commune s’appuyant sur la compatibilité de SPIP.

      Et même, une interface compatible au 3 existe peut-être ?...

      Quel est votre avis ??...

    • Ca pourrais être pas mal d’avoir un truc dans ce genre

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom