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 : “Entries for forms”.
- 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 le plugin d’interface graphique
- déclarer en PHP, vous pouvez lire pour ce faire :
- Un tutoriel : “Tutoriel : créer des champs extras depuis un plugin”
- La référence complète du plugin : “Champs Extras — API et créations”.
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);
Discussions by date of activity
8 discussions
Bonjour,
Avec la mise à jour récente de Champs extras (de 4.1.2 -> 4.2.0) j’ai perdu la possibilité d’éditer mes champs basés sur les mots clés, Idem pour la création de nouveaux champs, sous “Contenu éditorial” le choix “Mot-clé” n’existe plus. Du coup mes anciens champs se retrouvent sous forme de bouton radio (liste de plus de 150 items visible) et allongent sérieusement les pages d’administration.
Pourriez vous m’indiquer comment retrouver l’option “Mot-clé” dans champs extras ?
Je pense que le problème ne vient pas de la mise à jour de champ extras, mais du plugin saisies. Je regarde et vous tient au courant.
Vous êtes bluffant de réactivité, merci !
Si cela peut aider :
Fonctionnement nominal
Saisies pour formulaires : 5.5.1
C Extras: 4.1.2
C Extras interface: 4.1.1
Disparition de l’option mot-clé:
Saisies pour formulaires 5.6.1
Champs Extras 4.2.0
Champs Extras (Interface) 4.2.0
Est-ce que par hasard dans configuration>-contenu du site la possibilité de créer des mots clés n’aurait pas été desactivée par erreur? auquel cas la mise à jour du plugin saisies a effectivement desactivé la possibilité d’ajouter/modifier une telle saisie.
Effectivement, l’option “mots-clés” n’est pas activée mais ne l’a jamais été. Je ne souhaite pas que les rédacteurs puissent créer des mots-clés, car je les utilise uniquement pour personnaliser les formulaires d’édition des objets.
mouais, mais tu a quand meme des mot clés, donc forcément ca pose des incohérences dans le choix des saisies proposées, vu que SPIP pense que tu n’a pas de mot clé, bah on n’affiche pas la saisie mot clé.
Et j’avoue que je suis moyen chaud de tester à chaque fois qu’on liste les saisies disponibles si effectivement on n’a des mot clés ou pas, parce que c’est une fonction qui est appelé souvent et cela ferait des requetes sql en plus pour pas grand chose.
Du reste normalement celle les admins peuvent créer des mots clés.
OK cela fait sens. J’ai activé les mots clés, cela à rendu dispo mot-clé dans c extra, puis j’ai forcé l’affichage de mes champs en select. Tout est ok, un grand merci Maïeul !
Je me demande si on devrait pas forcer la classe
select2sur cette saisie, afin de pouvoir profiter de cette magnifique lib jsReply to this message
Bonjour,
J’ai passé un site de SPIP 3.2 vers 4.0 puis 4.1, 4.2 et 4.3.
Et je me rends compte que j’ai de gros problèmes avec Champs Extra.
J’ai initialement quelques champs ajoutés aux articles de ma rubrique 38.
Sur la page ?exec=article_edit&id_article=xx je ne vois pas mes champs additionnels, à la place je vois “Erreur d’exécution ../plugins/auto/saisies/v5.6.1/inclure/generer_saisies.html”
En haut de cette page j’ai le message : “1 Erreur(s) dans le squelette - Erreur d’exécution ../plugins/auto/saisies/v5.6.1/inclure/voir_saisies.html | File […]/plugins/auto/saisies/v5.6.1/inc/saisies_lister_disponibles.php Line 113 : Call to undefined function yaml_charger_inclusions()”
Et sur /ecrire/?exec=champs_extras_edit&objet=article
je vois ces erreurs
/*008*/include_once(“./” . _DIR_RACINE . “ecrire/balise/formulaire_.php”);
/*009*/if ($lang_select = “fr”) $lang_select = lang_select($lang_select);
/*010*/inserer_balise_dynamique(balise_FORMULAIRE__dyn(’FORMULAIRE_CONSTRUIRE_FORMULAIRE’, ’champs_extras_spip_articles’, array(’0’=>array(’options’=>array(’nom’=>’ville’, ’label’=>’Ville’, ’type’=>’text’, ’size’=>’40’, ’autocomplete’=>’defaut’, ’restrictions’=>array(’secteurs’=>’2’, ’branches’=>’38’, ’voir’=>array(’auteur’=>’’), ’modifier’=>array(’auteur’=>’’)), ’sql’=>’text DEFAULT \’\’ NOT NULL’, ’rechercher_ponderation’=>’2’), ’identifiant’=>’@4fc8d2a6557b8’, ’saisie’=>’input’), ’1’=>array(’options’=>array(’nom’=>’lieu’, ’label’=>’Lieu’, ’type’=>’text’, ’size’=>’40’, ’autocomplete’=>’defaut’, ’restrictions’=>array(’secteurs’=>’2’, ’branches’=>’38’, ’voir’=>array(’auteur’=>’’), ’modifier’=>array(’auteur’=>’’)), ’sql’=>’text DEFAULT \’\’ NOT NULL’, ’rechercher_ponderation’=>’2’), ’identifiant’=>’@4fc8d2f5efa5a’, ’saisie’=>’input’), ’2’=>array(’options’=>array(’nom’=>’lieu_url’, ’label’=>’Url du lien sur le lieu’, ’explication’=>’Adresse complète avec le http://’, ’type’=>’text’, ’size’=>’40’, ’autocomplete’=>’defaut’, ’restrictions’=>array(’secteurs’=>’2’, ’branches’=>’38’, ’voir’=>array(’auteur’=>’’), ’modifier’=>array(’auteur’=>’’)), ’sql’=>’text DEFAULT \’\’ NOT NULL’, ’rechercher_ponderation’=>’2’), ’verifier’=>array(’type’=>’url’, ’options’=>array(’mode’=>’protocole_seul’, ’type_protocole’=>’web’)), ’identifiant’=>’@4fc8d3161209e’, ’saisie’=>’input’), ’3’=>array(’options’=>array(’nom’=>’distribution’, ’label’=>’Distribution’, ’rows’=>’5’, ’cols’=>’40’, ’inserer_barre’=>’forum’, ’restrictions’=>array(’secteurs’=>’3’, ’branches’=>’44’, ’voir’=>array(’auteur’=>’’), ’modifier’=>array(’auteur’=>’’)), ’sql’=>’text DEFAULT \’\’ NOT NULL’, ’rechercher_ponderation’=>’2’, ’traitements’=>’_TRAITEMENT_RACCOURCIS’), ’identifiant’=>’@4fce40fd54017’, ’saisie’=>’textarea’), ’4’=>array(’options’=>array(’nom’=>’lien_page_spectacle’, ’label’=>’Choisir un spectacle liés’, ’restrictions’=>array(’secteurs’=>’’, ’branches’=>’16’, ’voir’=>array(’auteur’=>’’), ’modifier’=>array(’auteur’=>’’)), ’sql’=>’text DEFAULT \’\’ NOT NULL’, ’rechercher_ponderation’=>’2’), ’identifiant’=>’@4ff1d0ce5b9ba’, ’saisie’=>’selecteur_article’), ’5’=>array(’options’=>array(’nom’=>’lescours’, ’label’=>’Les cours’, ’rows’=>’5’, ’cols’=>’40’, ’inserer_barre’=>’edition’, ’restrictions’=>array(’secteurs’=>’’, ’branches’=>’20’, ’voir’=>array(’auteur’=>’’), ’modifier’=>array(’auteur’=>’’)), ’sql’=>’text DEFAULT \’\’ NOT NULL’, ’rechercher_ponderation’=>’2’), ’identifiant’=>’@500429e0c0b20’, ’saisie’=>’textarea’), ’6’=>array(’options’=>array(’nom’=>’fieldset_1’, ’label’=>’Colonne Droite’, ’restrictions’=>array(’secteurs’=>’3’, ’branches’=>’44’, ’voir’=>array(’auteur’=>’’), ’modifier’=>array(’auteur’=>’’)), ’sql’=>’text DEFAULT \’\’ NOT NULL’, ’rechercher_ponderation’=>’2’), ’identifiant’=>’@4fcd2ceedd1a1’, ’saisie’=>’fieldset’, ’saisies’=>array(’0’=>array(’options’=>array(’nom’=>’top_gauche’, ’label’=>’Haut Colonne Droite’, ’rows’=>’5’, ’cols’=>’50’, ’inserer_barre’=>’forum’, ’previsualisation’=>’on’, ’restrictions’=>array(’secteurs’=>’3’, ’branches’=>’44’, ’voir’=>array(’auteur’=>’’), ’modifier’=>array(’auteur’=>’’)), ’sql’=>’text DEFAULT \’\’ NOT NULL’, ’rechercher_ponderation’=>’2’), ’identifiant’=>’@4fcd27c34ec3e’, ’saisie’=>’textarea’), ’1’=>array(’options’=>array(’nom’=>’liens_videos’, ’label’=>’Liens Videos’, ’rows’=>’5’, ’cols’=>’40’, ’inserer_barre’=>’forum’, ’previsualisation’=>’on’, ’restrictions’=>array(’secteurs’=>’3’, ’branches’=>’44’, ’voir’=>array(’auteur’=>’’), ’modifier’=>array(’auteur’=>’’)), ’sql’=>’text DEFAULT \’\’ NOT NULL’, ’rechercher_ponderation’=>’2’), ’identifiant’=>’@4fcd2c8418c96’, ’saisie’=>’textarea’), ’2’=>array(’options’=>array(’nom’=>’ou_et_quand’, ’label’=>’Où et quand ?’, ’restrictions’=>array(’secteurs’=>’3’, ’branches’=>’44’, ’voir’=>array(’auteur’=>’’), ’modifier’=>array(’auteur’=>’’)), ’sql’=>’text DEFAULT \’\’ NOT NULL’, ’rechercher_ponderation’=>’2’), ’identifiant’=>’@4fcd640b712ad’, ’saisie’=>’selecteur_rubrique’), ’3’=>array(’options’=>array(’nom’=>’blocs_depliable’, ’label’=>’Blocs dépliables’, ’rows’=>’10’, ’cols’=>’40’, ’inserer_barre’=>’edition’, ’previsualisation’=>’on’, ’restrictions’=>array(’secteurs’=>’3’, ’branches’=>’44’, ’voir’=>array(’auteur’=>’’), ’modifier’=>array(’auteur’=>’’)), ’sql’=>’text DEFAULT \’\’ NOT NULL’, ’rechercher_ponderation’=>’2’, ’traitements’=>’_TRAITEMENT_RACCOURCIS’), ’identifiant’=>’@4fcd5e9b25a74’, ’saisie’=>’textarea’)))), array(’modifier_nom’=>’1’, ’nom_unique’=>’1’, ’saisies_exclues’=>array(’0’=>’fichiers’))), array(’../plugins/auto/champs_extras_interface-d76eb-champs_extras_interface-4.2.0/formulaires/editer_champs_extras.html’, ’html_47c18c16e1913c9850375a6c3ca2f3ce’, ’’, 7, ’fr’));
J’ai désactivé, réactivé, vidé les caches, rien n’y fait.
qu’est-ce que cela donne si tu actives le plugin yaml ?
Merci pour la réponse rapide, j’ai bien YAML d’activé version 3.1.0
Bon, là compliqué d’intervenir comme cela, faudrait avoir un accès ssh/ftp pour pouvoir faire du live debug.
J’ai supprimé tous mes plugins qui étaient pourtant en dernière version, je les ai tous téléchargé reinstallé et ça remarche, j’ai pas trop compris pourquoi...
Une hypothèse possible c’est un problème de cache php qui colle. Svt ca crère des emmerdes. Mais au moins c’est résolu :)
Reply to this message
Bonjour
Lorsqu’on utilise un champ de type sélecteur d’article et de rubrique, l’information est stockée ainsi en base :
Existe-t-il une boucle spécifique pour afficher le contenu avec des liens vers les objets sélectionnés ?
J’ai commencé à écrire ce morceau de squelette :
Mais je le trouve un peu tiré par les cheveux, et je me dis qu’il y a peut-être un moyen plus efficace de remonter à l’URL de la page, ainsi que son nom (que je n’ai pas inclus ici)
Merci de vos conseils
Le filtre
picker_selectedpeut te renvoyer un tableau objet/identifiant. Plus simple après à boucler dessus.https://search.spip.net/git.spip.net/spip/spip/-/blob/ecrire/inc/filtres_selecteur_generique.php?L80Ensuite la balise
#INFO_XXhttps://www.spip.net/fr_article5544.htmlReply to this message
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
Reply to this message
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.
Reply to this message
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.htmlen passant les bon paramètres, sans garantir d’y arriver efficacement, mais à tester.Reply to this message
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
Reply to this 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
Reply to this message
Add a comment
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
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.
Follow the comments:
|
