Edition des colonnes supplémentaires de la table Articles (SPIP 1.8.3 et 1.9B2)

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Comme il est bien indiqué dans cet article , il est possible d’ajouter des champs dans les tables Spip depuis la version 1.8. Ceci permet de remplacer les champs extras, mais pas vraiment. En effet les champs extras ont l’avantage de pouvoir être entrés directement dans la partie privée lors de l’édition de la table correspondante, ce qui n’était pas le cas des champs ajoutés.

Ayant eu besoin d’ajouter des champs dans la table articles pour un site en préparation, il m’a été nécessaire de me pencher sur ce sujet - uniquement pour la table articles. Ci-dessous sont proposées des fichiers modifiés pour gérer les champs ajoutés directement lors de l’édition des articles. Les modifications proposées essayent de respecter le mode de fonctionnement de SPIP.

Le principe est d’utiliser un fichier descriptif des champs ajoutés pour que l’affichage se fasse en relation avec ce qu’il faut y entrer.

Les modifications sont là :

Pour la V1.8.3 :

Add-ons pour /ecrire

et pour la V1.9 beta2 au 03/06/06 :

add-ons V1.9 courante (03/06/06)

Voici un exemple de fichier de configuration, que je vais décrire plus loin.

<?php
$GLOBALS['champs_site'] = Array (
        'articles' => Array (
                        'inedit' => Array(
                                  'champ'    => 'inedit',
                                  'titre'    => 'Inédit ?',
                                  'style'    => Array( 'couleur' => '#FF0000' ),
                                  'secteur'  => 1,
                                  'type'     => 'choix',
                                  'multiple' => 'non',
                                  'modele'   => 'texte',
                                  'valeurs'  => Array (
                                             'Oui' => 'Inédit',
                                             'Non' => 'Réédition'
                                  )
                        ),
                        'isbn' => Array(
                                  'champ'    => 'isbn',
                                  'titre'    => 'Num.ISBN',
                                  'style'    => Array(),
                                  'secteur'  => 1,
                                  'type'     => 'texte',
                                  'taille'   => 20,
                                  'modele'   => 'texte'
                        ),
                        'essaicheck' => Array(
                                  'champ'    => 'essaicheck',
                                  'titre'    => 'Essai check',
                                  'style'    => Array(
                                               'aligne' => 'horizontal',
                                               'couleur' => '#0088CC'
                                  ),
                                  'secteur'  => 1,
                                  'type'     => 'choix',
                                  'multiple' => 'oui',
                                  'modele'   => 'texte',
                                  'valeurs'  => Array (
                                             'Oui' => 'Oui',
                                             'Non' => 'Non',
                                             'Ptèt' => 'Bof'
                                  ) 
                       ),
                        'project' => Array(
                                  'champ'    => 'project',
                                  'titre'    => 'Project',
                                  'style'    => Array(),
                                  'secteur'  => 1,
                                  'type'     => 'table',
                                  'table'    => 'site_proj',
                                  'colonne'  => 'name',
                                  'valeur'   => 'prjid',
                                  'multiple' => 'non',
                                  'modele'   => 'entier'
                        ),

         )
);
?>

Chaque champ est décrit avec certains éléments communs obligatoires :
-  ’champ’ pour indiquer le nom de la colonne dans la table
-  ’titre’ pour donner un nom au chmp pour l’utilisateur
-  ’style’ pour éventuellement modifier l’aspect typographique
-  ’secteur’ pour indiquer dans quel secteur ce champ est utilisable (un seul secteur par champ pour l’instant)
-  ’type’ indique le type de représentation souhaitée, qui peut être ’choix’ (un choix dans une liste figée), ’texte’ (entrée simple) ou ’table’ (choix à partir d’une table externe)

Un champ optionnel ’modele’ => ’texte’ pour indiquer que le champ est de type texte dans la base (sinon le champ est considéré comme un nombre).

Ensuite, selon le type de champ, d’autres éléments viennent le préciser.

Pour les champs de type ’texte’, la taille doit être fournie (longueur du champ)

Pour les choix, il faut indiquer s’ils sont ’multiple’ ou simple, ainsi que la liste des valeurs et de ce qui doit être affiché pour chaque valeur.

Pour les tables externes, il faut indiquer le nom de la ’table’, la ’colonne’ à afficher ainsi que la colonne contenant la ’valeur’ à mettre dans le champ. On peut aussi avoir des choix multiples.

Ceci peut donner en édition :

exemple

et en visualisation (dans l’espace privé) :

exemple2

Discussion

Aucune discussion

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