Formulaire d’ajout/modification d’articles côté public à partir de SPIP2.1

Ceci est une « contribution pédagogique », qui montre par l’exemple comment développer une nouvelle fonctionnalité pour SPIP.

A partir de SPIP 2.1, et plus encore en SPIP3, plus besoin de plugin ou procédure compliquée pour l’édition côté public de vos articles.

Une illustration de possibilités, adaptable pour tous les objets SPIP.

La base

L’appel du formulaire #FORMULAIRE_EDITER_ARTICLE{id_article, id_rubrique, retour, lier_trad} est décrit dans la documentation de SPIP pour un article comme pour les autres objets SPIP.

Avec cette simple ligne dans votre squelette vous pouvez publier un formulaire fonctionnel d’ajout ou de modification d’un article ou de tout objet SPIP.

Rendre ces formulaires publics :
Comme indiqué dans la documentation, vous appelez le formulaire dans un squelette de votre choix.

En pratique, ça peut donner :
Pour un nouvel article :

#FORMULAIRE_EDITER_ARTICLE{new, XXX, #SELF}

où XXX est le numéro de la rubrique dans laquelle vous souhaitez que les articles soient enregistrés.

Pour l’édition d’un article :
Dans une boucle ARTICLES, qui donnera la valeur du #ID_ARTICLE, ou en remplaçant #ID_ARTICLE par #ENV{id_article} si vous passez le numéro d’article dans l’url :

#FORMULAIRE_EDITER_ARTICLE{#ID_ARTICLE, #ID_RUBRIQUE, #SELF}


Pour l’édition d’un article, de son logo et de ses documents joints - en SPIP3 (dans une boucle ARTICLES) :

#FORMULAIRE_EDITER_LOGO{article,#ID_ARTICLE,#SELF,#ENV**}
#FORMULAIRE_EDITER_ARTICLE{#ID_ARTICLE, #ID_RUBRIQUE, #SELF} 
<INCLURE{fond=plugins-dist/medias/prive/objets/editer/colonne_document,objet=article,id_objet=#ID_ARTICLE,env} />

Si vous souhaitez vérifier/restreindre les droits

Vous pouvez vérifier/restreindre le droit de proposer un article. Par exemple :
Est-ce que l’auteur est bien loggé :

[(#SESSION{id_auteur}|oui) 
#FORMULAIRE_EDITER_ARTICLE{new, "0", #SELF}
 ]

Est-ce que l’auteur a le droit de modifier l’article en question (pour l’édition d’un article pré-existant, donc dans une boucle ARTICLES) :

[(#AUTORISER{modifier,article,#ID_ARTICLE})  #FORMULAIRE_EDITER_ARTICLE{#ID_ARTICLE, #ID_RUBRIQUE, #SELF} 
 ]

N.B. : la gestion des autorisations se définit via le plugin « Autorité », où en surchargeant dans votre fichier mes_options.php les fonctions « autoriser ».

Et si vous voulez personnaliser votre formulaire ?

Il faut alors faire vos propres formulaires, à partir des originaux.
Dans votre dossier « squelettes », dans lequel vous rangez vos squelettes personnalisés, dans un sous dossier « formulaires », vous copiez les fichiers suivant :
-  editer_article.html
-  editer_article.php

Vous trouverez les originaux dans le dossier original « /privé/formulaires/ » de votre SPIP.

Si vous voulez qu’ils soient utilisés partout, y compris dans l’espace privé, vous les copiez sans modifier les noms (principe de la « surcharge »).

Si vous voulez les appeler ponctuellement à certains endroits, pour porposer par exemple une version allégée du formulaire de rédaction, il faut les personnaliser :

Vous les renommez, par exemple :
-  editer_article_public.html
-  editer_article_public.php

Puis vous ouvrez votre « editer_article_public.php » tout frais, et à chaque fois que vous trouvez l’occurence « editer_article », vous la remplacez par « editer_article_public »
Ainsi par exemple, « formulaires_editer_article_charger_dist » devient « formulaires_editer_article_public_charger_dist », etc.

Et voilà, bravo, c’est prêt !

Tous vos appels de formulaires -décrits plus haut- devront alors être fait avec ce nouveau nom, par exemple :

#FORMULAIRE_EDITER_ARTICLE_PUBLIC{#ID_ARTICLE, #ID_RUBRIQUE, #SELF} 

Pré-définir des valeurs
Vous pouvez dans le fichier editer_article_public.html définir des valeurs en remplaçant des champs par des input hidden.
par exemple :

<input type='hidden' id='statut' name='statut' value='prop' />


Ca peut aussi être fait dans editer_article_public.php, via la fonction formulaires_editer_article_public_charger_dist.

Retirer des champs
Vous pouvez retirer des champs du formulaire editer_article_public.html si vous le souhaitez (à l’exception du titre et du champ rubrique, sauf à les avoir pré-définis comme ci-dessus).

Et aussi
A voir également d’autres illustrations ici
[EDIT 1mars2017] Des options complémentaires dans cette discussion

Discussion

31 discussions

  • 1
    Delorimier

    Je cherche à ajouter automatiquement un seul mot-clé (toujours le même) aux articles enregistrés par un formulaire public, sans que le mot-clé soit visible dans le formulaire lui-même.

    Répondre à ce message

  • 1

    Comment faire pour qu’un seul champ EXTRA s’affiche.
    Avec #FORMULAIRE_EDITER_ARTICLE#ID_ARTICLE, #ID_RUBRIQUE, #SELF
    tous les champs EXTRA s’affichent et je n’en veux qu’un seul par le formulaire ???
    Merci

    • Astuce de Sioux pas très conventionnelle mais qui marche. Avec le CSS faire display:none pour les champs que vous ne souhaitez pas en public ;)

    Répondre à ce message

  • 3
    Firmin Poliquin

    Bonsoir mon problème est simple..
    J’aimerai que les les membres où les visiteurs de mon site puissent poster leurs publications et je ne sais pas du tout quel code composer pour ajouter cette option là. Aidez moi je vous en pris.
    Merci d’avence

    • Salut,

      l’article sur lequel tu poste est clairement daté. Je te suggère de demander de l’aide sur les listes de discussions de SPIP :
      http://listes.rezo.net/mailman/listinfo/spip/

    • Firmin Poliquin

      Je reviens avec une autre question, j’ai créé un formulaire d’inscription, le problème c’est que ce formulaire n’emmène nulle part et j’aimerais que, si les info remplis sont validees, je sois dirigé vers la page de d’accueil.
      Voici mon code :

      Remplissez ce formulaire pour confirmer votre inscription :

      Informations facultatives :

      Portugal
      Espagne
      Mexique
      Tchad
      Égypte
      Chine
      Maroc
      Congo
      Cameroun

      Inde
      Tunisie
      Guinée Équatoriale
      Gabon
      RCA
      Afrique du Sud
      Zambie
      Sénégal
      Angola
      Canada
      France
      Belgique
      Autre...

      Quel est votre sexe ?

    • Bonjour,
      La procédure décrite ici est toujours valide, mais adaptée pour les objets spip.

      Pour un formulaire sur-mesure :
      -  Consultez https://programmer.spip.net/-Formulaires-35- et https://www.spip.net/fr_article3796.html
      -  Pour la majorité des cas un plugin permet désormais de tout faire en cliquant, voir ici le plugin Formidable

    Répondre à ce message

  • Bonjour,

    Est-ce qu’on peut pré remplir certains champs du formulaire ?

    Par exemple avec #FORMULAIRE_EDITER_ARTICLEnew, titre=fruits, #SELF

    Répondre à ce message

  • 14

    Bonjour,
    est-il possible d’afficher le module d’ajout de documents en partie publique ???
    Cordialement

    • oui de la même façon

    • Oui, l’affichage fonctionne pour l’ajout de document public... en revanche, j’ai un petit soucis. Après « téléversement » d’une image, j’ai bien le message de confirmation de chargement avec succès, mais le visuel du document n’apparait pas automatiquement dans la liste des fichiers à disposition... il faut manuellement recharger la page pour qu’il apparaisse :-(

      Une idée pour convenablement reproduire le mécanisme de l’upload façon espace privé ?

    • Ah, ça y est ça marche.
      J’avais déjà, comme indiqué par mmmx le 22 avril, ajouté un cache à 0 au fichier plugins-dist/medias/prive/objets/editer/colonne_document.html .
      Dans mon cas cela ne suffisait pas, j’ai également ajouté un cache à 0 au fichier plugins-dist/medias/prive/squelettes/inclure/colonne-documents.html.

    • Bonjour,

      J’ai le même problème.

      Mais chez moi je n’ai toujours rien même après avoir ajouté un #CACHE0 aux squelettes
      plugins-dist/medias/prive/objets/editer/colonne_document.html et
      plugins-dist/medias/prive/squelettes/inclure/colonne-documents.html

      Plus généralement, si on veut afficher le formulaire d’édition d’article + le formulaire de chargement d’images dans un squelette spécifique, en dehors d’une BOUCLE ARTICLES, quelle serait la solution ?

    • Contribution trés intéréssante qui ma permis de finir ma partie Formulaire de soumission d’article ; ne reste plus que les documents joint on je serais BON ! =)

      Également le même problème. A moins que je fasse mal ma surcharge !

      Pouvez-vous me confirmer où surcharger :

      • plugins-dist/medias/prive/objets/editer/colonne_document.html .
      • plugins-dist/medias/prive/squelettes/inclure/colonne-documents.html.

      J’ai tenté dans squelettes/prive/.... et dans plugins/medias/....

    • Pour que ça fonctionne, il faut que l’article soir déjà créé. Donc on n’est pas dans la config de l’admin, avec ajout de documents pour un article en première écriture

      moi je mets

      <INCLURE{fond=prive/objets/editer/colonne_document,objet=article,id_objet=#ID_ARTICLE,env} ></INCLURE>

      et fonctionne aussi

      <INCLURE{fond=plugins-dist/medias/prive/objets/editer/colonne_document,objet=article,id_objet=#ID_ARTICLE,env} ></INCLURE>

      Pour passer l’id d’article on peut
      -  mettre une boucle autour de l’appel ci-dessus et laisser le #ID_ARTICLE
      -  en dehors d’une boucle, récuperer l’id dans l’url en remplaçant le #ID_ARTICLE par #ENV{id_article}
      -  voir remplacer directement par le numéro d’article en dur (ex : « 19 »)
      -  ou encore utiliser une variable (voir #SET et #GET http://www.spip.net/fr_article3990.html#SET)

    • Merci beaucoup !

      J’ai donc créer une deusieme page (Etape Facultative) avec la confirmation de leur article, le récaptitulatif et la possibilité de joindre les documents.

    • Bonjour,

      J’utilise cette méthode, avec une seconde page pour l’ajout des documents.
      J’aimerais rediriger vers une dernière page de confirmation une fois qu’on envoie les documents, mais je ne sais pas où indiquer cette redirection dans ce code.

      <INCLURE{fond=plugins-dist/medias/prive/objets/editer/colonne_document,objet=article,id_objet=#ID_ARTICLE,env} ></INCLURE>

      Pour le moment, quand on valide l’envoi des documents, on est redirigé sur la page d’accueil du site, avec dans l’adresse de la page, l’adresse du site suivie de ##docXXXX" (XXXX étant le numéro du document envoyé).

      Savez-vous comment je dois préciser sur quelle page je veux rediriger ?

      Merci à vous.

    • Je précise que lorsque je fais envoyer sur le formulaire mais que je n’ai pas ajouté d’image, je reste bien sur la page avec un message d’erreur. Mais dès lors que j’ajoute un fichier, et que je l’envoie, ça fonctionne mais ça me redirige vers la page d’accueil du site.
      J’aimerai avoir ce message de confirmation.

    • Bonjour,
      A priori il faut aussi renseigner la variable redirect qui est prévue pour ça
      http://programmer.spip.net/Effectuer-des-traitements
      (soit dans les arguments du INCLURE, soit dans le php correspondant, dans la partie traiter)

    • Merci :-)
      N’étant pas adepte du php, sais-tu quel argument dans l’inclure je dois ajouter, et à quel endroit ?
      Toutes mes tentatives sont restées vaines.

    • en fait dans les appels pris en exemple c’est le parametre

      #SELF
    • ou dans le fichier php correspondant, sur l’exemple de la définition du redirect ici http://programmer.spip.net/Traitement-sans-AJAX

    • Merci pour tes réponses.
      Je n’ai pas réussi avec cette méthode.
      Je suis passé par la méthode « dans une boucle articles ». Cependant, j’ai dû ajouter le critère « tout » pour que l’article nouvellement créé s’affiche quand même.
      Pas l’idéal de ce que je voulais faire, mais ça fonctionne.

    Répondre à ce message

  • 3

    Bonjour,

    Je viens vers vous avec un problème pour le moins bizarre :

    Je surcharge les fichiers prive/formulaires/éditer_article.html et éditer_article.php
    dans squelettes/formulaires/

    Je mets dans mon squelette rubrique :

    #FORMULAIRE_EDITER_ARTICLE{"oui", #ID_RUBRIQUE}

    Cela fonctionne !

    Par contre quand je renomme :

    editer_article.html en editer_article_public.html
    editer_article.php en editer_article_public.php
    ce dernier j’ai biensûr pris soin de remplacer les occurrences éditer_article en ajoutant _public
    comme lu dans ce tuto.

    J’utilise maintenant donc :

    #FORMULAIRE_EDITER_ARTICLE_PUBLIC{"oui", #ID_RUBRIQUE}

    Le formulaire s’affiche mais l’enregistrement ne s’opère pas !
    A noter que si le formulaire s’affiche, il n’affiche pas la rubrique concernée .

    Voilà mon soucis.

    Merci de l’aide,

    Cordialement.

    m

    • Re,
      La cause vient du fait que :
      j’utilise le plugin polyhierarchie et j’aimerais ne pas l’utiliser en partie publique tout en le conservant en partie privé... comment faire ?

      Merci d’avance

    • Bonjour,

      Le plus simple apparemment si on ne veut pas toucher aux « pipelines »,
      c’est de cacher le « picker » en CSS....

      Merci aux personnes de la liste spip-zone

      Cordialement.

    • J’ai une autre solution (au cas où quelqu’un repasse par ce fil ...)

      Le sélecteur est inclus par le plugin polyhiérarchie via le squelette :
      plugins/polyhier/formulaires/inc-selecteur-parents.html

      Copier ce fichier dans le répertoire squelettes/formulaires/ et le modifier de façon à ce que le sélecteur ne soit inséré qu’en partie privée avec le test suivant :

      [(#REM|test_espace_prive|oui) on est dans le privé ]

      Ce qui nous donne :

      [(#REM|test_espace_prive|oui) 
      
      <[(#SPIP_VERSION|substr{0,3}|=={3.0}|?{li,div})] class='editer editer_parents[ (#ENV**{erreurs}|table_valeur{parents}|oui)erreur]'>
      	<label><:polyhier:label_parents:></label>[
      	<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{parents})</span>
      	]
      	<INCLURE{fond=formulaires/selecteur/rubriques}{selected=#ENV{parents}}{name=parents}{sortable=oui}{id_rubrique}{limite_branche}{tri}>
      	<input type="hidden" name="confirme_deplace" value="oui" />
      	<script type='text/javascript'>jQuery(function() {jQuery('.editer_parent').remove();});</script>
      </[(#SPIP_VERSION|substr{0,3}|=={3.0}|?{li,div})]>
      
      ]

      Merci à tous !

    Répondre à ce message

  • 1
    djallas

    est-il possible de sauvegarder l’article et téléverser un document (associée dans cet ID_ARTICLE) en même temps ?
    en cas de l’utilisation de :

        #FORMULAIRE_EDITER_LOGO{article,#ID_ARTICLE,#SELF,#ENV**}
        #FORMULAIRE_EDITER_ARTICLE{#ID_ARTICLE, #ID_RUBRIQUE, #SELF}
        <INCLURE{fond=plugins-dist/medias/prive/objets/editer/colonne_document,objet=article,id_objet=#ID_ARTICLE,env} ></INCLURE>

    Répondre à ce message

  • 1

    Bonjour,
    J’aimerai pouvoir ajouter / supprimer des auteurs liés à l’article coté public.
    Mais je n’arrive pas à faire apparaitre le fichier auteurs_lies.html (utilisé dans privé) situé dans prive/objets/list

    Si vous avez une idée !
    Merci d’avance.

    • Une solution : utiliser le plugin CISF saisie facile et utiliser le fichier cisf_auteur.html

    Répondre à ce message

  • 1

    Bonjour

    Bravo pour cet article très utile.

    Je voudrais imposer une rubrique donc désactiver l’affichage du choix de la rubrique dans le formulaire public.

    Je n’ai pas très bien compris comment cacher ce champ... que modifier dans mon fichier editer_article_public

    Un peu d’aide, s’il vous plait.

    Merci

    • Bonjour,

      Pour ma part je l’ai caché en CSS.

      Cordialement.

    Répondre à ce message

  • Bonjour,
    J’utilise les champs extra3 et je n’ai pas de problème pour les afficher quand j’appelle #FORMULAIRE_EDITER_ARTICLE coté public.

    En revanche les champs extra avec l’affichage conditionnelle ne fonctionnent pas dans #FORMULAIRE_EDITER_ARTICLE coté public.

    style=« display=none » ou style=« display=list-item » n’apparaissent pas coté public (coté privé ok)

    Donc tous les champs extra apparaissent sans exception (sans respecter les conditions) !
    Je pense qu’il faut rajouter un script quelque part. Vous avez une piste.
    Merci.

    Répondre à ce message

  • Bonsoir

    Ayant beaucoup cherché pourquoi la liste des rubriques ne s’affichaient pas avec le code

     #FORMULAIRE_EDITER_ARTICLE{new, #ID_RUBRIQUE, #SELF}

    j’ai fini par trouver que le traitement ajax ne se faisait pas (je ne sais pas pourquoi).

    J’ai mis dans mes_options (trouvé dans ecrire/inc/chercher_rubrique.php) :

    define('_SPIP_SELECT_RUBRIQUES', 100000); 

    /* mettre 100000 pour desactiver ajax */

    SPIP 3.0.16

    Si ça peut aider quelqu’un

    Cilou

    Répondre à ce message

  • Bonjour,

    je viens de mettre à jour un site en 3.017

    sur ce site on pouvait écrire un article en mode public librement grâce à la balise #FORMULAIRE_EDITER_ARTICLE sans devoir s’enregistrer

    et là boum on ne peut plus....message d’erreur...pas les droits suffisants...

    je pense évidemment que c’est pour des raisons de sécurité...

    Y a t-il quand même une solution ?

    Répondre à ce message

  • 2

    Bonjour à tous ! Superbe contribution !
    Cependant je souhaite allez un peu plus loins en espérant que quelq’un puisse m’aider !

    Via le Plugin autorité, je souhaite bloquer l’accès des rédacteurs à l’espace privé pour leur offrir un espace de rédaction simplifier via #FORMULAIRE_EDITER_ARTICLE coté publique.
    Le formulaire est déjà opérationnelle mais...

    La fonction pour bloquer l’accès a l’espace privé aux rédacteurs fonctionne à merveille... même un peu trop !

    Quand ils rédige leur article et le valide, cela du coup n’a aucun effet, ou quand ils choisissent la rubrique dans laquelle ils soumettent leur article, redirection vers un page d’erreur : Accès interdit à l’espace privé.

    En bref : comment permettre aux redacteurs d’utiliser ce formulaire, sans qu’il n’est accesà l’espace privé !

    En espérant que vous pourrez m’apporter de l’aide =)

    • Sur Spip3, le plus simple que j’ai trouvé est de surcharger le squelette de l’administration.

      Prenez le squelette de
      /prive/squelettes/page.html
      et recopier le dans votre dossier
      /squelettes/prive/squelettes/page.html

      et ajouter le test que vous voulez avant l’inclusion :
      par exemple, renvoyer les redacteurs vers la UNE, sinon (donc les administrateurs) afficher l’admin :

      <BOUCLE_test(CONDITION){si #SESSION{statut}|=={1comite}}>
      #HTTP_HEADER{Location:../?&page=sommaire}
      </BOUCLE_test>
      <INCLURE{fond=prive/squelettes/structure}{env}{type-page=#ENV{type-page,#ENV{exec}}}{composition=#ENV{composition,''}}>
      <//B_test>
    • Cette piste me semble intéressante en effet ; créer une redirection pour les rédacteurs. Il faut juste en complément que je trouve comment masquer le liens « Espace Privé » à ces derniers.

    Répondre à ce message

  • Je rencontre un problème.
    Avec :
    #FORMULAIRE_EDITER_ARTICLE new, 19, #SELF

    le formulaire continue d’afficher « à l’intérieur de la rubrique : Racine du site » ; plutôt que de la rubrique 19 de mon site.

    de plus les articles ainsi rédigés ne sont pas « enregistrés » par le site : introuvable ensuite ds l’espace privé .

    Je cherche une réponse.

    Merci

    Répondre à ce message

  • Cette évolution est intéressante mais c’est dommage qu’elle ne soit pas bien documentée.
    Tous les exemples donnés plus haut ne sont pas satisfaisants.

    Ce qui serait bien c’est de pouvoir reproduire exactement le processus de publication dans l’espace privé.

    D’abord le formulaire d’édition d’article seul.
    Après l’avoir rempli et validé, affichage du texte et du formulaire d’ajout de documents, avec lien pour modifier l’article.

    Si une âme charitable a réussi un tel exploit, je le prie de nous en faire profiter.

    Répondre à ce message

  • Bonjour,

    j’aimerais savoir comment offrir la possibilité aux contributeurs de laisser un pseudo et un mail si ils le souhaitent. Ceci ne serait pas obligatoire. C’est le contributeur qui décide.
    merci pour votre aide.

    Répondre à ce message

  • 1

    Bonjour,
    Je souhaite utiliser cette sympathique contrib pour permettre la publication ouverte de contenu (tout visiteur doit pouvoir proposer un article).
    Mais une expérience passée sur Spip2 avec le plugin « Publication Ouverte » me fait craindre les robots spammeurs qui créent des articles fantômes et vides. Je souhaiterait donc les bloquer. Y-a-t-il moyen d’ajouter une captcha ou autre contrôle antirobots quelque part dans le formulaire d’édition/création d’article ?

    • Je complète ma question tant qu’à faire...
      En fait, seul un rédacteur identifié peut proposer du contenu. Comment rendre ce formulaire accessible à tous, même non authentifiés ?

    Répondre à ce message

  • 4
    citoyen

    Bonjour et merci pour cette contrib,

    Je suis sous Spip 3 et je cherche comment depuis l’interface publique du site, créer un article qui aurait directement par default le statut publié en ligne sans devoir moi même venir changer le statut des nouveaux articles proposés. Un genre de modération à posteriori des articles ?!

    Je ne sais pas ci cela est possible et je n’ai pas trouvé de contrib ou plugin à ce sujet.

    Merci d’avance.

    • Dans la partie de l’article qui parle de

      <input type='hidden' id='statut' name='statut' value='prop' />

      remplacer le

      value='prop'

      par

      value='publie'
    • citoyen

      Génial, un grand merci pour cette réponse rapide !

    • la solution ne fonctionne pas si le auteur es un redacteur !!!

      I tried with no success :

      autoriser_exception('instituer', 'article', $id_article,  true);
      $myresult = formulaires_editer_objet_traiter('article'...);

      How can I use la fonction autoriser_exception() to give the correct permission ?

    • ok
      this is the answer :

      autoriser_exception('publierdans','rubrique',$id_rubrique);
      $myresult = formulaires_editer_objet_traiter('article'...);

    Répondre à ce message

  • citoyen

    Pour mettre un article à la poubelle :

    Dans editer_article.html :

    [(#REM) modifier le statut de l’article]

    Répondre à ce message

  • 1

    Bonjour,
    Est-il possible pour les auteurs de supprimer leur propre article depuis le site public ?
    Merci !

    • Bonjour,
      Je ne sais pas si tu y est arrivé.... mais oui c’est possible je l’ai fais en faisant la même démarche que pour créer un article avec auteur_supprime_article tu suis exactement la démarche décrite dans cette contrib, ensuite dans le formulaire supprime_article que tu as créer, tu ajoutes la ligne suivante avant le bouton enregistré (auquel tu auras changé la valeur à supprimer) en fin de code :

      le rédacteur pourra mettre son article à la poubelle sans ton intervention, il te faut le plugin autorite pour autoriser les auteurs à modifier leurs articles

    Répondre à ce message

  • 6

    Dans le cas où on ne cherche pas à modifier le formulaire, pourquoi pousser les gens à dupliquer tout le code ? Plutôt que simplement utiliser #FORMULAIRE_EDITER_TRUC (pas spécialement article) dans leurs squelettes.

    • Article remanié suite aux demandes, là c’est plus clair normalement

    • Oui ça me parait plus clair, c’est cool !

    • Eric Luyckx

      Bonjour,

      dans la même idée, comment donner accès au sélecteur de mots-clé ?
      j’ai trouvé le formulaire du sélecteur de groupes de mot mais pas celui qui appelle tout le ’service de sélection des mots (et groupes de mots)’

      merci d’avance

      Eric

    • Bonjour
      Je fais mon 1er formulaire publique sous spip3 et dans la création édition d’un article je n’ai pas trouvé comment insérer le formulaire de selection de mot clé :
      j’ai mis cela dans la boucle article :
      <INCLURE{fond=plugins-dist/mots/prive/objets/liste/mots_associer,objet=article,id_objet=#ID_ARTICLE,env} />

      J’ai bien mon selecteur et un message d’erreur :
      Warning : array_shift() expects parameter 1 to be array, boolean given in xxxxxx\ecrire\inc\filtres_ecrire.php on line 502
      et la selection au clic sur le bouton ne s’active pas.

      Est-ce la bonne méthode ?

    • Bonjour et bravo pour cette contribution qui ouvre pleins de possibilités !

      Dans l’ensemble ça fonctionne très très bien, je rencontre toutefois le même problème avec le sélecteur de mot-clé. Il m’a semblé logique d’utiliser les 2 syntaxes suivantes :

      <INCLURE{fond=plugins-dist/mots/prive/objets/liste/mots_lies,objet=article,id_objet=#ID_ARTICLE,env} ></INCLURE>

      pour afficher les mots-clés liés, et

      <INCLURE{fond=plugins-dist/mots/prive/objets/liste/mots_associer,objet=article,id_objet=#ID_ARTICLE,env} ></INCLURE>
      pour pouvoir les lier à un article.

      Problème : les 2 affichent le message d’erreur déjà évoqué :

      Warning : array_shift() expects parameter 1 to be array, boolean given in /wwwwwwwww/ecrire/inc/filtres_ecrire.php on line 502

      Est-il possible d’associer un mot-clé à un article côté public ? Si oui, quelle est la démarche à suivre svp ?

    • Bonjour et merci pour cette contribution qui m’a été d’une grande aide !
      Je ne trouve pas non plus le moyen d’utiliser le sélecteur de mots clés sur l’espace public (dans une boucle ARTICLE). J’ai testé la méthode indiquée ci-dessus mais, chez moi aussi, le formulaire ne répond pas. J’ai essayé de partir à zéro avec un formulaire CVT et l’utilisation des API editer_objet et editer_lien mais … je pédale dans la choucroute !!
      Si quelqu’un a trouvé une solution je suis preneur :)

    Répondre à ce message

  • 2

    J’appelle le formulaire en utilisant mediabox.
    Ça ne marche pas a tous les coups car j’obtiens ce message d’erreur la plupart du temps :

    Fatal error : Call to undefined function autoriser() in C :\Program Files (x86)\EasyPHP\www\Gastaud\plugins\champs_extras3\cextras_pipelines.php on line 34

    Dans la page appelée via mediabox, j’ai mis :

    « [(#SESSION(statut)|==(0minirezo)|oui) #FORMULAIRE_EDITER_ARTICLE_PUBLIC(new, 5, spip.php ?page=ajouter_annonce_ok&#ENV(id_article))] » (j’ai du mettre des parenthèses)

    Dois y avoir une fatal erreur quelque part !!
    Merci pour les pistes

    • déjà à priori #ENV(id_article) n’est pas bon : &#ENVid_article
      et mieux avec #URL_PAGE http://www.spip.net/fr_article4630.html#URL_PAGE

    • C’est mieux comme cela :
      [(#SESSIONstatut|==0minirezo|oui)
      #FORMULAIRE_EDITER_ARTICLE_PUBLICnew, « 5 », #URL_PAGEajouter_annonce_ok,id_article=#ID_ARTICLE
      ]

      Mais j’ai toujours cette erreur qui apparait 1 fois sur 3. J’ai testé en supprimant #session, rien ne change.
      Sinon la modification des articles fonctionne sans problème. Seul la création pose problème.
      Je tourne en rond et mes compétences ne volent pas très haut !!

      C’est peut être la solution d’actonne « modifier les autorisations, en recopiant/modifiant les autorisations de champsextra dans mes_options » mais comment on fait ça !! j’ai pas trouvé grand chose dessus !!

    Répondre à ce message

  • 3

    Bonjour, je me suis lancé dans la création et la modification d’article coté public.

    J’utilise pour appeler le formulaire : #FORMULAIRE_EDITER_ARTICLEnew, 5, #SELF
    Mais les champs extra ne s’affichent pas (spip3).

    Ils s’affichent uniquement après avoir enregistré l’article (dès que l’article obtient un ID).
    C’est embêtant tout ça !! Si on a une piste je suis preneur !!

    • Bonjour, je rencontre le même problème, avec SPIP 3 et Champs Extras 3.2.3. En mode « édition d’article » côté public, les champs apparaissent. Mais pas en mode « création d’un nouvel article ».

      C’est un problème contournable : on peut imaginer que l’utilisateur rédige son article, et qu’après validation on le renvoie vers le mode « modification de l’article » pour qu’il complète les champs Extra. Toutefois ça n’est pas très logique du point de vue fonctionnel.

    • J’ai également contourné ce problème donc un nouvel article en 2 étapes.
      Pas top mais c’est déjà ça !!

    • Peut être modifier les autorisations, en recopiant/modifiant les autorisations de champsextra dans mes_options ?

    Répondre à ce message

  • Bonjour,

    en utilisant <INCLURE{fond=plugins-dist/medias/prive/objets/editer/colonne_document,objet=article,id_objet=#ID_ARTICLE,env} ></INCLURE> dans le site public, j’arrive a faire apparaître les éléments pour la gestion des documents, mais je n’ai pas les feuilles de styles nécessaire à la mise en forme. Quels fichiers faut-il insérer ?

    Merci

    Répondre à ce message

  • Bonjour

    Sous 2.1, j’ai mis l’édition d’article côté public mais je souhaiterai faire saisir de nouveaux champs aux utilisateurs pour une question de mise en forme car ces champs je voudrais les réintégrer dans le champs texte (non accessible en publique) sous forme d’un tableau.

    J’ai essayé de l’intégrer dans la fonction traiter mais sans succès. Je suis également tomber sur le pipeline pre_insertion mais là c’est la brasse coulée. Une piste ? un exemple ?

    Après cette étape j’aurai également besoin d’affecter des mots clés à mes articles ainsi que d’uploader des images dans leur portefolio.

    Merci d’avance

    Répondre à ce message

  • Pour différencier un formulaire de création d’événement public de celui de la partie privée, j’ai procédé comme décrit et hélas, cela ne fonctionne pas.

    J’ai tranféré les fichiers editer_evenement (html et php) dans mon squelette et procédé comme décrit. que manque t’il ?

    Répondre à ce message

  • 3

    « 

    <INCLURE{fond=prive/objets/editer/colonne_document,objet=article,id_objet=#ID_ARTICLE,env} />

     »
    il semble que le fichier prive/objets/editer/colonne_document.html n’existe plus en SPIP 3

    Vous savez que suggérer pour ajouter le formulaire de joindre de documents/images ?

    Je pense que c’est une certaine formulaire de plugins-dist\médias mais ne sait pas encore spip3

    merci beaucup.

    • et je ne trouve pas même dans l’histoire.
      quelle révision vous avez ?

    • Trouvé

      responde a me meme

      le chemin est ici :
      spip\plugins-dist\medias\prive\objets\editer\colonne_document.html

      mercì beaucup ;

    • corrigé, c’était effectivement dans une vieille révision spip3

    Répondre à ce message

  • Vincent

    Bonjour,

    Pour l’édition d’un article, de son logo et de ses documents joints - en SPIP3 (dans une boucle ARTICLES) :
    #FORMULAIRE_EDITER_LOGOarticle,#ID_ARTICLE,#SELF,#ENV**
    #FORMULAIRE_EDITER_ARTICLE#ID_ARTICLE, #ID_RUBRIQUE, #SELF

    est-il possible sous spip 2.1 d’avoir un formulaire dans l’espace publique pour créer un article avec logo et document joint ? Si oui comment ? Ou est-ce réservé à Spip3 ?

    Répondre à ce message

  • J’utilise #FORMULAIRE_EDITER_ARTICLEnew, #ID_RUBRIQUE,

    Le formulaire s’affiche mais le choix des rubriques est bloqué et grisé. De plus après avoir cliqué sur enregistrer on est renvoyé sur l’espace privé sans aucune trace de l’article.

    Vous auriez une idée du problème ?

    Merci d’avance !

    Répondre à ce message

  • 1

    J’essaie d’utiliser ce code avec SPIP 3.0

    #FORMULAIRE_EDITER_ARTICLE{#ID_ARTICLE, #ID_RUBRIQUE, #SELF}
    <INCLURE{fond=prive/objets/editer/colonne_document,objet=article,id_objet=#ID_ARTICLE,env} />

    mais je n’ai ce problème :

    lorsque je charge le premier document joindre, n’apparaissent pas dans l’aperçu .

    Ajax fonctionne bien pour les documents qui suivent le première.

    Quelqu’un at-il des idées ?

    • trouvé le problème : la CACHE !!!

      vous devez ajouter #CACHE{0} a la squelette
      prive/objets/editer/colonne_document.html

    Répondre à ce message

  • Eric Luyckx

    Bonjour,

    dans la même idée, comment donner accès au sélecteur de mots clé ?

    je suis sur SPIP 3.0, j’ai trouvé le formulaire du sélecteur de groupes de mot dans les extensions mais pas le moyen d’initialiser la boite qui propose tout le service de sélection groupe+mot.

    l’idéal serait de pouvoir désactiver la fonction « créer et associer un mot… »

    une piste ?
    peut-on invoquer les extensions depuis les squelettes publics ?

    merci d’avance

    Eric

    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