Browse Source

Ferme http://core.spip.org/issues/2547 : retablir la saisie des messages de type rendez-vous avec date debut et fin

et corriger l'affichage en double dans l'agenda
svn/root/tags/plugins/organiseur/0.8.0 v0.8.0
cedric@yterium.com 11 years ago
parent
commit
c85165adec
  1. 1
      .gitattributes
  2. 2
      action/quete_calendrier_prive.php
  3. 23
      formulaires/editer_message.html
  4. 32
      formulaires/editer_message.php
  5. 47
      inc/date_gestion.php
  6. 7
      lang/organiseur_fr.php
  7. 2
      paquet.xml
  8. 9
      prive/objets/contenu/message.html
  9. 7
      prive/style_prive_plugin_organiseur.html

1
.gitattributes vendored

@ -15,6 +15,7 @@ formulaires/editer_message.html -text
formulaires/editer_message.js -text
formulaires/editer_message.php -text
formulaires/inc-destinataires-message.html -text
inc/date_gestion.php -text
inc/messages.php -text
inc/quete_calendrier.php -text
javascript/jquery.autocomplete.js -text

2
action/quete_calendrier_prive.php

@ -45,7 +45,7 @@ function action_quete_calendrier_prive_dist(){
break;
case 'publication':
if (!$quoi OR $quoi=='publication')
list($entier,$duree) = quete_calendrier_interval($limites);
list($entier,) = quete_calendrier_interval($limites);
break;
}

23
formulaires/editer_message.html

@ -23,6 +23,28 @@
<span class='erreur_message'>(#GET{erreurs})</span>
]<input type="text" class="text" name="#GET{name}" value="#ENV*{#GET{name}}" id="#GET{name}" [(#HTML5|et{#GET{obli}})required='required']/>
</li>
<li class="editer editer_rv[ (#ENV**{erreurs}|table_valeur{rv}|oui)erreur]">
<div class="choix">
<input type='checkbox' name='rv' id='rv' value='oui' [(#ENV{rv}|=={oui}|oui)checked='checked']
onclick="if (this.checked==true) { $('li.editer_date_debut_fin').show('fast');} else {$('li.editer_date_debut_fin').hide('fast');}" />
<label for="rv"><:item_afficher_calendrier:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{rv})</span>
]
</div>
</li>
<li class="editer editer_date_debut editer_date_debut_fin[ (#ENV**{erreurs}|table_valeur{date_debut}|oui)erreur][(#ENV{rv}|=={oui}|non)none]">
<label for="date_debut"><:organiseur:info_message_date_debut:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{date_debut})</span>
]<input type='text' class='text date' name='date_debut' id='date_debut' size='10' maxlength='10' value="[(#ENV{date_debut})]" />
<input type='text' class='text heure' name='heure_debut' id='heure_debut' size='4' maxlength='5' value="[(#ENV{heure_debut})]"
/>
</li>
<li class="editer editer_date_fin editer_date_debut_fin[ (#ENV**{erreurs}|table_valeur{date_fin}|oui)erreur][(#ENV{rv}|=={oui}|non)none]">
<label for="date_fin" class='date_fin'><:organiseur:info_message_date_fin:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{date_debut})</span>
]<input type='text' class='text date' name='date_fin' id='date_fin' size='10' maxlength='10' value="[(#ENV{date_fin})]" />
<input type='text' class='text heure' name='heure_fin' id='heure_fin' size='4' maxlength='5' value="[(#ENV{heure_fin})]" />
</li>
#SET{name,texte}#SET{obli,'obligatoire'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
<label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
@ -46,6 +68,7 @@
<input type='submit' class='submit' name="send" value='<:organiseur:bouton_envoyer_message:>' />
</p>
</div></form>
#INCLURE{fond=formulaires/dateur/inc-dateur}
]
</div>
[(#ENV{_destiner}|oui)

32
formulaires/editer_message.php

@ -31,8 +31,16 @@ function formulaires_editer_message_charger_dist($id_message='new',$type='messag
$valeurs['destinataires'] = ($destinataires ? explode(",",$destinataires):array());
$valeurs['titre'] = $titre;
$valeurs['texte'] = $texte;
$t=time();
$valeurs["date_heure"] = date('Y-m-d H:i:00',$t);
$valeurs["date_fin"] = date('Y-m-d H:i:00',$t+3600);
$valeurs["rv"] = "";
}
// dispatcher date et heure
list($valeurs["date_debut"],$valeurs["heure_debut"]) = explode(' ',date('d/m/Y H:i',strtotime($valeurs["date_heure"])));
list($valeurs["date_fin"],$valeurs["heure_fin"]) = explode(' ',date('d/m/Y H:i',strtotime($valeurs["date_fin"])));
if (in_array($valeurs['type'],array('pb','affich')))
$valeurs['_destiner'] = '';
else
@ -65,6 +73,17 @@ function formulaires_editer_message_verifier_dist($id_message='new',$type='messa
AND $e = messagerie_verifier_destinataires(_request('destinataires'),array('accepter_email'=>($accepter_email=='oui'))))
$erreurs['destinataires'] = implode(', ',$e);
if (_request('rv')=='oui'){
include_spip('inc/date_gestion');
$date_debut = verifier_corriger_date_saisie('debut',true,$erreurs);
$date_fin = verifier_corriger_date_saisie('fin',true,$erreurs);
if ($date_debut AND $date_fin AND $date_fin<$date_debut)
$erreurs['date_fin'] = _T('organiseur:erreur_date_avant_apres');
}
else
set_request('rv','');
return $erreurs;
}
@ -95,6 +114,19 @@ function formulaires_editer_message_traiter_dist($id_message='new',$type='messag
// fixer l'auteur !
set_request('id_auteur',$GLOBALS['visiteur_session']['id_auteur']);
if (_request('rv')=='oui'){
include_spip('inc/date_gestion');
$erreurs = array();
$date_debut = verifier_corriger_date_saisie('debut',true,$erreurs);
$date_fin = verifier_corriger_date_saisie('fin',true,$erreurs);
set_request('date_heure',date('Y-m-d H:i:s',$date_debut));
set_request('date_fin',date('Y-m-d H:i:s',$date_fin));
}
else {
set_request('date_heure');
set_request('date_fin');
}
// on gere par les traitements standard
// la diffusion du message se fait par pipeline post_edition sur instituer
// et notification

47
inc/date_gestion.php

@ -0,0 +1,47 @@
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2011 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined('_ECRIRE_INC_VERSION')) return;
/**
* Recuperer les champs date_xx et heure_xx, verifier leur coherence et les reformater
*
* @param string $suffixe
* @param bool $horaire
* @param array $erreurs
* @return int
*/
function verifier_corriger_date_saisie($suffixe,$horaire,&$erreurs){
include_spip('inc/filtres');
$date = _request("date_$suffixe").($horaire?' '.trim(_request("heure_$suffixe")).':00':'');
$date = recup_date($date);
if (!$date)
return '';
$ret = null;
if (!$ret=mktime(0,0,0,$date[1],$date[2],$date[0]))
$erreurs["date_$suffixe"] = _T('organiseur:erreur_date');
elseif (!$ret=mktime($date[3],$date[4],$date[5],$date[1],$date[2],$date[0]))
$erreurs["date_$suffixe"] = _T('organiseur:erreur_heure');
if ($ret){
if (trim(_request("date_$suffixe")!==($d=date('d/m/Y',$ret)))){
$erreurs["date_$suffixe"] = _T('organiseur:erreur_date_corrigee');
set_request("date_$suffixe",$d);
}
if ($horaire AND trim(_request("heure_$suffixe")!==($h=date('H:i',$ret)))){
$erreurs["heure_$suffixe"] = _T('organiseur:erreur_heure_corrigee');
set_request("heure_$suffixe",$h);
}
}
return $ret;
}
?>

7
lang/organiseur_fr.php

@ -18,6 +18,11 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
// E
'erreur_destinataire_invalide' => 'Le destinataire @dest@ n\'est pas valide',
'erreur_date' => 'Cette date est incorrecte',
'erreur_date_avant_apres' => 'Indiquez une date de fin après la date de début !',
'erreur_date_corrigee' => 'La date a été corrigée',
'erreur_heure' => 'Cette heure est incorrecte',
'erreur_heure_corrigee' => 'L\'heure a été corrigée',
// I
'icone_ecrire_nouveau_message' => 'Envoyer un nouveau message',
@ -32,6 +37,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'info_agenda_interne' => 'Agenda interne',
'info_message_a' => 'À',
'info_message_date' => 'Date',
'info_message_date_debut' => 'Date début',
'info_message_date_fin' => 'Date fin',
'info_message_de' => 'De',
'info_message_non_lu' => 'Nouveau message',
'info_message_objet' => 'Objet',

2
paquet.xml

@ -1,7 +1,7 @@
<paquet
prefix="organiseur"
categorie="date"
version="0.7.4"
version="0.8.0"
etat="test"
compatibilite="[3.0.0-alpha2;["
logo="prive/themes/spip/images/calendrier-32.png"

9
prive/objets/contenu/message.html

@ -9,9 +9,14 @@
<div dir='#LANG_DIR' class='#EDIT{titre} titre'>#TITRE</div>
</div>
<div class="champ contenu_date_heure[ (#DATE_HEURE*|strlen|?{'',vide})] clearfix">
<div class='label'><:organiseur:info_message_date:></div>
<div dir='#LANG_DIR' class='#EDIT{date_heure} date_heure'>[[(#DATE_HEURE|nom_jour)] (#DATE_HEURE|affdate_heure)]</div>
<div class='label'>[(#RV|=={oui}|?{<:organiseur:info_message_date_debut:>,<:organiseur:info_message_date:>})]</div>
<div dir='#LANG_DIR' class='#EDIT{date_heure} date_heure'>[(#RV|=={oui}|oui)[(#CHEMIN_IMAGE{heure-16.png}|balise_img)] ][[(#DATE_HEURE|nom_jour)] (#DATE_HEURE|affdate_heure)]</div>
</div>
[(#RV|=={oui}|oui)
<div class="champ contenu_date_fin[ (#DATE_HEURE*|strlen|?{'',vide})] clearfix">
<div class='label'><:organiseur:info_message_date_fin:></div>
<div dir='#LANG_DIR' class='#EDIT{date_fin} date_fin'>[(#RV|=={oui}|oui)[(#CHEMIN_IMAGE{heure-16.png}|balise_img)] ][[(#DATE_FIN|nom_jour)] (#DATE_FIN|affdate_heure)]</div>
</div>]
<B_d>
<div class="champ contenu_destinataires clearfix">
<div class='label'><:organiseur:info_message_a:></div>

7
prive/style_prive_plugin_organiseur.html

@ -34,7 +34,10 @@
.message #wysiwyg .contenu_from .label,
.message #wysiwyg .contenu_destinataires .label,
.message #wysiwyg .contenu_titre .label,
.message #wysiwyg .contenu_date_heure .label {display: block;float:#GET{left};width:6em;clear:#GET{left};text-align:#GET{right};padding:0 10px;}
.message #wysiwyg .contenu_date_heure .label,
.message #wysiwyg .contenu_date_fin .label {display: block;float:#GET{left};width:6em;clear:#GET{left};text-align:#GET{right};padding:0 10px;}
.message #wysiwyg .contenu_date_heure img {vertical-align: middle;}
.message #wysiwyg .contenu_date_fin img {vertical-align: middle;visibility: hidden;}
.message #wysiwyg .contenu_from .spip_logos {position: absolute;#GET{right}: 0;top:0;}
.message #wysiwyg .contenu_titre {display: block;}
@ -46,6 +49,8 @@
.formulaire_editer_message span.dest img {cursor:pointer;padding:1px;}
.formulaire_editer_message .fake-input {background:#FFF;border:1px solid #999;padding: 3px 3px 0; width: 100%; box-sizing: border-box; -webkit-box-sizing: border-box; -moz-box-sizing: border-box;-ms-box-sizing: border-box;}
.formulaire_editer_message .fake-input input.text {width:200px;border: 0;padding: 1px 0;margin-bottom: 3px;}
.formulaire_editer_message .editer_date_debut {padding-bottom: 0;}
.formulaire_editer_message .editer_date_fin {padding-top: 0;}
/* autocompletion */
.formulaire_editer_message input.ac_loading { background-image : url(#CHEMIN_IMAGE{'searching.gif'});background-position: right center;background-repeat: no-repeat;}

Loading…
Cancel
Save