Champs Extras — introduction

Il est possible d’ajouter des champs supplémentaires aux objets SPIP : les « Champs Extras ».

Principe

Depuis SPIP 3.0.0, l’ajout de champs supplémentaires (Champs Extra) aux objet SPIP est séparée en quatre composants :

  • Un plugin pour déclarer les champs en PHP, objet du présent article.
  • Un plugin, s’appuyant sur le précédent, pour créer et gérer ces champs dans une interface graphique.
  • Deux plugins sur lesquels l’on s’appuie :
    • L’un permettant de gérer les saisies de formulaires liées aux champs extra : « Saisies pour formulaires ».
    • L’un permettant de vérifier les données saisies par le rédacteur ou la rédactrice : « Vérifier »

Déclarer ses champs

Deux possibilités s’offrent à vous :

Utiliser ses champs dans les squelettes

Lire « Champs extras — utilisation dans les squelettes ».

Créer de nouveaux types de saisies

Lire « Créer ses propres saisies ».

Xdebug et Nesting Level

Si vous rencontrez cette erreur : Fatal error : Maximum function nesting level of ’100’ reached c’est que xdebug est actif. Il faut augmenter sa profondeur d’exécution. Par exemple en mettant dans votre config/mes_options.php l’instruction suivante (pensez à ouvrir <?php sur la première ligne et caractère du fichier si ce n’est pas fait, et pas la peine de le fermer)

<?php
ini_set('xdebug.max_nesting_level', 200);

Discussion

5 discussions

  • Bonjour,
    dans l’espace privé, il y a le groupe « Contenu éditorial » avec le champ « Article ». Je l’ai ajouté à un objet « événement ». Comment afficher dans un squelette le résultat de ce champ ? Quand je l’appelle directement pour tester, j’ai bien « article|xxxx » qui s’affiche. Ce que je cherche à faire, c’est récupérer l’ID de cet article pour afficher une partie de son contenu dans mon squelette événement. Ce n’est p-e pas possible ?
    Actuellement, j’utilise des mots-clés pour ça. Mais j’aimerais simplifier les liaisons entre ces objets.
    Le site est ici : https://www.jeunes-talents.org (les événements à venir sont en page d’accueil)

    Merci pour votre aide,
    Rémy

    Répondre à ce message

  • 6

    Bonjour,
    J’avais un site avec 2 champs extra sur les auteurs.
    Après mise à jour de spip et des plugins champs extra, les 2 champs sont présents mais ne s’affiche plus dans les fiche auteurs.
    De plus lors de la création d’un nouvel auteur, les champs extras ne sont plus présents.

    Des idées pour retrouver tout ?

    • Etes vous sûr que le plugin champ extra n’aurait pas été desactivé pendant la mise à jour ?

      De quelle version de SPIP à quelle version etes vous passé ?

    • Mise à jour de 3.2 vers 4.1 de spip
      Le plugin était présent avant la mise à jour.
      Puis obsolète
      J’ai mis à jour le plugin mais rien
      J’ai même essayé un import du fichier des champs extra.
      Ça m’annonce qu’il a récupéré les champs manquants mais toujours rien

    • Mais là le plugin il est activé ou pas ? As tu vider les caches ?

    • Actuellement il est activé.
      J’ai vidé les caches du site, je tente de vider les caches du plugins

    • Caches vidés et rien de plus.

    • Hum, il doit surement y avoir quelque part une erreur PHP... est-ce que vous avez accès aux logs PHP ?

      Si non, il faudra que je puisse debug en direct, je le crains.

    Répondre à ce message

  • 2

    Bonjour,
    grâce aux champs extra, on peut proposer des cases à cocher pour un groupe de mots-clés via la saisie « mots », c’est magique.
    Si on utilise les crayons, on peut facilement modifier ces mots-clés dans la partie publique, la magie opère encore.
    Mais le résultat est stocké sous forme de liste dans un champs texte.

    Comment faire en sorte que cela permette d’affecter effectivement les mots-clés à l’objet ?
    Est-ce possible simplement ?

    • Et sinon... est-ce possible de façon complexe ? ;)
      Une piste ?

    • Bah les champs extras ne sont pas des mot clés, donc non ce n’est pas possible via champ extra :)

      les crayons en eux même ne permettent pas de gérer les liaisons entre objet (bien qu’on puisse imaginer de les étendres... mais il faudrait ouvrir un ticket)

      sans devellopement du côté des crayons, la seule chose que je vois c’est de faire une inclusion du squelette

      prive/objets/liste/mots_lies.html en passant les bon paramètres, sans garantir d’y arriver efficacement, mais à tester.

    Répondre à ce message

  • 1

    Bonjour,

    On a le plugin installé sur SPIP3.2. Puis, on l’avait désactivé puis on a supprimé certains champs directement depuis la base de donnée. On l’a réactivé, puis fait une importation du fichier yaml. Et les champs n’ont pas été créé en base. Peut-être que c’est à cause de l’opération manuelle ? Que faudrait-il faire ?

    Merci

    • Je pense qu’il aurait fallu faire non pas desactiver mais bel et bien desinstaller. Il doit y avoir des metas qui traine.

      Si c’est possible

      1. Sauvegarder la base
      2. Desinstaller le plugin (et pas desactiver). Attention le contenu de TOUT les champs extras seront perdus.
      3. Reactiver/installer le plugin

    Répondre à ce message

  • Avec SPIP 4.1.5 et tous les plugins à jour, le champ extra sélecteur d’article ne marche plus (alors que sélecteur article ou rubrique marche bien) (on peut bien sélectionner des articles, mais ils ne sont pas visibles dans la fiche article après enregistrement de l’article) : spip enregistre dans la base articles|25 et non article|25.
    Si, via phpmyadmin on supprime le S, alors tout marche bien.
    Je ne sais pas trop qui gère ce libellé : saisie ? Bonux ? Iextra ?

    Une idée de l’origine de ce s intempestif ?

    Merci de votre aide.
    Julien

    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