Browse Source

bien gerer separemment destinataire et auteur sur les deux listes de messages recus et envoyes,

et utiliser un squelette pour afficher les echanges entre un auteur et l'auteur connecte
+ code mort
svn/root/tags/plugins/organiseur/0.4.0
cedric@yterium.com 11 years ago
parent
commit
b9206837c7
  1. 2
      .gitattributes
  2. 136
      inc/message_select.php
  3. 2
      lang/organiseur_fr.php
  4. 11
      organiseur_fonctions.php
  5. 13
      organiseur_pipelines.php
  6. 4
      prive/objets/liste/messages-envoyes.html
  7. 6
      prive/objets/liste/messages-recus.html
  8. 1
      prive/squelettes/inclure/organiseur-envoi.html
  9. 5
      prive/squelettes/inclure/organiseur-interventions.html
  10. 2
      prive/squelettes/inclure/organiseur-reception.html

2
.gitattributes vendored

@ -12,7 +12,6 @@ exec/message_edit.php -text
formulaires/configurer_messagerie_agenda.html -text
formulaires/configurer_messagerie_agenda.php -text
inc/agenda.php -text
inc/message_select.php -text
inc/messages.php -text
inc/quete_calendrier.php -text
lang/organiseur.xml -text
@ -36,6 +35,7 @@ prive/squelettes/contenu/calendrier.html -text
prive/squelettes/contenu/messages.html -text
prive/squelettes/inclure/configurer_messagerie.html -text
prive/squelettes/inclure/organiseur-envoi.html -text
prive/squelettes/inclure/organiseur-interventions.html -text
prive/squelettes/inclure/organiseur-message.html -text
prive/squelettes/inclure/organiseur-rappels.html -text
prive/squelettes/inclure/organiseur-reception.html -text

136
inc/message_select.php

@ -1,136 +0,0 @@
<?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;
// $messages_vus en reference pour interdire l'affichage de message en double
function afficher_ses_messages($titre, $join, $where, &$messages_vus, $afficher_auteurs = true, $important = false, $type='messagerie') {
$requete = array('SELECT' => 'M.id_message, M.date_heure, M.date_fin, M.titre, M.type, M.rv', 'FROM' => "spip_messages AS M$join", 'WHERE' => $where .(!$messages_vus ? '' : ' AND M.id_message NOT IN ('.join(',', $messages_vus).')'), 'ORDER BY'=> 'date_heure DESC');
if ($afficher_auteurs) {
$styles = array(array('arial2'), array('arial1', 130), array('arial1', 20), array('arial1', 120));
} else {
$styles = array(array('arial2'), array('arial1', 20), array('arial1', 120));
}
$presenter_liste = charger_fonction('presenter_liste', 'inc');
$tmp_var = 't_' . substr(md5(join('', $requete)), 0, 4);
// cette variable est passe par reference et recevra les valeurs du champ indique
$les_messages = 'id_message';
$res = $presenter_liste($requete, 'presenter_message_boucles', $les_messages, $afficher_auteur, $important, $styles, $tmp_var, $titre, "$type-24.gif");
$messages_vus = array_merge($messages_vus, $les_messages);
if (!$res) return '';
else
return
(debut_cadre_couleur('',true)
. $res
. fin_cadre_couleur(true));
}
function presenter_message_boucles($row, $afficher_auteurs)
{
global $connect_id_auteur, $spip_lang_left, $spip_lang_rtl;
$vals = array();
$id_message = $row['id_message'];
$date = $row["date_heure"];
$date_fin = $row["date_fin"];
$titre = sinon($row['titre'], _T('ecrire:info_sans_titre'));
$type = $row["type"];
$rv = $row["rv"];
//
// Titre
//
$s = "<a href='" . generer_url_ecrire("message","id_message=$id_message") . "' style='display: block;'>";
switch ($type) {
case 'pb' :
$puce = "m_envoi_bleu$spip_lang_rtl.gif";
break;
case 'memo' :
$puce = "m_envoi_jaune$spip_lang_rtl.gif";
break;
case 'affich' :
$puce = "m_envoi_jaune$spip_lang_rtl.gif";
break;
case 'normal':
default:
$puce = "m_envoi$spip_lang_rtl.gif";
break;
}
$s .= http_img_pack("$puce", "", "width='14' height='7'");
$s .= "&nbsp;&nbsp;".typo($titre)."</a>";
$vals[] = $s;
//
// Auteurs
if ($afficher_auteurs) {
$auteurs = sql_allfetsel("A.id_auteur, A.nom", "spip_auteurs AS A, spip_auteurs_liens AS L", "L.objet='message' AND L.id_objet=$id_message AND L.id_auteur!=$connect_id_auteur AND L.id_auteur=A.id_auteur");
foreach ($auteurs as $k => $row_auteurs) {
$id_auteur = $row_auteurs['id_auteur'];
$auteurs[$k] = "<a href='" . generer_url_ecrire("auteur","id_auteur=$id_auteur") . "'>".typo($row_auteurs['nom'])."</a>";
}
if ($auteurs AND $type == 'normal') {
$s = "<span class='arial1 spip_x-small'>" . join(', ', $auteurs) . "</span>";
} else $s = "&nbsp;";
$vals[] = $s;
}
//
// Messages de forums
if (test_plugin_actif('forum')
AND $total_forum = sql_countsel('spip_forum', "id_message=$id_message")>0)
$vals[] = "($total_forum)";
else
$vals[] = "";
//
// Date
//
$s = affdate($date);
if ($rv == 'oui') {
$jour=journum($date);
$mois=mois($date);
$annee=annee($date);
$heure = heures($date).":".minutes($date);
if (affdate($date) == affdate($date_fin))
$heure_fin = heures($date_fin).":".minutes($date_fin);
else
$heure_fin = "...";
$s = "<div " .
http_style_background('rv-12.gif', "$spip_lang_left center no-repeat; padding-$spip_lang_left: 15px") .
"><a href='" . generer_url_ecrire("calendrier","type=jour&jour=$jour&mois=$mois&annee=$annee") . "'><b style='color: black;'>$s</b><br />$heure-$heure_fin</a></div>";
} else {
$s = "<span style='color: #999999'>$s</span>";
}
$vals[] = $s;
return $vals;
}
?>

2
lang/organiseur_fr.php

@ -21,6 +21,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'info_message_non_lu' => 'Nouveau message',
'info_1_message_nonlu' => '1 nouveau message',
'info_nb_messages_nonlus' => '@nb@ nouveaux messages',
'info_1_message_envoye' => '1 message envoyé',
'info_nb_messages_envoyes' => '@nb@ messages envoyés',
'icone_ecrire_nouveau_message' => 'Envoyer un nouveau message',
'icone_ecrire_nouvelle_annonce' => 'Envoyer une nouvelle annonce',
'icone_ecrire_nouveau_pensebete' => 'Ecrire une nouveau pense-bête',

11
organiseur_fonctions.php

@ -20,7 +20,7 @@ function critere_MESSAGES_destinataire_dist($idb, &$boucles, $crit) {
$boucle->join['auteurs_liens']=array("'".$boucle->id_table."'","'id_objet'","'".$boucle->primary."'","'auteurs_liens.objet=\'message\''");
$boucle->from['auteurs_liens']='spip_auteurs_liens';
$boucle->from_type['auteurs_liens'] = 'LEFT';
$boucle->where[] =
$where =
array("'OR'",
array(
"'AND'",
@ -36,6 +36,15 @@ function critere_MESSAGES_destinataire_dist($idb, &$boucles, $crit) {
)
)
);
$not = $crit->not;
if ($crit->cond)
$where = array("'?'","strlen($_auteur)", $where,"'1=1'");
if ($not)
$where = array("'NOT'",$where);
$boucle->where[] = $where;
}
function critere_MESSAGES_non_lu_dist($idb, &$boucles, $crit) {
$boucle = &$boucles[$idb];

13
organiseur_pipelines.php

@ -95,18 +95,7 @@ function organiseur_affiche_auteurs_interventions($flux){
AND $id_auteur != $GLOBALS['visiteur_session']['id_auteur']
AND autoriser('ecrire', '', '', $flux['args']['auteur'])
) {
include_spip('inc/presentation');
$out = "<div class='nettoyeur'>&nbsp;</div>";
$out .= debut_cadre_couleur('', true);
$vus = array();
$out .= afficher_ses_messages('<b>' . _T('info_discussion_cours') . '</b>', ", spip_auteurs_liens AS A, spip_auteurs_liens AS D", "A.id_auteur=".intval($GLOBALS['visiteur_session']['id_auteur'])." AND D.id_auteur=".intval($id_auteur)." AND statut='publie' AND type='normal' AND rv!='oui' AND A.objet='message' AND A.id_objet=M.id_message AND D.objet='message' AND D.id_objet=M.id_message", $vus, false, false);
$out .= afficher_ses_messages('<b>' . _T('info_vos_rendez_vous') . '</b>', ", spip_auteurs_liens AS A, spip_auteurs_liens AS D", "A.id_auteur=".intval($GLOBALS['visiteur_session']['id_auteur'])." AND D.id_auteur=".intval($id_auteur)." AND statut='publie' AND type='normal' AND rv='oui' AND date_fin > ".sql_quote(date('Y-m-d H:i:s'))." AND A.objet='message' AND A.id_objet=M.id_message AND D.objet='message' AND D.id_objet=M.id_message", $vus, false, false);
$out .= icone_horizontale(_T('info_envoyer_message_prive'), generer_action_auteur("editer_message","normal/$id_auteur"),"message-24.png");
$out .= fin_cadre_couleur(true);
$flux['data'] .= $out;
$flux['data'] .= recuperer_fond('prive/squelettes/inclure/organiseur-interventions',array('id_auteur'=>$id_auteur));
}
}
return $flux;

4
prive/objets/liste/messages-envoyes.html

@ -8,7 +8,7 @@
#ANCRE_PAGINATION
<div class="liste-objets messages">
<table class='spip liste'>
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_message,info_nb_messages}})</strong></caption>]
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{organiseur:info_1_message_envoye,organiseur:info_nb_messages_envoyes}})</strong></caption>]
<thead>
<tr class='first_row'>
<th class='type'>[(#TRI{type,<span title="<:organiseur:lien_trier_type|attribut_html:>">#</span>,ajax})]</th>
@ -20,7 +20,7 @@
</tr>
</thead>
<tbody>
<BOUCLE_mess_env(MESSAGES auteurs){id_auteur=#ENV{id_auteur}}{type?}{where?}{statut?}{recherche?}{tri #ENV{par,date_heure},#GET{defaut_tri}}{pagination #ENV{nb,10}}>
<BOUCLE_mess_env(MESSAGES){destinataire?#ENV{destinataire}}{id_auteur=#ENV{id_auteur}}{type?}{where?}{statut?}{recherche?}{tri #ENV{par,date_heure},#GET{defaut_tri}}{pagination #ENV{nb,10}}>
[(#SET{vu,[(#TYPE|=={pb}|ou{#VU|match{^(oui|pou)$}})]})]
<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})][(#GET{vu}|non)new]">
<td class='type'>[(#CHEMIN_IMAGE{#GET{icone_type}|table_valeur{#TYPE}|sinon{message-16.png}}|balise_img{#VAL{organiseur:info_type_message_}|concat{#TYPE}|_T})]</td>

6
prive/objets/liste/messages-recus.html

@ -4,8 +4,8 @@
id_article,1
}})
]#SET{icone_type,#ARRAY{pb,pensebete-16.png,affich,annonce-16.png}}
<BOUCLE_compte_non_lus(MESSAGES auteurs){destinataire #ENV{id_auteur}}{type!=pb}{type?}{where?}{statut?}{recherche?}{non_lu}>[(#NOM|vide)]</BOUCLE_compte_non_lus>
#SET{nonlus,#TOTAL_BOUCLE}
<BOUCLE_compte_non_lus(MESSAGES auteurs){destinataire #ENV{destinataire}}{id_auteur?}{type!=pb}{type?}{where?}{statut?}{recherche?}{non_lu}>[(#NOM|vide)]</BOUCLE_compte_non_lus>
#SET{nonlus,#ENV{nonlus,#TOTAL_BOUCLE}}
<//B_compte_non_lus>
<B_mess_rec>
#ANCRE_PAGINATION
@ -26,7 +26,7 @@
</tr>
</thead>
<tbody>
<BOUCLE_mess_rec(MESSAGES auteurs){destinataire #ENV{id_auteur}}{type?}{where?}{statut?}{recherche?}{tri #ENV{par,date_heure},#GET{defaut_tri}}{pagination #ENV{nb,10}}>
<BOUCLE_mess_rec(MESSAGES auteurs){destinataire?#ENV{destinataire}}{id_auteur?}{type?}{where?}{statut?}{recherche?}{tri #ENV{par,date_heure},#GET{defaut_tri}}{pagination #ENV{nb,10}}>
[(#SET{vu,[(#TYPE|=={pb}|ou{#VU|match{^(oui|pou)$}})]})]
<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})][(#GET{vu}|non)new]">
<td class='new'>[(#GET{vu}|?{'',#CHEMIN_IMAGE{pictonew-16.png}|balise_img{<:organiseur:info_message_non_lu:>}|inserer_attribut{title,<:organiseur:info_message_non_lu:>}})]</td>

1
prive/squelettes/inclure/organiseur-envoi.html

@ -2,5 +2,4 @@
<div class='nettoyeur'></div>
<INCLURE{fond=prive/objets/liste/messages-envoyes,id_auteur=#ENV{id_auteur},statut=redac,titre=<:info_message_en_redaction:>,nb=10,env,ajax} />
<INCLURE{fond=prive/objets/liste/messages-envoyes,id_auteur=#ENV{id_auteur},statut=publie,nb=50,env,ajax} />

5
prive/squelettes/inclure/organiseur-interventions.html

@ -0,0 +1,5 @@
<div class="nettoyeur"></div>
<INCLURE{fond=prive/objets/liste/messages-envoyes,id_auteur=#ENV{id_auteur},destinataire=#SESSION{id_auteur},statut=publie,type=normal,env,ajax} />
<INCLURE{fond=prive/objets/liste/messages-recus,id_auteur=#SESSION{id_auteur},destinataire=#ENV{id_auteur},statut=publie,type=normal,env,ajax} />
[(#URL_ECRIRE{message_edit,new=oui&destinataire=#ENV{id_auteur}}|icone_verticale{<:info_envoyer_message_prive:>,message-24.png,new,right})]

2
prive/squelettes/inclure/organiseur-reception.html

@ -1,6 +1,6 @@
#FORMULAIRE_RECHERCHE_ECRIRE{#SELF,ajax}
<div class='nettoyeur'></div>
<INCLURE{fond=prive/objets/liste/messages-recus,id_auteur=#ENV{id_auteur},statut=publie,nb=50,env,ajax} />
<INCLURE{fond=prive/objets/liste/messages-recus,destinataire=#ENV{id_auteur},statut=publie,nb=50,env,ajax} />
[(#URL_ECRIRE{message_edit,new=oui}|icone_verticale{<:organiseur:icone_ecrire_nouveau_message:>,message-24.png,new,right})]
[(#AUTORISER{envoyermessage,annonce}|oui)
[(#URL_ECRIRE{message_edit,new=oui&typemes=affich}|icone_verticale{<:organiseur:icone_ecrire_nouvelle_annonce:>,annonce-24.png,new,right})]

Loading…
Cancel
Save