Référence des saisies

Cette documentation a été générée à partir de la v5.4.1 du plugin Saisies.

Sauter à : Toutes les saisies, Toutes les options de base, Toutes les options de dev.

Utilisation des options de base


Champ libreChoix restreintStructureContenu éditorialDivers
Options \ Saisiestextareainputemaildateradiocasecheckboxselectiondestinataireschoix_grillefieldsetexplicationconteneur_inlineselecteur_articleselecteur_rubrique_articleauteursselecteur_documentmotselecteur_rubriquehidden
afficher_art_dans_langue_interface-------------XX-----
afficher_langue-------------XX---X-
afficher_rub_dans_langue_interface--------------X---X-
afficher_siXXXXXXXXXXXX-XXXXXXX
afficher_si_avec_postXXXXXXXXXXXX-XXXXXXX
afficher_si_remplissage_uniquementXXXXXXXXXXXX-XXXXXXX
attentionXXXXXXXXXXX--XXXXXX-
attribut_title------X-------------
autocomplete-XX-----------------
cacher_option_intro-------X-------X-X--
choix_alternatif----X-XX------------
choix_alternatif_explication----X-XX------------
choix_alternatif_label----X-XX------------
choix_destinataires--------X-----------
classXXXXXXXX-X--X----X-X
colonnes------------X-------
colsX-------------------
conteneur_classXXXXXXXX-XXX-------X
data----X-XX------------
data_cols---------X----------
data_rows---------X----------
defautXXXXXXXX-------X-X-X
defaut_session-XX-----------------
depublie_choix----X-XX------------
disableXXXXXXXX-----XXX-XX-
disable_avec_postXXXXXXXX-----XXX-XX-
disable_choix----X-XX------------
erreur_obligatoireXXXXXXXXXX---XXXXXX-
explicationXXXXXXXXXXX--XXXXXX-
explication_apresXXXXXXXXXXX--XXXXXX-
forcer_select-----------------X--
heure_pas---X----------------
horaire---X----------------
id_groupe-----------------X--
info_obligatoireXXXXXXXXXX---XXXXXX-
inserer_barreX-------------------
labelXXXXXXXXXXX--XXXXXXX
label_case-----X--------------
label_non-----X--------------
label_oui-----X--------------
liens_meme_fenetre-----------X--------
limite_branche-------------X----X-
longueur_maxX-------------------
masquer-----------X--------
maximum_choix------X-------------
maxlength-XX-----------------
minlength-X------------------
multiple-------X-X---XXX-XX-
obligatoireXXXXXXXXXX---XXXXXX-
onglet----------X---------
onglet_vertical----------X---------
option_intro-------XX------X-X--
option_statut---------------X----
placeholderXXX-----------------
pliable----------X---------
plie----------X---------
previsualisationX-------------------
readonlyXXXX-X-------XX---X-
rowsX-------------------
size-XX----X-------X-X--
statut---------------X----
texte-----------X--------
titre-----------X--------
type-XX-----------------
type_choix--------X-----------
valeur_non-----X--------------
valeur_oui-----X--------------
vue_masquer_sous_groupe----X-XX------------

Utilisation des options de dev

Options disponibles uniquement pour le dévellopement PHP/Squelette.


Champ libreChoix restreintStructureContenu éditorialDivers
Options \ Saisiestextareainputemaildateradiocasecheckboxselectiondestinataireschoix_grillefieldsetexplicationconteneur_inlineselecteur_articleselecteur_rubrique_articleauteursselecteur_documentmotselecteur_rubriquehidden
alerte_role-----------X--------
alerte_type-----------X--------
attributsXXXXXXXXXXXX-XXXXXXX
idXXXXXXXXXXXX-XXXXXXX
inserer_debutXXXXXXXXXXXX-XXXXXXX
inserer_finXXXXXXXXXXXX-XXXXXXX

Toutes les saisies, par catégories

Champ libre

Bloc de texte (textarea)

Description : Un champ de texte sur plusieurs lignes.

Options de base :
afficher_si, afficher_si_avec_post, afficher_si_remplissage_uniquement, attention, class, cols, conteneur_class, defaut, disable, disable_avec_post, erreur_obligatoire, explication, explication_apres, info_obligatoire, inserer_barre, label, longueur_max, obligatoire, placeholder, previsualisation, readonly, rows

Options de dev :
attributs, id, inserer_debut, inserer_fin

Ligne de texte (input)

Description : Une simple ligne de texte, pouvant être visible ou masquée (mot de passe).

Options de base :
afficher_si, afficher_si_avec_post, afficher_si_remplissage_uniquement, attention, autocomplete, class, conteneur_class, defaut, defaut_session, disable, disable_avec_post, erreur_obligatoire, explication, explication_apres, info_obligatoire, label, maxlength, minlength, obligatoire, placeholder, readonly, size, type

Options de dev :
attributs, id, inserer_debut, inserer_fin

Adresse email (email)

Description : Permet d’avoir un champ de type email en HTML5.

Options de base :
afficher_si, afficher_si_avec_post, afficher_si_remplissage_uniquement, attention, autocomplete, class, conteneur_class, defaut, defaut_session, disable, disable_avec_post, erreur_obligatoire, explication, explication_apres, info_obligatoire, label, maxlength, obligatoire, placeholder, readonly, size, type

Options de dev :
attributs, id, inserer_debut, inserer_fin

Date (date)

Description : Permet de saisir une date à l’aide d’un calendrier

Options de base :
afficher_si, afficher_si_avec_post, afficher_si_remplissage_uniquement, attention, class, conteneur_class, defaut, disable, disable_avec_post, erreur_obligatoire, explication, explication_apres, heure_pas, horaire, info_obligatoire, label, obligatoire, readonly

Options de dev :
attributs, id, inserer_debut, inserer_fin

Choix restreint

Boutons radios (radio)

Description : Permet de choisir une option parmi plusieurs disponibles.

Options de base :
afficher_si, afficher_si_avec_post, afficher_si_remplissage_uniquement, attention, choix_alternatif, choix_alternatif_explication, choix_alternatif_label, class, conteneur_class, data, defaut, depublie_choix, disable, disable_avec_post, disable_choix, erreur_obligatoire, explication, explication_apres, info_obligatoire, label, obligatoire, vue_masquer_sous_groupe

Options de dev :
attributs, id, inserer_debut, inserer_fin

Case unique (case)

Description : Permet d’activer ou de désactiver quelque chose.

Options de base :
afficher_si, afficher_si_avec_post, afficher_si_remplissage_uniquement, attention, class, conteneur_class, defaut, disable, disable_avec_post, erreur_obligatoire, explication, explication_apres, info_obligatoire, label, label_case, label_non, label_oui, obligatoire, readonly, valeur_non, valeur_oui

Options de dev :
attributs, id, inserer_debut, inserer_fin

Cases à cocher (checkbox)

Description : Permet de choisir plusieurs options avec des cases.

Options de base :
afficher_si, afficher_si_avec_post, afficher_si_remplissage_uniquement, attention, attribut_title, choix_alternatif, choix_alternatif_explication, choix_alternatif_label, class, conteneur_class, data, defaut, depublie_choix, disable, disable_avec_post, disable_choix, erreur_obligatoire, explication, explication_apres, info_obligatoire, label, maximum_choix, obligatoire, vue_masquer_sous_groupe

Options de dev :
attributs, id, inserer_debut, inserer_fin

Liste déroulante / sélection (selection)

Description : Choisir une option dans une liste déroulante.

Options de base :
afficher_si, afficher_si_avec_post, afficher_si_remplissage_uniquement, attention, cacher_option_intro, choix_alternatif, choix_alternatif_explication, choix_alternatif_label, class, conteneur_class, data, defaut, depublie_choix, disable, disable_avec_post, disable_choix, erreur_obligatoire, explication, explication_apres, info_obligatoire, label, multiple, obligatoire, option_intro, size, vue_masquer_sous_groupe

Options de dev :
attributs, id, inserer_debut, inserer_fin

Destinataires (destinataires)

Description : Permet de choisir des destinataires parmi des comptes pré-sélectionnés.

Options de base :
afficher_si, afficher_si_avec_post, afficher_si_remplissage_uniquement, attention, choix_destinataires, erreur_obligatoire, explication, explication_apres, info_obligatoire, label, obligatoire, option_intro, type_choix

Options de dev :
attributs, id, inserer_debut, inserer_fin

Grille de questions (choix_grille)

Description : Permet de poser une série de questions à choix multiple d’une manière uniformisé et sous forme de grille

Options de base :
afficher_si, afficher_si_avec_post, afficher_si_remplissage_uniquement, attention, class, conteneur_class, data_cols, data_rows, erreur_obligatoire, explication, explication_apres, info_obligatoire, label, multiple, obligatoire

Options de dev :
attributs, id, inserer_debut, inserer_fin

Structure

Groupe de champs (fieldset)

Description : Un cadre qui pourra englober plusieurs champs.

Options de base :
afficher_si, afficher_si_avec_post, afficher_si_remplissage_uniquement, attention, conteneur_class, explication, explication_apres, label, onglet, onglet_vertical, pliable, plie

Options de dev :
attributs, id, inserer_debut, inserer_fin

Explication (explication)

Description : Un texte explicatif général.

Options de base :
afficher_si, afficher_si_avec_post, afficher_si_remplissage_uniquement, conteneur_class, liens_meme_fenetre, masquer, texte, titre

Options de dev :
alerte_role, alerte_type, attributs, id, inserer_debut, inserer_fin

Affichage en ligne (conteneur_inline)

Description : Pour regrouper visuellement des champs en ligne.

Options de base :
class, colonnes

Options de dev :
alerte_role, alerte_type, attributs, id, inserer_debut, inserer_fin

Contenu éditorial

Article (selecteur_article)

Description : Affiche un navigateur de sélection d’article

Options de base :
afficher_art_dans_langue_interface, afficher_langue, afficher_si, afficher_si_avec_post, afficher_si_remplissage_uniquement, attention, disable, disable_avec_post, erreur_obligatoire, explication, explication_apres, info_obligatoire, label, limite_branche, multiple, obligatoire, readonly

Options de dev :
attributs, id, inserer_debut, inserer_fin

Article ou rubrique (selecteur_rubrique_article)

Description : Affiche un navigateur de sélection d’article ou de rubrique

Options de base :
afficher_art_dans_langue_interface, afficher_langue, afficher_rub_dans_langue_interface, afficher_si, afficher_si_avec_post, afficher_si_remplissage_uniquement, attention, disable, disable_avec_post, erreur_obligatoire, explication, explication_apres, info_obligatoire, label, multiple, obligatoire, readonly

Options de dev :
attributs, id, inserer_debut, inserer_fin

Autrices et auteurs (auteurs)

Description : Permet de sélectionner un auteur, une autrice, ou plusieurs

Options de base :
afficher_si, afficher_si_avec_post, afficher_si_remplissage_uniquement, attention, cacher_option_intro, defaut, disable, disable_avec_post, erreur_obligatoire, explication, explication_apres, info_obligatoire, label, multiple, obligatoire, option_intro, option_statut, size, statut

Options de dev :
attributs, id, inserer_debut, inserer_fin

Document (selecteur_document)

Description : Affiche un sélecteur de document

Options de base :
afficher_si, afficher_si_avec_post, afficher_si_remplissage_uniquement, attention, erreur_obligatoire, explication, explication_apres, info_obligatoire, label, obligatoire

Options de dev :
attributs, id, inserer_debut, inserer_fin

Mot-clé (mot)

Description : Des mots-clés d’un groupe de mot

Options de base :
afficher_si, afficher_si_avec_post, afficher_si_remplissage_uniquement, attention, cacher_option_intro, class, defaut, disable, disable_avec_post, erreur_obligatoire, explication, explication_apres, forcer_select, id_groupe, info_obligatoire, label, multiple, obligatoire, option_intro, size

Options de dev :
attributs, id, inserer_debut, inserer_fin

Rubrique (selecteur_rubrique)

Description : Affiche un navigateur de sélection de rubrique

Options de base :
afficher_langue, afficher_rub_dans_langue_interface, afficher_si, afficher_si_avec_post, afficher_si_remplissage_uniquement, attention, disable, disable_avec_post, erreur_obligatoire, explication, explication_apres, info_obligatoire, label, limite_branche, multiple, obligatoire, readonly

Options de dev :
attributs, id, inserer_debut, inserer_fin

Divers

Champ caché (hidden)

Description : Un champ pré-rempli que l’internaute ne pourra pas voir.

Options de base :
afficher_si, afficher_si_avec_post, afficher_si_remplissage_uniquement, class, conteneur_class, defaut, label

Options de dev :
attributs, id, inserer_debut, inserer_fin

Toutes les options de base

Affichage multilingue (afficher_art_dans_langue_interface)

Description : Afficher uniquement les articles de la langue de l’internaute

Utilisée par :
selecteur_article, selecteur_rubrique_article

Afficher la langue (afficher_langue)

Description : Affiche la langue de l’article ou rubrique sélectionné devant le titre

Utilisée par :
selecteur_article, selecteur_rubrique, selecteur_rubrique_article

Affichage multilingue (afficher_rub_dans_langue_interface)

Description : Afficher uniquement les rubriques de la langue de l’internaute

Utilisée par :
selecteur_rubrique, selecteur_rubrique_article

Affichage conditionnel (afficher_si)

Description : Indiquez les conditions pour afficher le champ en fonction de la valeur des autres champs. L’identifiant des autres champs doit être mis entre @.
Exemple @selection_1@=="Toto" conditionne l’affichage du champ à ce que le champ selection_1 ait pour valeur la clé Toto.
Il est possible d’utiliser les opérateurs booléens || (ou) et && (et).
Vous trouverez la documentation complète de la syntaxe sur SPIP-contrib.

Utilisée par :
auteurs, case, checkbox, choix_grille, date, destinataires, email, explication, fieldset, hidden, input, mot, radio, selecteur_article, selecteur_document, selecteur_rubrique, selecteur_rubrique_article, selection, textarea

Poster tout de même -Poster la valeur en cas de masquage de saisie (afficher_si_avec_post)

Description : Par défaut les valeurs des saisies masquées par l’affichage conditionnel ne sont pas postées, donc pas enregistrées. Cochez cette case pour changer ce comportement.

Utilisée par :
auteurs, case, checkbox, choix_grille, date, destinataires, email, explication, fieldset, hidden, input, mot, radio, selecteur_article, selecteur_document, selecteur_rubrique, selecteur_rubrique_article, selection, textarea

Uniquement lors du remplissage -Masquer la saisie uniquement lors du remplissage (afficher_si_remplissage_uniquement)

Description : En cochant cette case, l’affichage conditionnel s’appliquera uniquement lors du remplissage du formulaire, pas lors de l’affichage des résultats.

Utilisée par :
auteurs, case, checkbox, choix_grille, date, destinataires, email, explication, fieldset, hidden, input, mot, radio, selecteur_article, selecteur_document, selecteur_rubrique, selecteur_rubrique_article, selection, textarea

Avertissement (attention)

Description : Un message plus important que l’explication.

Utilisée par :
auteurs, case, checkbox, choix_grille, date, destinataires, email, fieldset, input, mot, radio, selecteur_article, selecteur_document, selecteur_rubrique, selecteur_rubrique_article, selection, textarea

Valeur en attribut title -Mettre un attribut title dans le label, contenant la valeur technique du champ. À utiliser avec modération. (attribut_title)

Description : Mettre un attribut title dans le label, contenant la valeur technique du champ. À utiliser avec modération.

Utilisée par :
checkbox

Pré-remplissage du champ (autocomplete)

Description : Au chargement de la page, votre navigateur peut pré-remplir le champ en fonction de son historique

Utilisée par :
email, input

Choix possibles :

  • « defaut » : Laisser par défaut
  • « on » : Activer
  • « off » : Désactiver

Cacher le premier choix vide (cacher_option_intro)

Utilisée par :
auteurs, mot, selection

Proposer un choix alternatif (choix_alternatif)

Utilisée par :
checkbox, radio, selection

Explication du choix alternatif (choix_alternatif_explication)

Utilisée par :
checkbox, radio, selection

Label de ce choix alternatif (choix_alternatif_label)

Utilisée par :
checkbox, radio, selection

Destinataires possibles (choix_destinataires)

Description : Liste d’auteurs et d’autrices pour une sélection de destinataires par l’internaute, à défaut ce sera la personne qui a installé le site.

Utilisée par :
destinataires

Classes CSS supplémentaires (class)

Utilisée par :
case, checkbox, choix_grille, conteneur_inline, date, email, hidden, input, mot, radio, selection, textarea

Mode d’affichage (colonnes)

Utilisée par :
conteneur_inline

Choix possibles :

  • « 1ligne_max » : Largeur automatique, sur une seule ligne, prendre le plus de place
  • « 1ligne » : Largeur automatique, sur une seule ligne, prendre le moins de place
  • « xlignes_max » : Largeur automatique, sur plusieurs lignes, prendre le plus de place
  • « xlignes » : Largeur automatique, sur plusieurs lignes, prendre le moins de place
  • « col2 » : Deux champs par ligne
  • « col3 » : Trois champs par ligne
  • « col4 » : Quatre champs par ligne

Largeur (cols)

Description : Largeur du bloc en nombre de caractères. Cette option n’est pas toujours appliquée car les styles CSS de votre site peuvent l’annuler.

Utilisée par :
textarea

Classes CSS supplémentaires sur le conteneur (conteneur_class)

Utilisée par :
case, checkbox, choix_grille, date, email, explication, fieldset, hidden, input, radio, selection, textarea

Liste des choix possibles (data)

Description : Vous devez indiquez un choix par ligne sous la forme « cle|Label du choix ».
La clé doit être unique, brève, claire et ne doit plus être modifiée par la suite.

Description pour les devs : Fournir une liste de choix sous la forme d’un tableau PHP (array()) ou SPIP (#ARRAY) sous forme "clé" => "valeur".
Vous pouvez regrouper en sous groupe. Pour ce faire, la clé doit être le titre du sous groupe, et la valeur doit être elle-même un tableau associatif de type "clé" => "valeur".

Utilisée par :
checkbox, radio, selection

Réponses possibles (en colonne) (data_cols)

Description : Vous devez indiquez un choix par ligne sous la forme « cle|Label du choix ».
La clé doit être unique, brève, claire et ne doit plus être modifiée par la suite.

Description pour les devs : Fournir un liste de choix sous la forme d’un tableau PHP (array()) ou SPIP (#ARRAY) de type "cle"=>"Label du choix".

Utilisée par :
choix_grille

Questions (en ligne) (data_rows)

Description : Vous devez indiquer un choix par ligne sous la forme « cle|Label du choix » ou bien « cle|Label à gauche|Label à droite »
La clé doit être unique, brève, claire et ne doit plus être modifiée par la suite.

Description pour les devs : Fournir une liste de choix sous la forme d’un tableau PHP (array()) ou SPIP (#ARRAY) de type "cle"=>"Label du choix" ou bien "cle"=>"Label à gauche|Label à droite".

Utilisée par :
choix_grille

Valeur par défaut (defaut)

Utilisée par :
auteurs, case, checkbox, date, email, hidden, input, mot, radio, selection, textarea

Valeur par défaut depuis la session de l’internaute (defaut_session)

Description : Mettre le champ de session à utiliser. Si ce champ existe dans la session courante, sa valeur l’emportera sur la valeur par défaut.

Utilisée par :
email, input

Choix possibles :

  • « 0 » : email
  • « 1 » : nom

Dépublier certains choix (depublie_choix)

Description : Un choix dépublié ne sera plus proposé pour les nouveaux formulaires. Il restera visible si on modifie un enregistrement qui contenait ce choix.
Indiquer les choix séparés par une virgule, exemple : choix1,choix3.

Description pour les devs : Un choix dépublié ne sera plus proposé pour les nouveaux formulaires. Il restera visible si on modifie un enregistrement qui contenait ce choix.
Indiquer les choix sous forme de tableau, exemple : ["choix1","choix3"].

Utilisée par :
checkbox, radio, selection

Désactiver le champ (disable)

Description : Le champ ne peut plus obtenir le focus.

Utilisée par :
auteurs, case, checkbox, date, email, input, mot, radio, selecteur_article, selecteur_rubrique, selecteur_rubrique_article, selection, textarea

Désactiver mais poster (disable_avec_post)

Description : Identique à l’option précédente mais poste quand même la valeur dans un champ caché.

Utilisée par :
auteurs, case, checkbox, date, email, input, mot, radio, selecteur_article, selecteur_rubrique, selecteur_rubrique_article, selection, textarea

Désactiver certains choix (disable_choix)

Description : Indiquer les choix séparés par une virgule, exemple : choix1,choix3.

Description pour les devs : Indiquer les choix sous forme de tableau, exemple : ["choix1","choix3"].

Utilisée par :
checkbox, radio, selection

Message d’erreur pour l’obligation (erreur_obligatoire)

Description : Vous pouvez personnaliser le message d’erreur affiché pour indiquer l’obligation (sinon laisser vide).

Utilisée par :
auteurs, case, checkbox, choix_grille, date, destinataires, email, input, mot, radio, selecteur_article, selecteur_document, selecteur_rubrique, selecteur_rubrique_article, selection, textarea

Explication (explication)

Description : Si besoin, une courte phrase décrivant l’objet du champ.

Utilisée par :
auteurs, case, checkbox, choix_grille, date, destinataires, email, fieldset, input, mot, radio, selecteur_article, selecteur_document, selecteur_rubrique, selecteur_rubrique_article, selection, textarea

Explication après le champ (explication_apres)

Attention : Pour des raisons d’accessibilité, les explications importantes doivent toujours être avant la saisie.

Utilisée par :
auteurs, case, checkbox, choix_grille, date, destinataires, email, fieldset, input, mot, radio, selecteur_article, selecteur_document, selecteur_rubrique, selecteur_rubrique_article, selection, textarea

Forcer l’utilisation d’un select (forcer_select)

Description : Si un groupe de mots est sélectionné, par défaut il s’agira d’une saisie radio. Vous pouvez forcer l’utilisation d’un select.

Utilisée par :
mot

Intervalle des minutes dans le menu d’aide à la saisie (heure_pas)

Description : Lorsque vous utilisez l’horaire, un menu s’affiche pour aider à saisir heures et minutes. Vous pouvez ici choisir l’intervalle de temps entre chaque choix (par défaut 30min).

Utilisée par :
date

Choix possibles :

  • « 0 » : 1 minute
  • « 1 » : 2 minutes
  • « 2 » : 5 minutes
  • « 3 » : 15 minutes
  • « 4 » : 30 minutes

Horaire -Permettre de saisir aussi l’horaire (horaire)

Description : Permettre de saisir aussi l’horaire

Utilisée par :
date

Groupe de mots (id_groupe)

Utilisée par :
mot

Indication d’obligation (info_obligatoire)

Description : Vous pouvez modifier l’indication d’obligation par défaut : [Obligatoire]. Pour garder l’information par défaut, ne rien mettre. Pour ne rien afficher, mettre un texte composé uniquement d’espace.

Utilisée par :
auteurs, case, checkbox, choix_grille, date, destinataires, email, input, mot, radio, selecteur_article, selecteur_document, selecteur_rubrique, selecteur_rubrique_article, selection, textarea

Insérer une barre d’outils (inserer_barre)

Description : Insère une barre d’outils du porte-plume si ce dernier est activé.

Utilisée par :
textarea

Choix possibles :

  • « edition » : barre d’édition complète
  • « forum » : barre des forums

Label (label)

Description : Le titre qui sera affiché.

Utilisée par :
auteurs, case, checkbox, choix_grille, date, destinataires, email, fieldset, hidden, input, mot, radio, selecteur_article, selecteur_document, selecteur_rubrique, selecteur_rubrique_article, selection, textarea

Label placé à côté de la case (label_case)

Utilisée par :
case

Label si la case n’est pas cochée (label_non)

Description : Sera visible lors de l’affichage des résultats.

Utilisée par :
case

Label si la case est cochée (label_oui)

Description : Sera visible lors de l’affichage des résultats.

Utilisée par :
case

Ouvrir les liens dans la même fenêtre (liens_meme_fenetre)

Utilisée par :
explication

Limiter à une branche (limite_branche)

Description : Limitera le choix à une branche spécifique du site

Utilisée par :
selecteur_article, selecteur_rubrique

Nombre de caractères maximum (longueur_max)

Description : L’internaute ne pourra pas saisir plus de caractères que ce nombre.

Utilisée par :
textarea

Ajouter un bouton afficher/masquer l’explication (masquer)

Utilisée par :
explication

Limiter le nombre de choix (maximum_choix)

Description : Nombre de choix maximum ?

Utilisée par :
checkbox

Nombre de caractères maximum (maxlength)

Description : L’internaute ne pourra pas saisir plus de caractères que ce nombre.

Utilisée par :
email, input

Nombre de caractères minimum (minlength)

Description : L’internaute ne pourra pas saisir moins de caractères que ce nombre.

Utilisée par :
input

Sélection multiple (multiple)

Description : L’internaute pourra sélectionner plusieurs valeurs

Utilisée par :
auteurs, choix_grille, mot, selecteur_article, selecteur_rubrique, selecteur_rubrique_article, selection

Champ obligatoire (obligatoire)

Utilisée par :
auteurs, case, checkbox, choix_grille, date, destinataires, email, input, mot, radio, selecteur_article, selecteur_document, selecteur_rubrique, selecteur_rubrique_article, selection, textarea

Onglet -Afficher sous forme d’onglet (onglet)

Description : Afficher sous forme d’onglet

Utilisée par :
fieldset

Onglet vertical (onglet_vertical)

Description : Il suffit qu’un seul onglet dans un groupe soit marqué comme vertical pour que l’ensemble des onglets soient verticaux.

Utilisée par :
fieldset

Label du premier choix vide (option_intro)

Utilisée par :
auteurs, destinataires, mot, selection

Afficher les statuts (option_statut)

Utilisée par :
auteurs

Placeholder (placeholder)

Utilisée par :
email, input, textarea

Pliable -Le groupe de champs pourra être replié (pliable)

Description : Le groupe de champs pourra être replié

Utilisée par :
fieldset

Déjà plié -Si le groupe de champs est pliable, il sera déjà plié à l’affichage du formulaire (plie)

Description : Si le groupe de champs est pliable, il sera déjà plié à l’affichage du formulaire

Utilisée par :
fieldset

Activer la prévisualisation (previsualisation)

Description : Si le porte-plume est activé, ajoute un onglet pour prévisualiser le rendu du texte saisi.

Utilisée par :
textarea

Lecture seule (readonly)

Description : Le champ peut être lu, sélectionné, mais pas modifié.

Utilisée par :
case, date, email, input, selecteur_article, selecteur_rubrique, selecteur_rubrique_article, textarea

Nombre de lignes (rows)

Description : Hauteur du bloc en nombre de ligne. Cette option n’est pas toujours appliquée car les styles CSS de votre site peuvent l’annuler.

Utilisée par :
textarea

Taille du champ (size)

Description : Largeur du champ en nombre de caractères. Cette option n’est pas toujours appliquée car les styles CSS de votre site peuvent l’annuler.

Utilisée par :
auteurs, email, input, mot, selection

Statut(s) particulier(s) (statut)

Utilisée par :
auteurs

Choix possibles :

  • « 0minirezo » : Administrateurs
  • « 1comite » : Rédacteurs
  • « 6forum » : Visiteurs

Texte de l’explication (texte)

Description : Un texte explicatif général.

Utilisée par :
explication

Titre de l’explication (titre)

Utilisée par :
explication

Texte masqué lors de la saisie (ex : mot de passe) (type)

Utilisée par :
email, input

Type de choix (type_choix)

Utilisée par :
destinataires

Choix possibles :

  • « tous » : Mettre toutes ces personnes en destinataires. L’internaute n’aura aucun choix.
  • « un » : Permettre à l’internaute de choisir une seule personne (sous forme de liste déroulante).
  • « un_radio » : Permettre à l’internaute de choisir une seule personne (sous forme de liste à puce).
  • « plusieurs » : Permettre à l’internaute de choisir plusieurs destinataires.

Valeur non (valeur_non)

Description : Valeur postée si la case n’est pas cochée. Attention, il s’agit d’une valeur technique et non d’une valeur affichée.

Utilisée par :
case

Valeur oui (valeur_oui)

Description : Valeur postée si la case est cochée. Attention, il s’agit d’une valeur technique et non d’une valeur affichée.

Utilisée par :
case

Lors de l’affichage du résultat, n’afficher que la valeur, sans le sous-groupe (vue_masquer_sous_groupe)

Utilisée par :
checkbox, radio, selection

Toutes les options de dev

Options disponibles uniquement pour le dévellopement PHP/Squelette.

Rôle d’alerte (alerte_role)

Description : Si besoin, pour l’espace privé uniquement choisir un rôle d’alerte (attribut html role : alert, status, etc.).

Utilisée par :
explication

Type d’alerte (alerte_type)

Description : Si besoin, pour l’espace privé uniquement choisir un type d’alerte parmis ceux proposés par SPIP (notice, error, success, info).

Utilisée par :
explication

Attributs HTML supplémentaires (attributs)

Description : Les attributs portent sur chaque champ html, y compris pour les saisies avec plusieurs champs (radio, checkbox, etc.).

Utilisée par :
auteurs, case, checkbox, choix_grille, date, destinataires, email, explication, fieldset, hidden, input, mot, radio, selecteur_article, selecteur_document, selecteur_rubrique, selecteur_rubrique_article, selection, textarea

Attribut id de la saisie (id)

Description : Sera automatiquement préfixé par champ_.

Utilisée par :
auteurs, case, checkbox, choix_grille, date, destinataires, email, explication, fieldset, hidden, input, mot, radio, selecteur_article, selecteur_document, selecteur_rubrique, selecteur_rubrique_article, selection, textarea

Code à insérer en début de saisie (inserer_debut)

Utilisée par :
auteurs, case, checkbox, choix_grille, date, destinataires, email, explication, fieldset, hidden, input, mot, radio, selecteur_article, selecteur_document, selecteur_rubrique, selecteur_rubrique_article, selection, textarea

Code à insérer en fin de saisie (inserer_fin)

Utilisée par :
auteurs, case, checkbox, choix_grille, date, destinataires, email, explication, fieldset, hidden, input, mot, radio, selecteur_article, selecteur_document, selecteur_rubrique, selecteur_rubrique_article, selection, textarea

Addendum historique

  • L’option datas est encore supportée, mais on lui préferera l’option data.
  • La saisie oui_non ne doit plus être utilisée. On lui préférera la saisie radio, avec des libellés pouvant se comprendre hors contexte (« J’accepte telle action » / « Je refuse telle action »).
  • La saisie selection_multiple ne doit plus être utilisée. On lui préféra la saisie selection avec l’option multiple.

Discussion

39 discussions

  • 7

    bonjour
    y a t-il un moyen de permettre de classer les rubriques ou les articles sélectionnés avec selecteur_rubrique_article ou selecteur_article en restant dans le formulaire ?

    • Il me semble que c’est le cas non ? Quand ya le choix multiple, on peut drag n drop la sélection pour changer l’ordre, et ça change alors le tableau PHP final qu’on reçoit de mémoire (c’est exactement comme ça que Polyhiérarchie sépare le premier de la liste des autres, en mettant le premier en vraie rubrique et les autres en rubrique secondaire).

    • j’ai par exemple la saisie suivante
      array(
      ’saisie’ => ’selecteur_article’,
      ’options’ => array(
      ’nom’ => ’sel1_art’,
      ’multiple’ => ’oui’,
      ’label’ => ’<:paramsite:champ_article_label :>’,
      ’explication’ => ’<:paramsite:champ_article_explication :>’,
      ’defaut’ => ’’,

      )
      ),

      et je ne vois pas ou je peux faire un drag and drop lorsque l’on saisie des articles avant ou aprés fermer

    • Plus exactement le drag and drop ne fonctionne pas.
      Par contre si j active le plugin polyhiersrchie son drag and drop fonctionne bien mais il n utilise pas le même mécanisme de saisie.

    • Pourtant si ça utilise bien le même mécanisme : uniquement redirection vers les sélecteurs rubriques et articles du core : https://git.spip.net/spip-contrib-extensions/polyhierarchie/src/branch/master/formulaires/inc-selecteur-parents.html

      Et dans les deux cas ya bien le JS inséré :
      https://git.spip.net/spip/spip/src/branch/master/prive/formulaires/selecteur/articles.html#L2

    • après de nombreux test j’ai vue que si plusieurs selecteur_rubrique et/ou selecteur_rubrique_article multiple étaient présent dans le formulaire .... seul le premier était dragable en particulier avec afficher_si

      'saisies' =>  array(          
                      array(
                              'saisie' => 'selection',
                              'options' => array(
                                      'nom' => 'sel1_choix',
                                      'label' => '<:paramsite:champ_choix_label:>',
                                      'explication' => '<:paramsite:champ_choix_explication:>',
                                      'defaut' => 'articles',
                                      'cacher_option_intro' => 'oui',
                                      'data' => array(
                                          'art' => 'articles',
                                              'rub' => 'rubriques',
                                              'artrub' => 'articles et rubriques',
                                                                                      )
                                      )
                              ),        
                                                      
               
                      array(
                              'saisie' => 'selecteur_rubrique_article',
                              'options' => array(
                                      'nom' => 'sel1_rubart',
                                      'multiple' => 'oui',
                                      'afficher_si' => '@sel1_choix@  == "artrub"'
                                      
                                      )
                              ),
                              
                      array(
                              'saisie' => 'selecteur_rubrique',
                              'options' => array(
                                      'nom' => 'sel1_rub',
                                      'multiple' => 'oui',
                                      'label' => '<:paramsite:champ_rubrique_label:>',
                                      'explication' => '<:paramsite:champ_rubrique_explication:>',
                                      'defaut' => '',
                                      'afficher_si' => '@sel1_choix@  == "rub"'
                                      )
                              ),

      ou meme

      $saisies = array(	   //unesaisie		
      		
      	   
      			
      		
      	$general_fieldset = array( // ONGLET GENERAL
      		'saisie' => 'fieldset',
      		'options' => array(
      			'nom' => 'general',
      			'label' => 'général',
      			
      			),
      		
      		'saisies' =>  array(	   //unesaisie
      		
      		
      		array(
      			'saisie' => 'selecteur_rubrique',
      			'options' => array(
      				'nom' => 'rub',
      				'label' => 'rubrique',
      				'multiple' =>'oui',
      								
      				
      				)
      			),
      		array(
      			'saisie' => 'selecteur_rubrique',
      			'options' => array(
      				'nom' => 'rub2',
      				'label' => 'rubrique',
      				'multiple' =>'oui',
      								
      				
      				)
      			),
      		array(
      			'saisie' => 'selecteur_article',
      			'options' => array(
      				'nom' => 'art',
      				'multiple' => 'non',
      				'label' => 'article',
      				
      				
      				
      				
      				)
      			),
      		
      	
      		
      		)
      	)
      	);
      	
      return $saisies;
    • pour selecteur_article cela fonctionne si j’ajoute ( juste en test) dans prive/formulaires/selecteur/articles de spip le code suivantqui existe dans le fichier rubriques présent au même endroit

      
      [(#ENV{sortable,non}|=={oui}|oui)
      <script type='text/javascript'>
      (function(){
      const picked_sorter = () => {
      new Sortable(document.querySelector("ul.item_picked"));
      };
      if (typeof Sortable === "undefined") {
      jQuery.getScript('[(#CHEMIN{prive/javascript/Sortable.min.js}|timestamp)]').done(picked_sorter);
      } else {
      picked_sorter();
      }
      })();
      </script>
      ]
    • Bon je me suis un peu embrouille dans mes explications en résume :
      si il y a plusieurs selecteur_article ou et selecteur_rubrique et ou selecteur_rubrique_article dans le meme formulaire de l’espace prive ... seul le premier selecteur est dragable.

      par ex : selecteur_article ,selecteur_rubrique seul article est dragable.
      selecteur_rubrique selecteur_ article c’est rubrique qui est dragable
      selecteurs_articles selecteur_article : seul le premier est dragable
      selecteur_rubrique_article .selecteur_article : seul rubrique_article est dragable..

    Répondre à ce message

  • 2

    comment peut on ne voir que les articles « publies » avec saisie ?
    en spip 4.2.6 saisie 4.7.1 le code suivant me donne les articles publies et non publies
    array(
    ’saisie’ => ’selecteur_article’,
    ’options’ => array(
    ’nom’ => ’sel1_art’,
    ’multiple’ => ’oui’,
    ’label’ => ’<:paramsite:champ_article_label :>’,
    ’explication’ => ’<:paramsite:champ_article_explication :>’,
    ’defaut’ => ’’,

    )
    ),
    merci

    • Je ne crois pas que ce soit possible avec le sélecteur du core, qui est fait pour faire des interfaces dans l’admin : https://git.spip.net/spip-contrib-extensions/saisies/src/branch/master/saisies/selecteur_article.html#L38

      Il n’y a aucun « env » passé à l’inclusion, donc on ne peut passer aucun environnement supplémentaire au sélecteur du core à qui on délègue et qui aurait pu avoir un {statut?} éventuellement dans la boucle (et de toute façon le picker en ajax ne prévoit pas de passer ça).

    • cela semble fonctionner en ajoutant statut=publie dans selecteur_article
      on ne sélectionne que les articles publiés... car dans prive/formulaires/ selecteurs / articles la boucle contient le champ statut.

      <BOUCLE_art(ARTICLES){statut?}{tout}{id_article}>#SET{id_rubrique,#ID_RUBRIQUE}</BOUCLE_art>

      avec un

       statut=#ENV{statut,""} 

      cela serait peut être généralisable

      [(#INCLURE{fond=formulaires/selecteur/articles,
      	selected=#GET{val},
      	name=#ENV{nom},
      	afficher_langue=#ENV{afficher_langue,''},
      	filtrer_langue_article=#GET{filtrer_langue_article,''},
      	select=[(#ENV{multiple}|?{0,1})],
      	sortable=[(#ENV{multiple}|?{oui,non})],
      	tri==[(#ENV{multiple}|?{0,1})],
      	limite_branche=#ENV{limite_branche,''},
      	rubriques=0,
      	statut=publie})]

    Répondre à ce message

  • 7

    Bonjour,
    une question sur l’affichage visuel des champs,
    on peut mettre deux champs de saisies en php dans un fieldset, ça fonctionne bien.
    Mais comment ajouter une class spécifique englobant ces deux champs.
    Avec bootstrap (ou d’autres framework css), si le div class editer-groupe du fieldset pouvait prendre la class row, les deux champs avec un col-6 se rangeraient côte à côte gentiment.
    Voici mon code

    	// Champ tel_fixe
    	$fieldset_tel_fixe[] = array(
    		'saisie' => 'input',
    		'options' => array(
    			'li_class' => 'form-group col-md-6', 
    			'class' => 'form-control', 
    			'nom' => 'tel_fixe',
    			'label' => _T('contact:champ_tel_fixe_label'),
    			'obligatoire' => 'oui',
    		),
    	);
    	
    	// Champ tel_fixe
    	$fieldset_tel_fixe[] = array(
    		'saisie' => 'case',
    		'options' => array(
    			'li_class' => 'form-group col-md-6', 
    			'class' => 'form-control', 
    			'nom' => 'tel_fixe_public',
    			'label' => _T('contact:champ_tel_fixe_label'),
    			'label_case' => 'rendre ce numéro public',
    		),
    	);
    	
    	$saisies[] = array(
    					'saisie' => 'fieldset',
    					'options' => array(
    						'nom' => 'telephone_fixe',
    						'class' => 'canemarchepas ici row',
    						'label' => _T('contacts:telephone_fixe'),
    						'conteneur_class' => 'fieldset_tel_fixe row',
    					),
    					'saisies' => $fieldset_tel_fixe
    	);

    Et belle année. pas trop môche en tout cas.
    Bisoux

    • Hello Touti, bonne année
      voilà une PR qui devrait te plaire et qu’il ne reste « plus que » à faire avancer jusqu’au bout (désolé de la longueur, faut justement finir de se mettre d’accord après tous ces débats) :)
      https://git.spip.net/spip-contrib-extensions/saisies/pulls/98

    • Hello,
      merci pour ta rapidité et la bonne année !
      pas fini de lire le fil, mais amha il y a confusion entre la possibilité de mettre une class du fait de la codeuse et le choix de cette class. Et là, je ne me prononce pas du tout puisque je suggère que cela dépende des souhaits de celle qui l’utilise.
      En fait ce serait plus clair de décider ou ajouter « class_conteneur » ou « class_li » ou « class_truc » pour toutes les saisies avec un niveau de profondeur par rapport au champ ? Nolosé, mais je m’abonne au fil GIT !

      ++

    • Il n’est pas prévu de personnaliser les classes à chaque niveau. Enfin si ça devait se faire ça serait propre à chaque saisie, chacun pouvant produire absolument n’importe quoi comme HTML. Mais vraiment, on va pas s’amuser à ajouter un champ de perso CSS pour chaque sous-niveau. En effet, la perso CSS sert à cibler tel *champ* précis, mais ensuite on utilise tout simplement la cascade pour styler le reste.

      Pour appliquer row il faut plutôt utiliser Bootstrap *en SCSS*, et donc pouvoir hériter des styles de row à n’importe quel sous-endroit d’une cascade de classe.

      Cependant, la PR que je pointais c’était pour une raison plus précise : ce n’est pas du tout en rapport avec le fait de pouvoir personnaliser des classes, mais plus précisément car tu parlais de vouloir mettre « en ligne » certains champs d’un groupe. Et justement cette PR a pour but que le plugin fournisse d’office une saisie officielle groupant les champs intérieurs « en ligne » par défaut, sans rien avoir à connaitre des CSS. Faut juste finir de se mettre d’accord sur la nomenclature et la limitation de ce que ça doit permettre. :)

    • Bonjour,
      Petit préambule : j’utilise CSS depuis quelques années et je connais SCSS, dont j’ai produit le plugin SPIP. Je suppose que je sais donc de quoi je parle, je sais parfaitement personnaliser les saisies, les CSS ou surcharger les class SCSS de Bootstrap. Ici, j’essaye d’appréhender les choses de façon générique et pour toutes personnes débutantes,.

      Tu dis

      Il n’est pas prévu de personnaliser les classes à chaque niveau.

      Uhuh, ça n’existe pas comme réponse, le principe est toujours d’anticiper, sinon dans ce cas, on ne fait rien, je ne proposer rien, et on n’écoute personne.

      Enfin si ça devait se faire ça serait propre à chaque saisie, chacun pouvant produire absolument n’importe quoi comme HTML

      Hum, je ne propose pas du tout de faire de la bouillie personnelle. Saisies concerne SPIP, beaucoup de plugins dont formidable et les classes actuelles sont des classes SPIP qu’il n’est pas facile de contrôler,
      Et je suis toujours dans l’optique d’offrir quelque chose de simple et compréhensible et ne pas avoir à tambouiller en scss.
      Donc anticiper et penser à une hiérarchie sémantique générique avec possibilités de baliser ces class ne serait-ce que par niveau (#css_pour_premier_conteneur / #css_pour_deuxieme_conteneur / #css_pour_dernier_conteneur) serait un plus. Un peu comme le #DIV a remplacé le <li> saisies offrirait un jeu avec des caractèristiques CSS facilement surchargeable.
      #css_pour_premier_conteneur => .editer-groupe

      Mais vraiment, on va pas s’amuser à ajouter un champ de perso CSS pour chaque sous-niveau.

      En établissant quelques principes, on aurait la même chose qu’un fichier de lang, un seul tableau avec les champs voulus … et surchargeable soit par le tableau soit dans la saisie elle même. Donc, adoption de différents framework possible. J’dis ça, j’dis rien.

      En effet, la perso CSS sert à cibler tel *champ* précis, mais ensuite on utilise tout simplement la cascade pour styler le reste.

      Oui, c’est tout le principe des class CSS.

      Pour appliquer row il faut plutôt utiliser Bootstrap *en SCSS*, et donc pouvoir hériter des styles de row à n’importe quel sous-endroit d’une cascade de classe.

      Oui, c’est tout le principe des class SCSS mais ce n’est pas facilement applicable en l’état avec les saisies, (à moins de faire de l’horlogerie), qui comme dans mon exemple ne dispose pas de cette possibilité d’insérer une class.

      Cependant, la PR que je pointais c’était pour une raison plus précise : ce n’est pas du tout en rapport avec le fait de pouvoir personnaliser des classes,

      Tu confonds pas insérer des class et les personnaliser ?

      … mais plus précisément car tu parlais de vouloir mettre « en ligne » certains champs d’un groupe.

      Donc de pouvoir insérer une class, ce qu’il n’est pas possible de faire en l’état.

      Et justement cette PR a pour but que le plugin fournisse d’office une saisie officielle groupant les champs intérieurs « en ligne » par défaut, sans rien avoir à connaitre des CSS. Faut juste finir de se mettre d’accord sur la nomenclature et la limitation de ce que ça doit permettre. :)

      Merci pour le résumé officiel, je comprends, mais je vais pas être désolée de trouver ça limité et pas générique et d’avoir d’autres idées :)

    • J’ai essayé de comprendre la conversation mais je suis pas sur d’avoir tout capté. Dis moi si je me trompe tout.

      Il me semble qu’il y a deux besoins différents exprimés :
      -  pouvoir regrouper des saisies sans passer par un fieldset : ça c’est la PR ouverte, avec encore des questions de convention à trancher
      -  pouvoir insérer automatiquement une classe selon le niveau de profondeur ? Ou bien c’est encore autre chose ? Si j’ai bien compris ce besoin, il me semble que l’on pourrait effectivement imaginer cela comme une option globale du formulaire, et se débrouiller pour calculer la profondeur par simple augmentation d’un co.pteur chaque fois qu’on passe à une sous saisie

    • En fait ce serait plus clair de décider ou ajouter « class_conteneur » ou « class_li » ou « class_truc » pour toutes les saisies avec un niveau de profondeur par rapport au champ ?

      C’est cette phrase que je ne comprend pas tout à fait.

    • Bonjour Maïeul,
      j’essayerai d’expliciter ces idées dès que j’ai le temps de faire des essais et vous remonter les tests.
      Pas d’urgence :)
      Bonne journée

    Répondre à ce message

  • 3

    Bonjour,
    Je suis en train de développer un thème et j’aimerais que, dans le backend, les administrateurs puissent uploader une image. Grâce au plugin SAISIES POUR FORMULAIRES, j’aimerais intégrer un INPUT type=« file » mais je n’y arrive pas. Dans la documentation ici présente, je vois pourtant le type de SAISIE qui s’appelle FICHIER mais SPIP me dit qu’aucun squelette n’est existant...

    • La saisie de type fichier est particulière. Elle est fournie avec CVT upload, et pas directement avec le plugin saisies.

      Par ailleurs, cvt upload ne fournit pas de traitement à posteriori. Donc je vous invite à lire la documentation

      https://contrib.spip.net/CVT-Upload

    • Bonjour et merci pour cette réponse qui confirme ce que j’en avais déduit suite à mes recherches. Je ne voulais pas installer un énième plugin mais si il le faut, je ferai des essais.

    • En me documentant, j’ai l’impression que c’est le plugin BIGUP qui est intégré dans plugins-dist et qui remplace CVT-upload. D’après ce lien, il y aurait une #SAISIEbigup mais je ne trouve pas de trace ici :/

    Répondre à ce message

  • 15

    salut

    j’ai essayé cette syntaxe, sans succès, dans la page html d’un formulaire cvt :

    [(#SAISIE{input, pratique_autre,
              affiche_si = '@pratique@ == "Autre"',
              label=<:label_autre:>})] 

    -  parceque le javascript n’est pas chargé ?
    -  parceque ce n’est pas la bonne syntaxe ?

    je suis perdu
    bien à vous, Yanic

    Répondre à ce message

  • 2

    Une question qui est probablement souvent posée (et dont je n’ai pas trouvé la réponse -je précise que je l’ai posée aussi sur le forum d’entraide en délayant un peu, et suis un peu perdue sur le fait) : comment élargir la liste des statuts d’auteurs disponibles (par défaut listés au choix parmi : admin/rédacteurs/visiteurs) pour faire apparaître de nouveaux statuts qu’on a au préalable créés (via mes_options et mes_fonctions) ? Je pose la question ici même si mon usage est pour un plugin perso créé avec ajout de ChampsExtras (qui dispose d’un paramétrage : « statuts d’auteurs » pré-sélectionnés pour restreindre la liste d’affichage des auteurs aux statuts prédéfinis — ChampsExtra s’appuie sur Saisie, il me semble). J’ai cru comprendre en lisant le code du fichier des mots-clés (fichier : mots\inc\mots.php, ligne 94-98) qu’il y a apparemment une difficulté à gérer les statuts des objets. Est-ce qu’il y a eu une avancée ou une solution sur ce point ? Ou bien, à défaut, pourrait-on afficher, dans le cas d’un objet qui est lié à un autre, (par ex. les auteurs liés à des mots-clés, ou autre objet créé) l’encart des auteurs avec leurs onglets de statuts, comme la façon dont ils s’affichent dans l’objet natif « Auteurs » (ex. en sélectionnant « afficher les auteurs » cela crée un affichage avec trois onglets en haut de tableau, administrateurs/rédacteurs/à la poubelle et en sélectionnant « afficher les visiteurs » cela crée un affichage avec un onglet visiteurs) ? La solution alternative est bien sûr d’utiliser le plugin « groupes d’auteurs » (ciag) et de sélectionner les groupes, mais les nouveaux statuts ne sont toujours pas pris en compte dans le formulaire de ChampsExtras, donc au pire il faut tout mettre dans « visiteurs » et puis faire un deuxième tri via « affichage sélectif » avec le groupe choisi. Ce qui est un peu dommage en soi, du point de vue informatique ( 2 critères de sélection au lieu d’un seul) et moins pratique si on a vraiment besoin de gérer des statuts différents affichés nativement dans spip sans avoir à passer par un plugin de groupe. Merci pour l’aide éventuelle et j’espère avoir été claire dans la question, c’est difficile d’exprimer ce que l’on veut quand on n’est pas informaticien ni web-developpeur (malgré bac+7 !)

    • Bonjour,
      C’est une constante dans SPIP, de n’avoir que quatre profils généraux. Ce n’est pas comme dans Drupal où le nombre de profils et les autorisations apportées sont (presque) illimitées.
      On peut trouver néanmoins de petites choses qui peuvent aider. Par exemple, vous pouvez définir à l’aide de champs extras différents « droits » que vous implémentez dans de nouveaux champs, et que vous utilisez ensuite dans vos boucles d’auteurs. Bien sur, vous n’avez pas créé des groupes de profils différenciés, et uniquement dans la partie publique du site, mais c’est déjà ça. En utilisant conjointement le plugin accès restreint, vous pouvez arriver à réaliser des merveilles.
      Mon conseil : comme il s’agit d’une différenciation des autorisations dans l’espace publique uniquement, n’ajoutez ces champs qu’aux visiteurs, cela fait un problème en moins pour l’accès à la partie privée.
      Et l’autre option, bien sûr : utiliser Drupal (mais son apprentissage risque d’être dur : drush, twig, composer ...

    • Je n’ai pas compris à quel endroit tu veux voir afficher les statuts supplémentaires. Il n’y a pas de saisie « statut d’auteurs », donc je ne crois pas que ça ait un rapport avec ce plugin et qu’il faudrait y répondre ici.

      Tu devrais plutôt poser la question sur le forum de Champs Extras à priori, si c’est lui qui construit un select avec uniquement en dur les statuts connus, au lieu de prendre la liste déclaré dans l’objet auteur par l’API.

    Répondre à ce message

  • 3

    Bonjour,
    Existe-t-il une possibilité d’exclusion de son propre login du champ auteurs ?
    Merci.

    • En répondant à mon propre commentaire, je dirais qu’il faut surement ajouter un id_auteur != #ENVid_auteur dans le fichiers saisies.
      Si j’ajoute dans les options de mon ficher php de formulaire une ligne ’id_auteur’ => $id_auteur (passé en argument pour le formulaire depuis charger, l’id de l’utilisateur est passé (il est bien dans [<pre>(#ENV**|unserialize|print_r{1})</pre>].
      Ma question devient donc :
      Comment faire pour y accéder ? J’ai tenté une syntaxe du style

      #SET{demandeur,#GET{#ENV{_saisies}}}
      #SET{demandeur,#GET{demandeur}|{table_valeur{saisies}}}
      #SET{demandeur,#GET{demandeur}|{table_valeur{0}}}
      #SET{demandeur,#GET{demandeur}|{table_valeur{id_auteur}}}

      qui n’apporte rien, étant entendu que la première valeur du tableau correspond bien à l’id_de l’utilisateur.
      Quelqu’un pour me corriger ?

    • Bé si t’as passé id_auteur c’est #ENV{id_auteur} quoi, ya pas de feinte. :)

    • Avais testé évidemment ! Mais tu m’as donné la bonne idée : il fallait que je déclarer l’id_auteur DANS le tableau de déclaration POUR la liste d’auteurs (jusqu’à présent, c’était ailleurs), et là ça marche. Merci.

    Répondre à ce message

  • 2

    Bonjour,
    Je suis en train d’apprendre à développer des plugins pour SPIP et j’aimerais faire un formulaire de paramétrage pour un plugin. Avec le plugin SAISIES, je voudrais mettre un sélecteur d’article OBLIGATOIRE mais je n’ai pas l’impression que ce paramètre soit pris en compte.

    [(#SAISIE{selecteur_article, bloc1,
        label=<:theme_x:cfg_premier_bloc:>,
        explication=<:theme_x:cfg_bloc_explication:>,
        obligatoire=oui})]
    • Le code HTML que vous citez va permettre à ce que la saisie soit affichées comme obligatoire par le site public. En revanche, elle ne permettra pas la vérification du caractère obligatoire par PHP.

      Pour un formulaire de configuration, le plus simple est encore de déclarer vos saisies uniquement en PHP : cela permettra de produire automatiquement le HTML + la vérification.

      C’est expliqué ici.

      https://contrib.spip.net/Saisies#Declarer-un-formulaire-CVT-complet-en-PHP

    • OK merci. J’avais vu cet article en effet mais je pensais que le paramètre « obligatoire » de la balise #SAISIE faisait le job vu que ça marchait pour les autres types de champs. Mais finalement je comprends que ça ne faisait qu’ajouter required sur les champs et que c’est le navigateur qui indiquait l’obligation de renseigner le champ.

    Répondre à ce message

  • Je viens de relever une anomalie avec la saisie Selection.
    Dans le cas d’un objet éditorial fait avec la Fabrique, cette saisie ne prend pas en compte le paramètre defaut.

    [(#SAISIE{selection, test, label=Test, datas=[(#ARRAY{bla, Bla, bli,Bli})], defaut=bli})]

    A la création d’un nouvel objet, la fonction formulaires_editer_objet_charger() va renvoyer $valeurs['test'] = "".
    Du coup #ENV{test} ne sera pas nulle et la ligne https://zone.spip.net/trac/spip-zone/browser/spip-zone/_plugins_/saisies/trunk/saisies/selection.html#L40 va shunter la valeur par defaut.

    J’aurais bien proposé une solution, mais n’étant pas à l’aise avec cette syntaxe « à rallonge », je préfère vous passer la main.

    A vous les studios :)

    Répondre à ce message

  • 4

    Bonjour,

    Petite question : comment, si c’est possible, ajouter à un champ SAISIES une span message_erreur ? Pas le message erreur_obligatoire, mais celui qui est récupérer de la fonction vérifier du formulaire CVT.

    merci d’avance

    • Pas compris la question, dans 100% des saisies il y a une balise de message d’erreur quand il y a une erreur pour ce name de champ dans l’environnement du CVT.

    • La seule option erreur indiquée ici, c’est erreur_obligatoire qui permet de « personnaliser le message d’erreur affiché pour indiquer l’obligation (sinon laisser vide). »

      Dans un formulaire standard si je veux indiquer une erreur, j’ai quelque chose de ce type :

      <div class="editer_synth">
      		<label for="synth"><:incident:label_synth:></label>
      		[<span class="erreur_message">(#ENV**{erreurs}|table_valeur{synth})</span>]
      		<input type="text" name="synth" id="synth" />
      </div>

      mais dans mon cas j’utilise le plugin SAISIES :

       #SAISIE{input,synth}

      Que dois-je ajouter à cette balise pour une erreur standard plutot qu’une erreur_obligatoire ?

    • Mais y a rien à ajouter, c’est à toi de mettre des erreurs dans ton tableau habituel des erreurs de CVT dans la fonction verifier(), avec le bon nom du champ.

    • Dans ce cas je dois avoir une erreur autre part, parce que le code dans ma fonction vérifier() existe pour gérer les erreurs.
      Merci tout de même.

    Répondre à ce message

  • hello,
    il est possible de mettre plusieurs conditions à un afficher_si, exemple :

    ’afficher_si’ => ’@parametre1@==« on » && @parametre2@==« on »’

    Est-ce qu’on pourrait l’ajouter à la documentation ?

    Répondre à ce message

  • 2

    Bonjour,

    Je crée un nouveau plugin à l’aide du plugin fabrique. Celui-ci crée des formulaires qui sont réalisé avec le plugin saisie. Dans mon plugin, j’ai créé 2 nouveaux objets éditoriaux. Je souhaite que l’un des 2 soit éventuellement relié à l’autre.

    Du coup, j’aimerais pouvoir faire un champ de sélection comme selecteur_article ou selecteur_rubrique, mais dont qui selection l’id de l’un de mes 2 objets. Est ce possible avec « saisie » ? et comment ?

    Merci beaucoup,

    Thom

    • OK, j’ai trouvé !!

      Le plugin Fabrique rajoute automatique un type de saisie pour chaque nouvel objet éditorial !

    • Oui pour les listes simples c’est parfait. Après les sélecteurs « navigateur » c’est plus pour les objets complexes avec arborescence, etc. :)

    Répondre à ce message

  • 1

    Bonjour

    j’ai un petit souci concernant le champ « date » et le Datepicker, lors de la création de champs « au vol » en jquery.

    Si je .clone() un champ date existant, même en initialisant le Datepicker, la saisie avec le calendrier ne fonctionne pas et c’est très ennuyeux.

    J’ai bien débuggué, fait .removeClass(« datePicker »), mais rien à faire.

    Une piste ?

    Merci

    • Bon, une réponse en retard mais qui n’en est pas une, vu que je n’ai pas grand chose à y dire… :)

      Je ne sais pas si ça à un rapport spécifique à Saisies puisque Saisies ne fait rien (ça génère juste le HTML, incluant des appels à JS parfois). Ça a plus l’air d’être un problème JS, d’autant plus que le sélecteur de date n’est même pas non plus dans Saisies, mais est une inclusion d’une librairie fournie par le noyau de SPIP. Théoriquement ça doit pouvoir être appelé indépendamment donc…

    Répondre à ce message

  • 3

    Bonjour

    De la même manière qu’ils existent auteur, destinataire, selecteur_article, selecteur_rubrique, existe t’il un selecteur_document ?

    • Oui ya ça dans le dossier : http://zone.spip.org/trac/spip-zone/browser/_plugins_/saisies/saisies/selecteur_document.html

      Les gens qui ont ajouté des saisies n’ont pas forcément ajouté le YAML qui les décrit.

    • Effectivement, le fichier selecteur_document.html est bien présent de base dans le plugin SAISIES.
      Mais il manque selecteur_document.yaml.
      Je l’ai fait en partant d’un autre yaml :

      titre: '<:saisies:saisie_selecteur_document_titre:>'
      description: '<:saisies:saisie_selecteur_document:>'
      icone: 'images/saisies_selecteur_article.png'
      options:
        -
          saisie: 'fieldset'
          options:
            nom: 'description'
            label: '<:saisies:option_groupe_description:>'
          saisies:
            -
              saisie: 'input'
              options:
                nom: 'label'
                label: '<:saisies:option_label_label:>'
                explication: '<:saisies:option_label_explication:>'
                size: 50
            -
              saisie: 'input'
              options:
                nom: 'explication'
                label: '<:saisies:option_explication_label:>'
                explication: '<:saisies:option_explication_explication:>'
                size: 50
        -
          saisie: 'fieldset'
          options:
            nom: 'affichage'
            label: '<:saisies:option_groupe_affichage:>'
          saisies:
            -
              saisie: 'input'
              options:
                nom: 'attention'
                label: '<:saisies:option_attention_label:>'
                explication: '<:saisies:option_attention_explication:>'
                size: 50
            -
              saisie: 'input'
              options:
                nom: 'info_obligatoire'
                label: '<:saisies:option_info_obligatoire_label:>'
                explication: '<:saisies:option_info_obligatoire_explication:>'
        -
          saisie: 'fieldset'
          options:
            nom: 'obligatoire'
            label: '<:saisies:option_groupe_validation:>'
          saisies:
            -
              saisie: 'oui_non'
              options:
                nom: 'obligatoire'
                label: '<:saisies:option_obligatoire_label:>'
      defaut:
        options:
          label: '<:saisies:saisie_selecteur_document_titre:>'
          # champs extras (definition du champ sql)
          sql: "text DEFAULT '' NOT NULL"

      Ca marche à peu près correctement sauf si j’utilise le sélecteur de document dans le YAML d’un modèle de saisie perso (lui-même appelé dans un formulaire FORMIDABLE). Le sélecteur de document est bien affiché dans le formulaire, la boite modal de sélection est bien appelée, mais quand je sélectionne l’image je ne reviens pas sur mon formulaire.

      Par contre, ça marche quand on insère un selecteur_document dans un formulaire FORMIDABLE.

    • selecteur_document.yaml n’était toujours pas sur la Zone.
      Je viens de l’ajouter.

    Répondre à ce message

  • 11

    Bonjour,
    Je cherche à faire des champs conditionnels avec Formidable, mais je n’y arrive pas.

    Pour un champ après celui de case unique (qui doit donc déclencher la suite, qui s’appelle @case_1@), je met @case_1@==« on »,
    dans :
    Affichage conditionnel lors du remplissage
    Contrairement à la précédente option, celle-ci ne conditionne l’affichage que lors du remplissage du formulaire, pas lors de l’affichage des résultats. Sa syntaxe est la même.

    Seulement, même si je coche la case unique, le champ conditionnel lié ne s’affiche pas.
    j’ai essayé aussi avec @case_1@==« 1 »

    Cette fonction est-elle impossible, ou j’ai mis les mauvais codes ?
    Quelle sont les valeurs pour les cases uniques ?

    Merci pour toute aide utile

    • Précision : avec @case_1@==« oui » ça ne marche pas non plus

    • Bonjour David,

      J’ai réussi a saisir une conditionnelle est-ce bon pour toi ? De mon coté mon problème et que je ne parvient pas à intégrer deux conditionnelles à savoir :
      si @selection_3@==« un » et @selction_3@==« deux » alors ça s’affiche. Est-ce que vous pouvez me débloquer ?
      Merci d’avance

    • Avec un « and » entre les deux ?

    • Non ça ne fonctionne pas. Si je rajoute une conditionnelle, ça m’annule tous les paramétrage et tous les champs qui devaient apparaitre en conditionnelle s’affichent.
      Voici ce que j’ai mis : @selection_4@==« Un » and @selection_4@==« Deux »

    • et en replaçant « and » par « && » ?

    • Non ca ne fonctionne pas . Voila ce que j’ai mis : @selection_4@==« Un »&&@selection_4@==« Deux »
      Est-ce qu’il faut des espaces entre ?
      La j’avoue je bloque complétement si tu as d’autres idées, je suis preneuse.

      Merci ;-)

    • pas entre, autour. Mais si ni « and » ni « && » ne fonctionne, là je ne sais pas. Il me semblait qu’on pouvait faire des opérations complexes avec « and » et « or » aussi, pourtant. Peut-être avec des parenthèses autour de l’ensemble… Pour l’instant je n’ai pas le temps de lire le code qui gère ça, il faudra voir avec Joseph sinon, qui est l’auteur du code qui gère cette fonctionnalité.

    • tu n’aurais pas une autre idée à me suggérer ?

    • Comme ceci :
      &@selection_4@==« Un » @selection_4@==« Deux »&
      cela ne fonctionne pas
      Merci rasta popoulos pour ton aide.
      Comment joindre Joseph car la vraiment pas d’idée et je trouve rien à ce sujet sur le net

    • Euuh, ça veut rien dire, le « && » remplace le « and », entre les deux, ça veut dire pareil en programmation « && » et « and ».

      Sinon, peut-être en posant la question sur la liste spip-zone, dédiée aux plugins.

    • Désolé Rastapopoulos mais je suis une quiche en programmation...lol
      J’ai juste récupéré un site sous spip et je tente désespérément de mettre en place une formulaire...
      Donc si je te suis bien tu me dis de mettre ceci :
      @selection_4@==« Un » and @selection_4@==« Deux » ?

      Merci pour ton aide

    Répondre à ce message

  • 2

    Bonjour,

    Est ce SAISIE gère les champs pour télécharger des fichiers ?

    Je n’ai rien trouver la dessus et ça ne semble pas être indiqué ici comme le faisant, mais j’aimerais en être sur !

    Merci d’avance de votre réponse.

    • Pour l’instant non. C’est surtout à CVT en premier lieu de savoir gérer les fichiers en gardant temporairement en mémoire ce qui a été téléchargé si jamais un champ est en erreur dans verifier(), pour ne pas devoir le retélécharger à chaque fois. J’eus aimé que ce problème soit résolu génériquement en amont (dans CVT donc), ce qui permettrait alors de l’intégrer dans Saisies sans effort.

    • Merci de cette précision rapide.

      Bonne journée !

    Répondre à ce message

  • 2

    Je ne sais pas si je suis au bon endroit (en fait je pensais trouver une réponse dans les références) mais voilà : est-ce la bonne écriture (j’ai des erreurs d’include et des erreurs liées aux fonctions de tableaux) sinon comment faire ?

    [(#SAISIE{fieldset, presentation. label=<:a_mon_sujet:>,
        saisies=#ARRAY {
            1, #ARRAY {
                saisie, selection,
                nom, sexe,
                label, 'je suis',
                datas, #ARRAY{h, homme, f, femme,},
                },
            }
    })]

    Le fieldset s’affiche (bien entendu vide) sans l’option saisies ; et le tableau de tableaux (inspiré des exemples en PHP) doit représenter (qui fonctionne aussi)

    [(#SAISIE{selection, sexe, label='je_suis', datas=#ARRAY{h,homme,f,femme,} })]

    Merci d’avance de vos lumières (en plus je suis sur que ce doit être tout simple)

    • La balise #SAISIE est un peu à part, elle a été faite avant le développement de la vraie interface de programmation autour des saisies. On ne peut pas mettre de fieldset avec et on ne peut pas l’utiliser pareil que les descriptions en tableau PHP.

      En PHP, l’attribut « saisies » n’est PAS dans les « options », or la balise #SAISIE ne prend que les options en paramètre.

    • C’est bien vrai que l’attribue (liste de) saisies n’est pas dans les options... Maintenant c’est plus clair : si on veut utiliser les fieldset (en dehors de tableau PHP passé à l’API) il faut le faire à la main comme je viens de le voir ailleurs
      Un grand MERCI pour la réponse (sans quoi on aurait continuer à se cogner la tête ici et à retourner la balise inutilement dans tous les sens)

    Répondre à ce message

  • 2

    Bonjour

    Dans un PHP, Je construis une saisie de type sélection :

    array(
    	'saisie' => 'selection',
    	'options' => array(
    		'nom'         => 'calc_essence',
    		'label'       => _T('calcbois:calc_entraxe_calc_essence'),
    		'datas'       => array(1=>"TOTO", 1=>"TITI", 2=>"TATA"),
    		'obligatoire' => 'oui'
    	)

    Comme vous pouvez le voir, la valeur retournée par le select peut être présente plusieurs fois.
    Dans l’exemple, si je sélectionne TOTO ou TITI, je veux que cela me retourne 1 dans les deux cas. C’est permis en HTML.

    Problème : les index d’un tableau PHP sont uniques. Dans l’exemple, seul TITI sera affiché.

    Comment faire pour avoir plusieurs fois le même index dans le select ?

    MERCI

    • Les valeurs étant basées sur les clés d’un tableau PHP, cela n’est effectivement pas permis par l’API pour l’instant. C’est un peu con, ouais, ça partait d’une manière simple de faire (c’était déjà comme ça avant l’API PHP en fait, quand il n’y avait que #SAISIE).

      De manière rapide, à court terme, je ne vois pas de solution simple. Mis à part traiter en PHP dans le traiter() du CVT pour uniformiser les valeurs qui doivent être regroupées.

      Je crois que ça restera comme ça car le principe des saisies c’est de marcher dans les deux sens : quand on sélectionne une valeur, ça POST ça au formulaire, mais inversement, quand le formulaire pré-remplis un des champs avec une valeur : ça doit pouvoir sélectionner un des choix !

      Or là si le charger() dit que par défaut « calc_essence » => 1, la saisie ne peut pas savoir quelle est la valeur où mettre « selected » dans le HTML.

    • Merci

      Je vais effectivement regrouper les valeurs avec un | puis faire un explode dans traiter.

    Répondre à ce message

  • 3

    Bonjour,

    Je reporte un petit souci que je viens de rencontrer avec la saisie case : l’option pour définir une valeur par défaut n’est pas prise en compte.
    Dans le squelette de la saisie, on teste la présence d’une valeur enregistrée ou forcée avec le filtre |is_null pour savoir s’il faut utiliser la valeur par défaut, c’est là que ça coince je pense.

    #SET{valeur,#ENV{valeur_forcee,#ENV{valeur}}|is_null|?{#ENV{defaut},#ENV{valeur_forcee,#ENV{valeur}}}}

    En remplaçant par ceci, tout semble rentrer dans l’ordre :

    #SET{valeur,#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut}}}}

    Je n’ai pas testé cette modif dans toutes les situations par contre.
    Voilà la saisie sur laquelle j’ai testé :

    [(#SAISIE{case, ma_saisie,
     	valeur_oui: 1,
    	defaut: 1})]

    En passant, je ne sais pas si c’est envisageable mais ce serait tip-tip de pouvoir également utiliser l’option valeur_non=xxx

    Voilà voilà

    • Ah j’ai oublié : Saisies v.1.30.0 sur SPIP 3.05

    • Ça ne peut pas marcher non plus, car justement la valeur « non cochée » par défaut c’est que la chaîne vide «  ». Du coup, avec ce test, quand la case a été explicitement non-cochée, et que la valeur vaut «  », ça va utiliser la valeur par défaut à la place. D’où le is_null.

      Le problème du is_null c’est qu’avec CVT il est apparemment impossible d’avoir NULL comme valeur du tableau de déclaration des champs de la fonction charger(). Et du coup on a toujours la chaîne vide au minimum à la place. Et du coup impossible d’avoir la valeur par défaut la première fois.

      Ceci vaut pour les deux saisies « oui_non » et « case ». Et peut éventuellement être résolu quand on défini explicitement d’autres valeurs pour oui et pour non (faut juste améliorer les tests mais c’est possible). Mais pour le cas par défaut qui est : plein=oui, vide=non, ça ne marchera pas tant qu’on ne pourra pas avoir du NULL dans une variable. Ce choix par défaut (plein/vide) est dû au fait qu’ensuite il est plus facile d’utiliser un test #ENV{ma_valeur}|oui.

    • Merci pour les explications, du coup je viens de refaire quelques tests avec la modification pour en avoir le coeur net, ça m’a pourtant l’air de marcher.

      • Avec la saisie la plus simple possible : #SAISIE{case, test, defaut='on'}, dans un nouveau formulaire la case est bien cochée au début, et si je la décoche, un echo(_request('test')) à la fin de la fonction traiter me renvoie bien une valeur NULL au lieu de la valeur ’on’ par défaut.
      • Avec #SAISIE{case, test, valeur_oui='toto', defaut='toto'}, même procédure et même résultat.

      Alors je ne serais bien en peine d’expliquer pourquoi, mais en tout cas empiriquement, ça m’a l’air bon. En tout cas, c’est le comportement attendu : avoir la possibilité qu’une case soit cochée par défaut lors de la première édition d’un formulaire.

    Répondre à ce message

  • 7

    Bonjour,

    pourquoi ne veut-il pas de l’option class ?

    [(#SAISIE{input, body_bg,
    	label=<:plugin:cfg_body_bg:>,
    	explication=<:plugin:cfg_body_bg_explication:>},
    	class=colorpicker
    	)]

    il répond Filtre , class=colorpicker non défini

    merci d’avance

    • Regarde l’emplacement de ton accolade fermante. :)

    • je viens de m’en apercevoir,

      merci :-)

    • Je n’est plus le message d’erreur, par contre, ça ne rajoute pas ma « class » au « input » ???
      (actuellement sur les dernières versions de SPIP et plugins)

    • © Chez-moi-ça-marche.

      Ya pas de code compliqué en plus là, c’est juste un class=#ENV{class} dans le squelette de ce champ, donc ya pas de raison que ça n’y soit pas...

      var_mode=debug pour voir les paramètres passés au morceau de squelette

    • C’est bien ce que je pensais : rien de compliqué, à priori

      en fait, c’est probablement une incompréhension de ma part, mais ceci ne fonctionne pas

      [(#SAISIE{input, couleur,
      	label=<:couleur:>,
      	class=colorpicker
      	})]

      cette syntaxe oui

      [(#SAISIE{input, couleur}
      	{label=<:couleur:>}
      	{class=colorpicker}
      	)]

      c’est vrai que suivant ce qui est passé, il faut adopter une syntaxe ou une autre

      merci pour ta patience ;-)

    • Chez moi ça marche très bien avec la syntaxe récente et préconisée désormais, sans accolade partout. Sinon tu sais qu’il y a une saisie « couleur » dans le plugin ? Qui ajoute la classe « palette », ce qui fait que si tu as le plugin Palette, ça t’ajoute le colopicker.

    • J’ai trouvé la source de mon erreur, la syntaxe ci-dessous ne marche pas

      [(#SAISIE{input, couleurs_entete_bg,
      	label=<:mon_plugin:couleurs_entete_bg:>,
      	class=palette
      	})]

      car l’accolade fermante n’était pas collée à la dernière option : class=palette}
      à la rigueur, si l’on met une virgule et laisse l’accolade plus bas ça marche aussi

      et pour « Palette » ; oui !
      je l’ai trouvée entre temps, et donc déjà intégrée
      (autant ne pas marcher sur les pieds des copains ;-) )

      merci

    Répondre à ce message

  • 2

    Bonjour,

    est-ce qu’à la base « Sélecteur d’article » peut permettre l’ajout de plusieurs articles ? En effet, je teste mais je ne peux insérer qu’un seul article or j’aimerais en sélectionner plusieurs. Comment puis-je faire ?

    Merci pour votre réponse :)

    Répondre à ce message

  • 2

    Bonjour.

    J’ai un souci avec les listes déroulantes, mais je crois que je postais au mauvais endroit.
    Voici la section de formulaire incriminée : [(#SAISIE{selection, type, label=<:coordonnees:label_type_adresse:>, datas=#ARRAY{work,<:coordonnees:type_adr_work:>, home,<:coordonnees:type_adr_home:>, pref,<:coordonnees:type_adr_pref:>, postal,<:coordonnees:type_adr_postal:>, dom,<:coordonnees:type_adr_dom:>, intl,<:coordonnees:type_adr_intl:>, parcel,<:coordonnees:type_adr_parcel:> } })]
    Voici le problème : à l’édition, toutes les saisies récupèrent bien le contexte ...sauf cette sélection ! (il ne met pas la valeur courante en « selected » dans le HTML généré). Du coup j’ai quand même rajouté un « defaut » : [(#SAISIE{selection, type, label=<:coordonnees:label_type_adresse:>, defaut=#ENV{type}, datas=#ARRAY{work,<:coordonnees:type_adr_work:>, home,<:coordonnees:type_adr_home:>, pref,<:coordonnees:type_adr_pref:>, postal,<:coordonnees:type_adr_postal:>, dom,<:coordonnees:type_adr_dom:>, intl,<:coordonnees:type_adr_intl:>, parcel,<:coordonnees:type_adr_parcel:> } })] mais ça ne change rien et je ne sais plus trop quoi faire...

    Merci.

    • Et il y a bien quelque chose en #ENV{type} ?

    • Ah... Il devrait (les valeurs existent dans la table et sont passées au formulaires) ; mais effectivement je n’ai rien (et c’est le seul paramètre qui semble poser souci) :-S Visiblement le souci ne vient pas de #SAISIE mais est en amont..?

      Merci beaucoup.

    Répondre à ce message

  • 2

    Une info récupérée sur IRC, et transcrite pour mémorisation...

    Vous pouvez vouloir utiliser un tableau comme objet saisi dans un CVT (pour utilisation dans une boucle, pour avoir plusieurs valeurs...).

    En .php on utilise souvent directement :
    <input  name="mot[]" ...

    En utilisant le plugin SAISIES, on tente de générer :
    #SAISIE{input,mot[]....} qui ne fonctionne pas...
    utilisez les entites HTML avec &#91; &#92; à la place

    • En général quand on veut utiliser un tableau et passer/récupérer plusieurs valeurs, au lieu d’une saisie « input » pourquoi ne pas utiliser une saisie « checkbox » ou « selection » ? ;-)

    • @gilcot ça c’est seulement quand les valeurs sont pré-définies. Un input on met ce qu’on veut dedans.

    Répondre à ce message

  • 2

    Salut,

    Dans le sélecteur d’articles, est-il possible de ranger les titres de façon ante-chronologique ?

    [(#SAISIEselecteur_article,ids_article,
    label=<:lettres_objets:label_choisir_articles :>,
    defaut=#ENVids_article,
    multiple=oui
    )]

    Merci de vos réponses.

    • Les articles et non les titres pardon, par ordre ante-chronologique. C’est pour sélectionner des articles d’actualités. Hors pour l’instant nous avons toujours les articles les plus récents en fin fond de pagination.

    • Salut.

      Je me demande s’il n’est pas possible de « surcharger » le code du sélecteur ;-)

    Répondre à ce message

  • 4

    Bonjour,
    avec le mode de saisie date, le format renvoyé est du type 12/04/2012.
    Lorsque je définie dans ma table sql le format date, il impose 2012-04-12.
    Du coup, il y a une erreur au moment de l’enregistrement.
    Y-a-t-il un moyen pour reccupérer ce bon format, ou modifier le format avant l’enregistrement dans la base ?
    merci

    • Oui, depuis peu la vérification de date sait normaliser la valeur final avant traitement. Pour ça il faut mettre à jour Vérifier et Saisies, et utiliser la vérification de date avec son option de normalisation.

      Cf. : http://zone.spip.org/trac/spip-zone/changeset/57473/_plugins_/verifier/verifier/date.php

    • Merci ... j’ai eu récemment d’autres indications de votre part sur un autre forum !
      Si j’ai bien compris, je dois utiliser vérifier($valeur,’date’,array(’normaliser’ => ’date’) ;

      mais avec le plugin saisies, j’ai dans mon fichier de traitement php du formulaire quelquechose du type :

      function formulaires_editer_programme_colle_identifier_dist($id_programme_colle=’new’,$retour=’’, $config_fonc=’’, $row=array(), $hidden=’’)
      return serialize(array(intval($id_programme_colle))) ;

      function formulaires_editer_programme_colle_verifier_dist($id_programme_colle=’new’, $retour=’’, $config_fonc=’’, $row=array(), $hidden=’’)

      return formulaires_editer_objet_verifier(’programme_colle’, $id_programme_colle) ;

      function formulaires_editer_programme_colle_traiter_dist($id_programme_colle=’new’,$retour=’’,$config_fonc=’’, $row=array(), $hidden=’’)
      return formulaires_editer_objet_traiter(’programme_colle’,$id_programme_colle,$retour,$config_fonc,$row,$hidden) ;

      où alors insérer la vérification ? (je me suis inspirer pour réaliser le plugin de l’exemple « chats »)
      d’avance merci

    • La vérification se fait dans la fonction... tin tin tin... verifier() ! :)

      $truc = _request('truc'); pour récupérer ce qui a été posté, suivant le nom du champ, et ensuite tu en fais ce que tu veux, donc le passer dans la fonction de l’autre plugin Vérifier (cf sa doc).

      Mais le plus simple, quand on a pas un formulaire horriblement compliqué, ça reste quand même de déclarer ses saisies en PHP. En effet ce plugin permet d’étendre CVT avec un S : function formulaire_montruc_saisies_dist($param1, $param2, etc)

      Cette fonction doit retourner un tableau de saisies valides, comme décrit dans la documentation (cf l’article de base de la doc de ce plugin).

      Avec cette fonction Saisies sait même faire les 2/3 du boulot : ça déclare les champs ET ça vérifie (pour peu qu’on ait décrit les vérifications à faire comme l’explique la doc de Vérifier).

      Ok ok un exemple complet serait bienvenu, je sais...

    • OK, merci.
      Une question qui n’a pas de lien direct, mais je ne vois pas où la poser :
      comment faire migrer une base de spip2 vers spip3 ? la démarche habituelle n’a pas fonctionné chez moi...
      merci

    Répondre à ce message

  • 6

    Bonjour,

    Avec une saisie ’sélection’, je ne parviens pas à faire en sorte que la valeur par défaut soit pré-sélectionnée.
    Voilà mon bout de squelette, je pécise que c’est dans une boucle DATA, ça a peut-être son importance :

    [(#SAISIE*{#VALEUR{type_saisie}, #VALEUR{parametre},
    	datas=#VALEUR*{datas},
    	defaut=#VALEUR*{defaut}
    })]

    Ce qui me rend perplexe, c’est qu’avec le même code ça marche bien pour une saisie radio (la valeur par défaut est bien cochée). Aurais-je loupé quelque chose ?

    • Là comme ça ça ressemble à un bug, mais j’ai pas eu le temps de regarder le code encore. Peut-être qu’il faut que ce soit un tableau ? À voir dans saisies/selection.html.

    • Ah oui, en changeant [(#CLE|=={#GET{valeur}}|oui)selected="selected"] en [(#CLE|=={#ENV{defaut}}|oui)selected="selected"] dans saisies/selection.html, ça marche.
      #GET{valeur} ne renvoie rien, il doit y avoir un souci avec le #SET.

    • As-tu essayé d’afficher le contenu du #GET pour savoir ce qu’il contient au final ? [(#GET{valeur}|var_dump)]

    • Ah oui avec |var_dump, la valeur est bien là : string(4) « fade ».
      Du coup en utilisant match à la place du ==, ça semble marcher :
      [(#CLE|match{#GET{valeur}}|oui)selected="selected"]

    • Ouais mais ça fait faire une regex pour rien alors que c’est juste une comparaison de chaîne toute bête (et en plus si ya « truc » dans « machin truc » ça le trouvera aussi avec ce que tu as mis :) ).

      Il doit y avoir un espace quelque part, un truc dans ce genre. Dans ton tout premier code ça fait quoi si tu fermes la balise #SAISIE juste après le defaut : defaut}})] ?

      Mais c’est bizarre car le dump trouve une chaîne sans espace donc c’est peut-être #CLE (donc ce que tu as mis dans « datas » qui contient des espaces superflues) ? Faudrait dumper #CLE aussi pour comparer.

    • Dans ton tout premier code ça fait quoi si tu fermes la balise #SAISIE juste après le defaut : defaut}})] ?

      Oh pétard, c’était ça ! Hum, j’étais pourtant sûr d’avoir vérifié avec et sans crochets auparavant.
      Désolé pour le bruit !

    Répondre à ce message

  • 1

    J’essaie de faire un formulaire en utilisant destinataires et type_choix ne me donne pas le résultat escompté. En revanche, multiple=oui produit l’effet attendu (comme mentionné dans l’article sur Saisies).

     :-)

    Répondre à ce message

  • 2

    Bonjour,

    Pour mettre à jour une table « categories » qui contient les champs suivants : id_categorie , nom, id_sup, infos, j’utilise une formulaire avec saisie. Pour le champ de la categorie parente, actuellement je fais ça :

    [(#SAISIE{input, id_sup,
    label=<:categories:label_parent:>})]

    Ce n’est pas très pratique puisqu’il faut renseigner l’id de la categorie voulue. J’ai essayé de faire un champ selection, pour pouvoir sélectionner le nom de la categorie parente et récupérer l’id, mais je n’y arrive pas. Ma dernière tentative était

    [(#SAISIE{selection, id_sup}
            {label=<:categories:label_parent:>}
            {option_intro=Sélectionnez une categorie parente}
            {datas=#INFO_NOM{categorie, #ID_SUP}}
    )]

    Mais bien sur ça ne va pas.
    Un coup de pouce serait bienvenue
    merci
    Fred

    • datas doit être un tableau PHP. Donc #ARRAY{cle1, valeur1, cle2, valeur2, etc} dans un squelette SPIP. À construire avec une boucle sur tes catégories avant d’afficher ta saisie selection.

    • Merci beaucoup.
      C’est presque bon, il reste juste un petit problème « option_intro » ne s’affiche plus par défaut, il est en deuxième choix dans la liste.

      Pour info :

      Ma boucle

      #SET{array_categories, #ARRAY}
      <B_crit>		
      <BOUCLE_crit(CATEGORIES)>
              #SET{array_categories,#GET{array_categories} |array_merge{#ARRAY{#NOM,#ID_CATEGORIE}}}       
      </BOUCLE_crit>
      #SET{array_categories, #GET{array_categories}|array_flip}      
      </B_crit>

      et mon champ selection :

      [(#SAISIE{selection, id_sup}
              {label=<:categories:label_parent:>}
              {option_intro=Sélectionnez une categorie parente}
              {datas=#GET{array_categories}}
      		)]		

    Répondre à ce message

  • 5

    Salut la compagnie !

    A quand une Saisie « DATE », idéalement identique à celle implémentée dans Formidable ?
    C’est a dire un input de taille réduite (10 caractères), un picto « calendrier » sur la droite qui ouvre un calendrier, et remplit le champ automatiquement.

    Mojo

    • Euh... Formidable utilise UNIQUEMENT ce plugin Saisies. Donc elle y est. :)

      Mais faut mettre la doc à jour de temps en temps... :(

    • Damned, j’ai été eu ^^
      Dans un sens, tant mieux, c’est tellement pratique ce champ date !

    • Par contre, est-il actuellement possible de positionner le datepicker sur la date chargée ou entrée, ou en tout cas de l’initialiser à une certaine date ? Par défaut, il part du 1er janvier 1900 dans tous les cas.

    • Chez-moi-ça-marche. ©

      Si il n’y a rien, ça part d’aujourd’hui. Et s’il y a une date, ça part de celle-ci.

    • En effet, j’ai eu ce comportement sur des DATETIME à 0000-00-00 par defaut...
      Ca marche nickel Chrome© ^^

    Répondre à ce message

  • 3

    Bonjour,
    Concernant l’option datas, je ne comprends pas la mention :

    Vous devez indiquez un choix par ligne sous la forme « cle|Label du choix »

    Du coup, j’avais essayé de renseigner l’option de cette façon :

    datas=
    cle1|valeur1,
    cle2|valeur2,
    cle3|valeur3

    Qui n’avais pas marché. Mais j’ai trouvé dans selection_mutliple.html l’exemple suivant :

    datas=#ARRAY{cle1,valeur1,cle2,valeur2,cle3,valeur3}

    Si l’utilisation d’un tableau est systématique pour la saisie des valeurs de datas, ne vaudrait-il pas mieux le préciser ci-dessus ?

    • On peut soit mettre un #ARRAY, soit mettre un choix pas ligne, donc dans une chaine de caractères, ce qui n’est pas le cas de l’exemple ci-dessus avec les virgules. La chaine permet de passer ces valeurs depuis le résultat d’un textarea par exemple.

    • Quand vous dites « mettre un choix pas ligne, donc dans une chaine de caractères » cela signife-t-il qu’on peut écrire ? :

      datas="cle1|valeur1
      cle2|valeur2
      cle3|valeur3"

      En fait, je ne comprends pas très bien ce que vous entendez par « un choix par ligne ».

    • Une ligne comme dans dans toute chaine de caractère quoi. « \n ».

      La fonction qui récupère ça :
      http://zone.spip.org/trac/spip-zone/browser/_plugins_/saisies/inc/saisies.php#L746

      Mais quand on est dans un squelette, ça n’a pas d’intérêt, il faut utiliser #ARRAY évidemment.

    Répondre à ce message

  • 7

    bonjour,

    je découvre ce plugin fort utile et j’ai quelques remarques et questions :

    1. il me semble que l’attribut title n’est pas dispo, il serait utile comme option générique non ?
    2. ou, d’une manière plus générale, ne serait-il pas possible d’implémenter une option de saisie attributs qui serait une liste :
      'attributs' => array('attribut' => 'valeur')
    1. je ne trouve pas de références aux boutons (submit, image, reset) ... faut les traiter en dehors des saisies ?
    2. j’essaie d’afficher la saisie explication, sans succès. Une idée ? :

    dans formulaires/testou.php :

    function formulaires_testou_charger_dist() {
    $saisies = array(
        array(
          'saisie' => 'explication',
          'options' => array(
            'li_class' => 'laclass',
            'texte' =>  'Bablabla blaaablabla blabal'
          )
        ),
    );
      return array('_saisies'=>$saisies);
    }

    dans formulaires/testou.html :

    	<form ...><ul> #GENERER_SAISIES{#ENV{_saisies}} </ul></form>

    et dans mon squelette :

    #FORMULAIRE_TESTOU

    ma config : spip 2.0.11 / plugins yaml et bonux activés

      1. Oui pour le title ce serait intéressant
      2. Pour un tableau d’attribut ça serait plus compliqué car il faudrait alors gérer les collisions possible avec les attributs ayant leur option à part (comme la class, le title, etc). Et si on ne mettait QUE un tableau d’attributs pour qu’il n’y ait pas de collisions, c’est limite pire car c’est trop abstrait, contrairement aux options pour un attribut précis, ça n’aide pas les gens.
      3. Pour les boutons, ce n’est pas géré, en tout cas pour l’instant. Ça ne gère que le contenu du formulaire. Mais je suis d’accord que parfois pour des cas complexes on peut avoir besoin de boutons à l’intérieur même du formulaire et pas juste à la fin. Donc il faudrait effectivement rajouter les différentes possibilités de boutons existants. À ajouter à la todo.
      4. Pour la saisie explication... chez-moi-ça-marche :( Quel est le retour ? Une erreur, du vide complet, ou les balises <li> sans rien dedans ? Autre ?
    • merci pour ces réponses

      3. pour les boutons, j’ai créé un fichier submit.html dans squelettes/saisies/, en utilisant l’idée des attributs mais effectivement, ça reste délicats

      4. aucune erreur « visible », et rien de rien dans la page (et idem avec spip 2.1.2 et les plugins utiles) . Voilà ce que je trouve dans spip.log :

      (pid 5100) COMPIL (3.070 ms) [plugins/auto/saisies/saisies/fieldset.html]
       html_f8281334c0aeba79e3eb43416c90f732.php
      (pid 5100) calcul (0.108 ms) [plugins/auto/saisies/saisies/_base] 
      type_saisie=explication, li_class=laclass, texte='Bablabla blaaablabla blabal', lang=fr,
       date='2010-12-24 15:52:03', date_default=1, date_redac='2010-12-24 15:52:03', 
      date_redac_default=1 (2 octets)
      (pid 5100) Creation du cache d/sai-bas-exp-lac-Bab-arr--20b30930 pour 3600 secondes
      (pid 5100) charset probable: utf-8
      (pid 5100) trouver_table: table inconnue '' 'POUR'
      (pid 5100) COMPIL (7.056 ms) [plugins/auto/saisies/saisies/input.html] 
      html_f6706ef3175657d041b7a2476997ef68.php
    • Trouvé ! (?)

      j’ai ajouté l’option ’nom’ et ça passe. la description sur cette page m’aurait induit en erreur ? cette option est-elle systématiquement obligatoire pour tous types de champs ? ou bien ... ?

       array(
          'saisie' => 'explication',
           'options' => array(
               'nom' => 'explik', 
               'li_class' => 'laclass',
               'texte' =>  'Bablabla blaaablabla blabal'
           )
      )

      Ceci dit, j’ai d’autres soucis ... (o:

      j’appelle saisies_verifier($form) dans la fonction de vérification CVT et j’ai une fatal error :

      Fatal error: Call to undefined function saisies_verifier()...

      la fonction est pourtant dans inc/saisies.php ... et si je la copie dans mon fichier CVT ... re-fatal error qui paraît plus logique :

      Fatal error: Cannot redeclare saisies_verifier() (previously declared in /www/dev/spip/squelettes/formulaires/testou.php:196) in /www/dev/spip/plugins/auto/saisies/inc/saisies.php on line 442

      bon, faut dire que j’en suis à mon premier jour sur Saisies et j’ai pas encore tout compris (o;

    • Oui il faut l’option nom à toutes les saisies, ça permet de les identifier même si ce ne sont pas des champs.

      Pour vérifier 1) il faut évidemment d’abord inclure le fichier où se trouve l’API des Saisies, cad include_spip('inc/saisies');, et 2) si c’est pour vérifier plus que l’option obligatoire=oui, cad avec les descriptions de vérifications, là il faut le plugin « Vérifier ». Ça permet plus de choses.

    • ok merci ... j’avais oublié d’includer pfff...

      par contre, j’ai passé le tableau ($formulaire) des saisies en global, hors fonctions CVT pour que saisies_verifier($formulaire) retourne bien les erreurs, sinon, ne retourne rien (je n’ai pas compris comment passer en argument $formulaire à formulaires_monForm_verifier())
      Est-ce la bonne méthode ?

      j’ai bien le plugin Verifier et ça vérifie bien ... Mais ... en retour sur erreur les champs sont tous retournés vides (même si verifier n’est pas défini dans la saisie).

      j’ai essayé en ajoutant l’option defaut à mes saisies mais n’ai pas trouvé comment l’utiliser pour que les champs gardent leur valeur après vérification ...

    • Euh ça ça n’a sûrement rien à voir avec Saisies mais avec CVT. Vous avez bien déclarer les champs autorisés dans charger() ? Seuls les champs autorisés sont envoyés.

      Quand on déclare les saisies avec un tableau PHP, et qu’on en a besoin dans les 3 fonctions CVT (car dans traiter() aussi on en a souvent besoin), le mieux est d’écrire une fonction qui renvoie le tableau des saisies, et de l’appeler ensuite dans C, puis V, puis T. C’est un peu plus propre qu’une globale...

      J’ai déjà quelques idées pour améliorer encore l’API de Saisies et rendre tout ça automatique avec les CVT (du genre chercher automatiquement une fonction formulaires_truc_saisies()). Encore un truc qui est dans la todo list...

    • -  « Vous avez bien déclarer les champs autorisés dans charger() ? »

      - « a ben... non. Je-croyais-que le tableau des saisies servait aussi à ça » :$

      j’ai donc écrit une fonction qui retourne le tableau des saisies et l’ai ajouté à mon tableau de valeurs autorisées dans charger() ... maintenant tout passe : Merci RastaPopoulos :) !

      J’ai aussi trouvé un petit bug : je vais poster un ticket sur la zone et je pense que je peux écrire un petit tuto du genre Un formulaire avec Saisies par l’exemple !

    Répondre à ce message

  • J’ai créé une page sur le carnet wiki pour compléter la documentation et noter quelques remarques ... et peut être des interrogations aussi :

    http://www.spip-contrib.net/Doc-Sai...

    Pour l’instant y figurent des notes sur le mode d’emploi des boutons radio, des ’select’,... et sur les vérifications avec le plugin verifier.

    Répondre à ce message

  • 2

    Mon but était de mettre 2 saisies côte à côte.

    Même en mettant les styles inline directement dans le formulaire.html qui appelle les saisies, je n’ai pas réussi.

    Pour que ça marche, il m’a fallu recopier localement TOUT le fichier habillage.css et en ajouter à la fin de ce fichier les propriétés ad hoc qui surchargent les valeurs spécifiées plus haut.

    Par exemple, pour un formulaire ’identite’ qui comporte une #saisie{input, prenom} immédiatement suivi d’une #saisie{input, nom}, pour que le nom apparaisse à droite du prénom, j’ai ajouté à la fin de habillage.css :

    .formulaire_identite .editer {
            float: left;
    }
    .formulaire_identite  .editer_prenom {
            clear: left; 
    }
    .formulaire_identite  .editer_nom {
            clear: right;
            margin-left: 10px;
    }

    Il faudrait peut être spécifier plus précisément pour faire plus générique, mais comme ça ça marche dans mon cas.

    Je m’étonne cependant de devoir recopier localement tout le habillage.css. ça me semble peu portable et je ne pense pas que ça soit la bonne pratique. En effet, dans le cas de la création d’un plugin ’identite’ (dans l’exemple), il est impossible de savoir si d’autres plugins n’ont pas déjà surchargé et modifié habillage.css, et dans un tel cas, le habillage.css fourni par ’identite’ sera en décalage...

    D’où ma question :
    Quelle est donc la bonne pratique pour personnaliser les CSS des saisies ?

    • Mais de quoi tu parles ? Quel rapport en habillage.css et Saisies ? Et de quel habillage.css tu parles ? de la dist ? d’un site à toi ? de zpip ? autre ?

      Ce plugin n’a aucun rapport avec des CSS, il ne fait que générer du HTML. Après chaque site à ses styles, ce n’est aucunement du ressort de ce plugin.

    • Désolé si ma question est un peu hors sujet, mais ya quand même un rapport puisque habillage.css (de zpip ou de la dist) style les formulaires spip, y compris ceux générés par SAISIE. D’ailleurs cet article l’évoque : Largeur (cols) : Largeur du bloc en nombre de caractères. Cette option n’est pas toujours appliquée car les styles CSS de votre site peuvent l’annuler. En effet, les indications CSS de habillage.css sont prioritaires par rapport aux attributs HTML générés par SAISIE.

      Or en CSS, il n’y a pas moyen d’annuler la valeur d’une propriété : on ne peut que la re-spécifier. En l’occurence, j’ai finalement trouvé comment faire sans recopier localement tout habillage : il suffit de créer un fichier perso.css et d’y mettre les propriétés CSS surchargées.

    Répondre à ce message

  • 2

    Excellent plugin.

    Je remarque un truc étrange avec les textarea.
    Avec rows=2, il y a 3 lignes.
    Avec rows=5, il y a 6 lignes.
    Il faut rows=1 pour avoir 2 lignes,
    et rows=4 pour en avoir 5.

    Y a t il une raison ou bien c’est une erreur ?

    • Ben non pas d’erreur, ça remplit directement le champs « rows » de la balise « textarea », donc ensuite c’est le navigateur qui fait ça...

    • En effet. Merci Rastapopoulos

    Répondre à ce message

  • 1

    Salut RastaPopoulos,
    Merci pour Saisies qui m’aide particulièrement en ce moment. Je te fais part d’une fonction qui serait bien pratique pour formidable car j’en ai actuellement besoin et je constate que de nombreux formulaires proposent ce type d’option :
    -  Le fameux champs d’un menu en liste « autre » avec option de proposition dans un input si on le sélectionne, il devient dynamiquement éditable.
    -  L’incontournable champs date avec auto complétion

    -  Beaucoup plus audacieux mais je pense que c’est l’avenir et que prendre une longueur d’avance c’est une opportunité. L’auto-complétion d’adresse postale avec l’api de Google Map.
    Saisir une adresse est PENIBLE (adresse, ville, CP, Pays etc...)
    Ici il n’y a qu’un seul champs et Google retrouve l’adresse précise (et dans le monde entier).
    Test ici (en bas de page)
    et script déjà fait là :
    http://code.google.com/p/geo-autocomplete/

    Voila ces petites propositions qui pourrait rendre ton plugin très populaire.
    Merci pour ton travail.

    • Merci pour les suggestions. Mais attention ce ne sont que des trucs avec javascript que tu proposes et il faut faire en sorte que les champs fonctionnent aussi sans. Des fois c’est possible, des fois pas, alors il faut bien réfléchir à comment les faire proprement.

    Répondre à ce message

  • 1
    lili44300

    Bonjour,

    Question bête : existe-t-il une balise pour afficher le contenu renseigné par l’utilisateur dans les champs des balises #SAISIE ?
    Et une fois le formulaire envoyé, est-il traité par le plugin (on a la possibilité de définir par exemple un champ comme obligatoire, donc je suppose qu’un contrôle existe ensuite pour la validation), ou bien devons-nous nous-même le faire ?
    Merci d’avance pour ces quelques précisions ! :)

    Aurélie D.

    PS : pas mal comme plugin, ça simplifie drôlement la saisie des champs de formulaires, tâche ô combien rébarbative qui énerve tout développeur (qui se dit à chaque fois qu’il devrait prendre le temps de développer un petit truc maison, pour générer automatiquement les champs et les vérifications qui vont avec, mais qui faute de temps, se refade à chaque fois tout à la main... ^^).

    • Ce n’est pas encore documenté mais il y a une balise #VOIR_SAISIE avec les mêmes paramètres, mais on lui passe aussi « valeur=truc ». Ça utilise alors les squelettes qui sont dans « /saisies-vues/ ».

      De la même façon il y a une balise #VOIR_SAISIES qui prend deux paramètres, d’abord le tableau de description comme #GENERER_SAISIES puis un autre tableau associatif avec les valeurs des champs (nom_du_champ=>valeur).
      Il faut que je complète la documentation avec ces balises.

      Sinon ce plugin est un outil pour développeur. C’est pas un générateur de formulaires. Pour ça il ya bientôt le plugin Formidable.

    Répondre à ce message

  • Je me pose la question Rasta de l’option « choix_destinataires ». Est-ce que ce serait possible d’utiliser « datas » comme les autres ? J’ai peur qu’on ait à un moment trop d’options spécifiques à une seule saisies. Qu’en penses tu ?

    Oui tu as raison.

    D’ailleurs pour aller plus loin, on pourrait renommer « datas » en « choix » (un truc comme ça, surtout que datas avec un s...). Mais en gardant la compatibilité bien sûr ! Il suffit de faire #ENV{choix, #ENV{datas}} et hop la compat est assuré avec l’existant.

    Alors si t’as un terme, je remplace à la fois tous les datas et le choix_destinataires.

    Répondre à ce message

  • Roh, j’étais pas logé :) Je resigne : Matthieu.

    Répondre à ce message

  • 1

    Excellent !!!

    Un grand merci !

    • Je me pose la question Rasta de l’option « choix_destinataires ». Est-ce que ce serait possible d’utiliser « datas » comme les autres ? J’ai peur qu’on ait à un moment trop d’options spécifiques à une seule saisies. Qu’en penses tu ?

    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