créer événement depuis l'espace public

Bonjour,

Toujours mon site d'agenda. Maintenant que j'ai réussi à faire
fonctionner le minicalendrier, je voudrais permettre de créer un
événement directement depuis l'espace public du site, par n'importe qui.

J'ai trouvé la boucle ci-dessous quelque part, qui me pose un seul
problème (hormis les cadres transparents très peu pratiques) : les
événements créés sont seulement proposés à l'évaluation, ce qui oblige
un administrateur à valider. Hors je voudrais qu'en validant,
l'événement soit publié de suite et qu'on soit redirigé vers l'affichage
de ce nouvel événement pour pouvoir éventuellement le modifier.

<BOUCLE_event(spip_evenements){id_evenement}>
<BOUCLE_A(ARTICLES){id_article}>
<div class='cadre-formulaire-editer'>
<div class="entete-formulaire">
    #ENV**{icone_retour}
   
[<p>(#ENV{id_evenement}|intval|?{<:agenda:titre_cadre_modifier_evenement:>,<:agenda:titre_cadre_ajouter_evenement:>})</p>]
    [<h1>(#ENV{id_evenement}|intval|?{##ENV{id_evenement}})</h1>]
</div>
#FORMULAIRE_EDITER_EVENEMENT{#ENV{id_evenement},#ENV{id_article},
#EVAL{$GLOBALS[_SERVER][HTTP_REFERER]}, [(#REM) La page d'où on vient]
#ENV{lier_trad},#ENV{config_fonc},#ENV{row}}
</div>
</BOUCLE_A>
</BOUCLE_event>
</B_event>
[(#REM) pas d'evenement, on le rajoute donc il faut trouver un article
on prend celui du premier evenement de la base]
<BOUCLE_e2(spip_evenements){tout}{par date_debut}{0,1}>
<div class='cadre-formulaire-editer'>
<div class="entete-formulaire">
    #ENV**{icone_retour}
    <p><:agenda:titre_cadre_ajouter_evenement:></p>
</div>
#FORMULAIRE_EDITER_EVENEMENT{0,#ID_ARTICLE,#EVAL{$GLOBALS[_SERVER][HTTP_REFERER]},#ENV{lier_trad},#ENV{config_fonc},#ENV{row}}
<input type='hidden' name='statut' value='publie' />
</div>
</BOUCLE_e2>
<//B_event>

Merci de votre aide,
je suis impatient que le mouvement associatif de ma petite ville ait
enfin un agenda qui recense toutes les manifestations.

Etienne

Bonjour,
c'est déjà possible avec un article, pourquoi pas avec un évènement ?
J'ai utilisé l'article Formulaire d'ajout/modification d'articles côté public à partir de SPIP2.1 - SPIP-Contrib qui m'a bien aidé...

Le 29/05/2012 22:29, Etienne a écrit :

Toujours mon site d'agenda. Maintenant que j'ai réussi à faire
fonctionner le minicalendrier, je voudrais permettre de créer un
événement directement depuis l'espace public du site, par n'importe qui.

--
----
chan

Merci,
Mais bien que ça ait l’air très intéressant, je ne trouve pas dedans ce qui m’aiderait à faire que ce nouvel événement soit directement publié sans devoir être validé par un administrateur (et accessoirement que la page soit ensuite redirigée vers cet événement).
Je crois pourtant que ça y est et que ça pourrait avoir un rapport avec ce paragraphe :

"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 :

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

Mais je cale …

Salut,

Peut être des bouts de codes à prendre sur:

Denis
Le 30/05/2012 22:54, Etienne a écrit :

Le 30/05/2012 01:04, chankalan a écrit :

Bonjour,
c'est déjà possible avec un article, pourquoi pas avec un évènement ?
J'ai utilisé l'article
Formulaire d'ajout/modification d'articles côté public à partir de SPIP2.1 - SPIP-Contrib
qui m'a bien aidé...

Merci,
Mais bien que ça ait l'air très intéressant, je ne trouve pas dedans ce
qui m'aiderait à faire que ce nouvel événement soit directement publié
sans devoir être validé par un administrateur (et accessoirement que la
page soit ensuite redirigée vers cet événement).
Je crois pourtant que ça y est et que ça pourrait avoir un rapport avec
ce paragraphe :

*"/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./"

Mais je cale ...

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

Le 29/05/12 22:29, Etienne a écrit :

Bonjour,

Toujours mon site d'agenda. Maintenant que j'ai réussi à faire
fonctionner le minicalendrier, je voudrais permettre de créer un
événement directement depuis l'espace public du site, par n'importe qui.

Il y a le plugin déjà tout fait proposer_evenement qui dispose d'une configuration du statut de l'article lors de la soumission d'un evenement dans l'espace public.

De plus, il te sera facile de le modifier au besoin

Il y a le plugin déjà tout fait proposer_evenement qui dispose d'une
configuration du statut de l'article lors de la soumission d'un
evenement dans l'espace public.

De plus, il te sera facile de le modifier au besoin

Connexion · GitLab

Apparemment incompatible spip3.
Merci quand même,
Etienne

Il fallait bien utiliser ce code dans le editer_evenement.html, mais je ne savais pas où.
<input type='hidden' name='statut' value='publie' />
C’était juste avant le « input submit » , et ça fonctionne.

Par contre, je me galère parce que quand les événements sont entrés de cette façon là, quand je clique ensuite sur le calendrier, ça me liste plusieurs événements, pas tous à la même date, car ça prend les autres événements créés précédemment par le formulaire de l’espace public.

Mon code pour le formulaire de création de l’événement c’est ça :

<BOUCLE_event(spip_evenements){id_evenement}>
<BOUCLE_A(ARTICLES){id_article}>
<div class='cadre-formulaire-editer'>
<div class="entete-formulaire">
#ENV**{icone_retour}
``
[<p>(#ENV{id_evenement}|intval|?{<:agenda:titre_cadre_modifier_evenement:>,<:agenda:titre_cadre_ajouter_evenement:>})</p>]
[<h1>(#ENV{id_evenement}|intval|?{##ENV{id_evenement}})</h1>]
</div>
#FORMULAIRE_EDITER_EVENEMENT{#ENV{id_evenement},#ENV{id_article},
#EVAL{$GLOBALS[_SERVER][HTTP_REFERER]}, [(#REM) La page d'où on vient]
#ENV{lier_trad},#ENV{config_fonc},#ENV{row}}
</div>
</BOUCLE_A>
</BOUCLE_event>

[(#REM) pas d'evenement, on le rajoute donc il faut trouver un article
on prend celui du premier evenement de la base]
<BOUCLE_e2(spip_evenements){tout}{par date_debut}{0,1}>
<div class='cadre-formulaire-editer'>
<div class="entete-formulaire">
#ENV**{icone_retour}
<p><:agenda:titre_cadre_ajouter_evenement:></p>
</div>
#FORMULAIRE_EDITER_EVENEMENT{0,#ID_ARTICLE,#EVAL{$GLOBALS[_SERVER][HTTP_REFERER]},#ENV{lier_trad},#ENV{config_fonc},#ENV{row}}
</div>
</BOUCLE_e2>

Et mon code pour cliquer sur le calendrier, c’est ça :

#SET{date_debut,#DATE|affdate{Y-m-01}}
#CALENDRIER_MINI{#GET{date_debut},date_debut,#URL_PAGE{agenda},#URL_PAGE{calendrier_mini_event.json}}

<B_ev>
``
[<h2>(#TOTAL_BOUCLE|singulier_ou_pluriel{agenda:info_un_evenement,agenda:info_nombre_evenements})&nbsp;<:le:>&nbsp;[(#ENV{date_debut,#ENV{affdate}}|affdate)]</h2>]
<ul class="liste-items evenements">
<BOUCLE_ev(EVENEMENTS){!evenement_passe #ENV{date_debut,#ENV{date}}}{!evenement_a_venir #ENV{date_debut,#ENV{date}}|agenda_moisdecal{1,'Y-m-d H:i:00'}}{par date_debut}{id_article?}{id_rubrique?}{id_mot?}{id_evenement_source?}>
<li class="item">
#MODELE{evenement_vevent}
</li>
</BOUCLE_ev>
</ul>
</B_ev>
<h3><:agenda:info_aucun_evenement:></h3>
<//B_ev>

Je ne comprend pas trop.
Je vais aller dormir.
Merci de votre aide,
J’avance lentement mais chaque jour j’ajoute un grain de sable et j’aurai bientôt une pyramide.

Etienne

Je me répond tout seul après une nuit de sommeil.

Par contre, je me galère parce que quand les événements sont entrés de cette façon là, quand je clique ensuite sur le calendrier, ça me liste plusieurs événements, pas tous à la même date, car ça prend les autres événements créés précédemment par le formulaire de l’espace public.

En fait, il semble que ça se contentait de m’afficher tous les événements à venir du mois.
Et donc, dans ma boucle agenda, il suffisait d’enlever

agenda_moisdecal{1,‹ Y-m-d H:i:00 ›}

Et comme ça ça a l’air de fonctionner.

Un petit grain de sable en plus pour ma pyramide.
Merci

Le 01/06/2012 10:19, Etienne a écrit :

Je me répond tout seul après une nuit de sommeil.

Par contre, je me galère parce que quand les événements sont entrés de cette façon là, quand je clique ensuite sur le calendrier, ça me liste plusieurs événements, pas tous à la même date, car ça prend les autres événements créés précédemment par le formulaire de l’espace public.

En fait, il semble que ça se contentait de m’afficher tous les événements à venir du mois.
Et donc, dans ma boucle agenda, il suffisait d’enlever

agenda_moisdecal{1,‹ Y-m-d H:i:00 ›}

Et comme ça ça a l’air de fonctionner.

Et je me re répond puisque ça entraîne un nouveau bug. Les dates pour lesquels les événements sont définis sur une plage horaire (et non sur toute la journée) ne s’affichent plus, même si la date sur le calendrier est surlignée.
Donc il ne faut pas supprimer ce critère mais le modifier. Que mettre à la place de agenda_moisdecal ?

Merci, donc, et désolé si je squatte un peu la liste.

Je te réponds sans avoir vraiment suivi la chose, mais dans la base de données sur la table spip_evenements, il y a bien date_debut [00-00-00 00:00:00] et date_fin ? Je vois bien donc une ou deux conditions disant: Si la date_début est différente de la date_fin on affiche la date et l'heure mais si la date_debut= date_fin on affiche l'heure de date_debut et l'heure de date_fin en utilisant les filtres appropriés comme expliqué ici: Utilisation des filtres de date SPIP - SPIP-Contrib

Etienne a écrit :

Le 01/06/2012 10:19, Etienne a écrit :

Je me répond tout seul après une nuit de sommeil.

Par contre, je me galère parce que quand les événements sont entrés de cette façon là, quand je clique ensuite sur le calendrier, ça me liste plusieurs événements, pas tous à la même date, car ça prend les autres événements créés précédemment par le formulaire de l’espace public.

En fait, il semble que ça se contentait de m'afficher tous les événements à venir du mois.
Et donc, dans ma boucle agenda, il suffisait d'enlever

agenda_moisdecal{1,'Y-m-d H:i:00'}

Et comme ça ça a l'air de fonctionner.

Et je me re répond puisque ça entraîne un nouveau bug. Les dates pour lesquels les événements sont définis sur une plage horaire (et non sur toute la journée) ne s'affichent plus, même si la date sur le calendrier est surlignée.
Donc il ne faut pas supprimer ce critère mais le modifier. Que mettre à la place de agenda_moisdecal ?

Merci, donc, et désolé si je squatte un peu la liste.
------------------------------------------------------------------------

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

En fait, il semble que ça se contentait de m'afficher tous les
événements à venir du mois.
Et donc, dans ma boucle agenda, il suffisait d'enlever

agenda_moisdecal{1,'Y-m-d H:i:00'}

Et comme ça ça a l'air de fonctionner.

Et je me re répond puisque ça entraîne un nouveau bug. Les dates pour
lesquels les événements sont définis sur une plage horaire (et non
sur toute la journée) ne s'affichent plus, même si la date sur le
calendrier est surlignée.
Donc il ne faut pas supprimer ce critère mais le modifier. Que mettre
à la place de agenda_moisdecal ?

Bon, alors en tatonnant longtemps, sans rien trouver sur internet
là-dessus, j'ai fini par remplacer au hasard agenda_moisdecal par
agenda_jourdecal et ça a l'ir d'aller mieux.
Mais où trouver tous ces filtres ?
Allez, je vous lâche un peu la grappe.