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
Discussions par date d’activité
31 discussions
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 !
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é :
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
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
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
«
»
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
Bonjour,
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
J’essaie d’utiliser ce code avec SPIP 3.0
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 squeletteprive/objets/editer/colonne_document.html
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 :
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.
Suivre les commentaires : |