Browse Source

PSR Ici aussi

svn/root/tags/plugins/organiseur/1.0.4
kent1@arscenic.info 5 years ago
parent
commit
333e7a5c58
  1. 2
      action/envoyer_message.php
  2. 11
      action/quete_calendrier_prive.php
  3. 35
      base/organiseur.php
  4. 4
      calendrier_quete.json_fonctions.php
  5. 11
      formulaires/configurer_messagerie_agenda.php
  6. 37
      formulaires/editer_message.php
  7. 2
      inc/messages.php
  8. 123
      inc/quete_calendrier.php
  9. 5
      notifications/instituermessage.php
  10. 10
      organiseur_administrations.php
  11. 27
      organiseur_autoriser.php
  12. 8
      organiseur_fonctions.php
  13. 2
      organiseur_ieconfig.php
  14. 36
      organiseur_pipelines.php

2
action/envoyer_message.php

@ -31,9 +31,7 @@ function action_envoyer_message_dist($id_message = null) {
and $type = sql_getfetsel('type', 'spip_messages', 'id_message=' . intval($id_message))
and autoriser('envoyermessage', $type, $id_message)
) {
include_spip('action/editer_objet');
objet_modifier('message', $id_message, array('statut' => 'publie'));
}
}

11
action/quete_calendrier_prive.php

@ -66,7 +66,8 @@ function action_quete_calendrier_prive_dist() {
// permettre aux plugins d'afficher leurs evenements dans ce calendrier
$evt = pipeline('quete_calendrier_prive',
$evt = pipeline(
'quete_calendrier_prive',
array(
'args' => array('start' => $start, 'end' => $end, 'quoi' => $quoi),
'data' => $evt,
@ -91,7 +92,7 @@ function convert_dateical($dateical) {
$s = substr($amj, 0, 4) . '-' . substr($amj, 4, 2) . '-' . substr($amj, 6, 2);
if (count($d) > 1) {
$his = end($d);
$s .= ' ' . substr($his, 0, 2) . ":" . substr($his, 2, 2) . ":" . substr($his, 4, 2);
$s .= ' ' . substr($his, 0, 2) . ':' . substr($his, 2, 2) . ':' . substr($his, 4, 2);
}
return $s;
@ -125,7 +126,7 @@ function convert_fullcalendar_quete_calendrier_interval($messages, $evt = array(
'start' => $date,
'end' => $date,
'url' => str_replace('&', '&', $e['URL']),
'className' => "calendrier-event " . $e['CATEGORIES'],
'className' => 'calendrier-event ' . $e['CATEGORIES'],
'description' => $e['DESCRIPTION'],
);
}
@ -161,7 +162,7 @@ function convert_fullcalendar_quete_calendrier_interval_rv($messages, $evt = arr
$seen[$e['url']] = true;
}
foreach ($messages as $amj => $l) {
foreach ($messages as $l) {
foreach ($l as $id => $e) {
$url = str_replace('&', '&', $e['URL']);
if (!isset($seen[$url])) {
@ -172,7 +173,7 @@ function convert_fullcalendar_quete_calendrier_interval_rv($messages, $evt = arr
'start' => convert_dateical($e['DTSTART']), //Ymd\THis
'end' => convert_dateical($e['DTEND']), // Ymd\THis
'url' => $url,
'className' => "calendrier-event " . $e['CATEGORIES'],
'className' => 'calendrier-event ' . $e['CATEGORIES'],
'description' => $e['DESCRIPTION'],
);
$seen[$url] = true;

35
base/organiseur.php

@ -23,8 +23,8 @@ if (!defined('_ECRIRE_INC_VERSION')) {
*/
function organiseur_declarer_tables_objets_sql($tables) {
$tables['spip_auteurs']['field']["imessage"] = "VARCHAR(3)";
$tables['spip_auteurs']['field']["messagerie"] = "VARCHAR(3)";
$tables['spip_auteurs']['field']['imessage'] = 'VARCHAR(3)';
$tables['spip_auteurs']['field']['messagerie'] = 'VARCHAR(3)';
$tables['spip_messages'] = array(
'page' => false,
@ -37,26 +37,28 @@ function organiseur_declarer_tables_objets_sql($tables) {
'info_nb_objets' => 'info_nb_messages',
'principale' => 'oui',
'champs_editables' => array('titre', 'texte', 'type', 'date_heure', 'date_fin', 'rv', 'id_auteur', 'destinataires'),
'champs_editables' => array(
'titre', 'texte', 'type', 'date_heure', 'date_fin', 'rv', 'id_auteur', 'destinataires'
),
'field' => array(
"id_message" => "bigint(21) NOT NULL",
"titre" => "text DEFAULT '' NOT NULL",
"texte" => "longtext DEFAULT '' NOT NULL",
'id_message' => 'bigint(21) NOT NULL',
'titre' => "text DEFAULT '' NOT NULL",
'texte' => "longtext DEFAULT '' NOT NULL",
// normal,
// pb (pense bete)
// affich (annonce publique)
"type" => "varchar(6) DEFAULT '' NOT NULL",
"date_heure" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
"date_fin" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
"rv" => "varchar(3) DEFAULT '' NOT NULL",
"statut" => "varchar(6) DEFAULT '0' NOT NULL",
"id_auteur" => "bigint(21) DEFAULT 0 NOT NULL",
"destinataires" => "text DEFAULT '' NOT NULL",
"maj" => "TIMESTAMP"
'type' => "varchar(6) DEFAULT '' NOT NULL",
'date_heure' => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
'date_fin' => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
'rv' => "varchar(3) DEFAULT '' NOT NULL",
'statut' => "varchar(6) DEFAULT '0' NOT NULL",
'id_auteur' => 'bigint(21) DEFAULT 0 NOT NULL',
'destinataires' => "text DEFAULT '' NOT NULL",
'maj' => 'TIMESTAMP'
),
'key' => array(
"PRIMARY KEY" => "id_message",
"KEY id_auteur" => "id_auteur"
'PRIMARY KEY' => 'id_message',
'KEY id_auteur' => 'id_auteur'
),
'titre' => "titre, '' AS lang",
'date' => 'date_heure',
@ -76,7 +78,6 @@ function organiseur_declarer_tables_objets_sql($tables) {
);
return $tables;
}
/**

4
calendrier_quete.json_fonctions.php

@ -6,4 +6,6 @@ if (!defined('_ECRIRE_INC_VERSION')) {
include_spip('inc/json');
function todate($t) { return date('Y-m-d H:i:s', $t); }
function todate($t) {
return date('Y-m-d H:i:s', $t);
}

11
formulaires/configurer_messagerie_agenda.php

@ -15,21 +15,20 @@ if (!defined('_ECRIRE_INC_VERSION')) {
}
function formulaires_configurer_messagerie_agenda_charger_dist() {
$valeurs = array();
foreach (array(
"messagerie_agenda",
) as $m) {
'messagerie_agenda',
) as $m) {
$valeurs[$m] = $GLOBALS['meta'][$m];
}
return $valeurs;
}
function formulaires_configurer_messagerie_agenda_traiter_dist() {
$res = array('editable' => true);
foreach (array(
"messagerie_agenda",
) as $m) {
'messagerie_agenda',
) as $m) {
if (!is_null($v = _request($m))) {
ecrire_meta($m, $v == 'oui' ? 'oui' : 'non');
}

37
formulaires/editer_message.php

@ -39,31 +39,36 @@ function formulaires_editer_message_charger_dist(
// les destinataires sont stockes en chaine separe par une virgule dans la base
if (strlen($valeurs['destinataires'])) {
$valeurs['destinataires'] = explode(",", $valeurs['destinataires']);
$valeurs['destinataires'] = explode(',', $valeurs['destinataires']);
}
if (!intval($id_message)) {
$valeurs['type'] = $type;
$valeurs['destinataires'] = ($destinataires ? explode(",", $destinataires) : array());
$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"] = "";
$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'] = '';
}
$id_message_origine = intval(_request("id_message_origine"));
$id_message_origine = intval(_request('id_message_origine'));
if (autoriser('voir', 'message', $id_message_origine)) {
$v = formulaires_editer_objet_charger('message', $id_message_origine, 0, 0, $retour, '');
$valeurs['titre'] = _T("organiseur:re") . " : " . $v['titre'];
$valeurs['texte'] = "<quote>" . $v['texte'] . "</quote>";
$valeurs['titre'] = _T('organiseur:re') . ' : ' . $v['titre'];
$valeurs['texte'] = '<quote>' . $v['texte'] . '</quote>';
}
// 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"])));
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'] = '';
@ -110,9 +115,10 @@ function formulaires_editer_message_verifier_dist(
if (
(!isset($erreurs['destinataires']) or !$erreurs['destinataires'])
and isset($oblis['destinataires'])
and $e = messagerie_verifier_destinataires(_request('destinataires'),
array('accepter_email' => ($accepter_email == 'oui')))
) {
and $e = messagerie_verifier_destinataires(
_request('destinataires'),
array('accepter_email' => ($accepter_email == 'oui'))
)) {
$erreurs['destinataires'] = implode(', ', $e);
}
@ -191,7 +197,8 @@ function formulaires_editer_message_traiter_dist(
include_spip('action/editer_objet');
objet_modifier('message', $id_message, array('statut' => 'publie', 'date_heure' => _request('date_heure')));
// apres en message envoyes, retourner sur la boite d'envoi plutot que sur le message
if (isset($res['redirect']) and ($res['redirect'] == generer_url_ecrire('message', 'id_message=' . $id_message))) {
if (isset($res['redirect'])
and ($res['redirect'] == generer_url_ecrire('message', 'id_message=' . $id_message))) {
$res['redirect'] = generer_url_ecrire('messages', 'quoi=envoi');
}
}

2
inc/messages.php

@ -186,7 +186,7 @@ function messagerie_marquer_message($id_auteur, $liste, $vu) {
// puis les marquer tous lus
objet_qualifier_liens(array('auteur' => $id_auteur), array('message' => $liste), array('vu' => $vu));
include_spip('inc/invalideur');
suivre_invalideur("message/" . implode(',', $liste));
suivre_invalideur('message/' . implode(',', $liste));
}
/**

123
inc/quete_calendrier.php

@ -45,7 +45,7 @@ function calendrier_categories($table, $num, $objet) {
return generer_calendrier_class($table, $num, $objet);
} else {
// cf agenda.css
$num = sql_getfetsel((($objet != 'id_breve') ? 'id_secteur' : 'id_rubrique') . " AS id", $table, "$objet=$num");
$num = sql_getfetsel((($objet != 'id_breve') ? 'id_secteur' : 'id_rubrique') . ' AS id', $table, "$objet=$num");
return 'calendrier-couleur' . (($num % 14) + 1);
}
@ -61,8 +61,8 @@ function calendrier_categories($table, $num, $objet) {
* Liste (date de la veille à 0h, date du lendemain à 23h59:59)
**/
function quete_calendrier_jour($annee, $mois, $jour) {
$avant = "'" . date("Y-m-d", mktime(0, 0, 0, $mois, $jour - 1, $annee)) . "'";
$apres = "'" . date("Y-m-d", mktime(1, 1, 1, $mois, $jour + 1, $annee)) .
$avant = "'" . date('Y-m-d', mktime(0, 0, 0, $mois, $jour - 1, $annee)) . "'";
$apres = "'" . date('Y-m-d', mktime(1, 1, 1, $mois, $jour + 1, $annee)) .
" 23:59:59'";
return array($avant, $apres);
@ -117,8 +117,13 @@ function quete_calendrier_interval($limites) {
**/
function quete_calendrier_interval_forums($limites, &$evenements) {
list($avant, $apres) = $limites;
$result = sql_select("DISTINCT titre, date_heure, id_forum", "spip_forum",
"date_heure >= $avant AND date_heure < $apres", '', "date_heure");
$result = sql_select(
'DISTINCT titre, date_heure, id_forum',
'spip_forum',
"date_heure >= $avant AND date_heure < $apres",
'',
'date_heure'
);
while ($row = sql_fetch($result)) {
$amj = date_anneemoisjour($row['date_heure']);
$id = $row['id_forum'];
@ -147,8 +152,13 @@ function quete_calendrier_interval_forums($limites, &$evenements) {
**/
function quete_calendrier_interval_articles($avant, $apres, &$evenements) {
$result = sql_select('id_article, titre, date, descriptif, chapo, lang', 'spip_articles',
"statut='publie' AND date >= $avant AND date < $apres", '', "date");
$result = sql_select(
'id_article, titre, date, descriptif, chapo, lang',
'spip_articles',
"statut='publie' AND date >= $avant AND date < $apres",
'',
'date'
);
// tables traduites
$objets = explode(',', $GLOBALS['meta']['multi_objets']);
@ -187,10 +197,14 @@ function quete_calendrier_interval_articles($avant, $apres, &$evenements) {
**/
function quete_calendrier_interval_rubriques($avant, $apres, &$evenements) {
$result = sql_select('DISTINCT R.id_rubrique, titre, descriptif, date',
$result = sql_select(
'DISTINCT R.id_rubrique, titre, descriptif, date',
'spip_rubriques AS R, spip_documents_liens AS L',
"statut='publie' AND date >= $avant AND date < $apres AND R.id_rubrique = L.id_objet AND L.objet='rubrique'", '',
"date");
"statut='publie' AND date >= $avant AND date < $apres
AND R.id_rubrique = L.id_objet AND L.objet='rubrique'",
'',
'date'
);
while ($row = sql_fetch($result)) {
$amj = date_anneemoisjour($row['date']);
$id = $row['id_rubrique'];
@ -218,8 +232,13 @@ function quete_calendrier_interval_rubriques($avant, $apres, &$evenements) {
* Format : `$evenements[$amj][] = Tableau de description ICS`
**/
function quete_calendrier_interval_breves($avant, $apres, &$evenements) {
$result = sql_select("id_breve, titre, date_heure, id_rubrique", 'spip_breves',
"statut='publie' AND date_heure >= $avant AND date_heure < $apres", '', "date_heure");
$result = sql_select(
'id_breve, titre, date_heure, id_rubrique',
'spip_breves',
"statut='publie' AND date_heure >= $avant AND date_heure < $apres",
'',
'date_heure'
);
while ($row = sql_fetch($result)) {
$amj = date_anneemoisjour($row['date_heure']);
$id = $row['id_breve'];
@ -254,31 +273,45 @@ function quete_calendrier_interval_rv($avant, $apres) {
if (!$connect_id_auteur) {
return $evenements;
}
$result = sql_select("M.id_message, M.titre, M.texte, M.date_heure, M.date_fin, M.type",
"spip_messages AS M LEFT JOIN spip_auteurs_liens AS L ON (L.id_objet=M.id_message)",
"((L.objet='message' AND (L.id_auteur=$connect_id_auteur OR M.type='affich')) OR (L.objet IS NULL AND M.id_auteur=$connect_id_auteur AND " . sql_in('M.type',
array('pb', 'affich')) . "))"
. " AND M.rv='oui' AND ((M.date_fin >= $avant OR M.date_heure >= $avant) AND M.date_heure <= $apres) AND M.statut='publie'",
"M.id_message", "M.date_heure");
$result = sql_select(
'M.id_message, M.titre, M.texte, M.date_heure, M.date_fin, M.type',
'spip_messages AS M LEFT JOIN spip_auteurs_liens AS L ON (L.id_objet=M.id_message)',
"((L.objet='message' AND (L.id_auteur=$connect_id_auteur OR M.type='affich'))
OR (L.objet IS NULL AND M.id_auteur=$connect_id_auteur AND " . sql_in(
'M.type',
array('pb', 'affich')
) . '))'
. " AND M.rv='oui'
AND ((M.date_fin >= $avant OR M.date_heure >= $avant)
AND M.date_heure <= $apres)
AND M.statut='publie'",
'M.id_message',
'M.date_heure'
);
while ($row = sql_fetch($result)) {
$date_heure = $row["date_heure"];
$date_fin = $row["date_fin"];
$type = $row["type"];
$date_heure = $row['date_heure'];
$date_fin = $row['date_fin'];
$type = $row['type'];
$id_message = $row['id_message'];
if ($type == "pb") {
if ($type == 'pb') {
$cat = 'calendrier-couleur2';
} else {
if ($type == "affich") {
if ($type == 'affich') {
$cat = 'calendrier-couleur4';
} else {
if ($type != "normal") {
if ($type != 'normal') {
$cat = 'calendrier-couleur12';
} else {
$cat = 'calendrier-couleur9';
$auteurs = array_map('array_shift',
sql_allfetsel("nom", "spip_auteurs AS A LEFT JOIN spip_auteurs_liens AS L ON L.id_auteur=A.id_auteur",
"(L.objet='message' AND L.id_objet=$id_message AND (A.id_auteur!=$connect_id_auteur))"));
$auteurs = array_map(
'array_shift',
sql_allfetsel(
'nom',
'spip_auteurs AS A LEFT JOIN spip_auteurs_liens AS L ON L.id_auteur=A.id_auteur',
"(L.objet='message' AND L.id_objet=$id_message AND (A.id_auteur!=$connect_id_auteur))"
)
);
}
}
}
@ -289,38 +322,36 @@ function quete_calendrier_interval_rv($avant, $apres) {
$jour_apres = substr($apres, 9, 2);
$mois_apres = substr($apres, 6, 2);
$annee_apres = substr($apres, 1, 4);
$ical_apres = date_anneemoisjour("$annee_apres-$mois_apres-" . sprintf("%02d", $jour_apres));
$ical_apres = date_anneemoisjour("$annee_apres-$mois_apres-" . sprintf('%02d', $jour_apres));
// Calcul pour les semaines a cheval sur deux mois
$j = 0;
$amj = date_anneemoisjour("$annee_avant-$mois_avant-" . sprintf("%02d", $j + ($jour_avant)));
$amj = date_anneemoisjour("$annee_avant-$mois_avant-" . sprintf('%02d', $j + ($jour_avant)));
while ($amj <= $ical_apres) {
if (!($amj == date_anneemoisjour($date_fin) and preg_match(",00:00:00,",
$date_fin))
) // Ne pas prendre la fin a minuit sur jour precedent
{
if (!($amj == date_anneemoisjour($date_fin) and preg_match(
',00:00:00,',
$date_fin
))) {
// Ne pas prendre la fin a minuit sur jour precedent
$evenements[$amj][$id_message] =
array(
'URL' => generer_url_ecrire("message", "id_message=$id_message"),
'URL' => generer_url_ecrire('message', "id_message=$id_message"),
'DTSTART' => date_ical($date_heure),
'DTEND' => date_ical($date_fin),
'DESCRIPTION' => $row['texte'],
'SUMMARY' => $row['titre'],
'CATEGORIES' => $cat,
'ATTENDEE' => (count($auteurs) == 0) ? '' : join($auteurs, ", ")
'ATTENDEE' => (count($auteurs) == 0) ? '' : join($auteurs, ', ')
);
}
$j++;
$ladate = date("Y-m-d", mktime(1, 1, 1, $mois_avant, ($j + $jour_avant), $annee_avant));
$ladate = date('Y-m-d', mktime(1, 1, 1, $mois_avant, ($j + $jour_avant), $annee_avant));
$amj = date_anneemoisjour($ladate);
}
}
return $evenements;
}
@ -339,14 +370,20 @@ function quete_calendrier_agenda($annee, $mois) {
if (!$connect_id_auteur) {
return $rv;
}
$date = date("Y-m-d", mktime(0, 0, 0, $mois, 1, $annee));
$date = date('Y-m-d', mktime(0, 0, 0, $mois, 1, $annee));
$mois = mois($date);
$annee = annee($date);
// rendez-vous personnels dans le mois
$result_messages = sql_select("M.titre AS summary, M.texte AS description, M.id_message AS uid, M.date_heure",
"spip_messages AS M, spip_auteurs_liens AS L",
"((L.id_auteur=$connect_id_auteur AND L.id_objet=M.id_message AND L.objet='message') OR M.type='affich') AND M.rv='oui' AND M.date_heure >='$annee-$mois-1' AND date_heure < DATE_ADD('$annee-$mois-1', INTERVAL 1 MONTH) AND M.statut='publie'");
$result_messages = sql_select(
'M.titre AS summary, M.texte AS description, M.id_message AS uid, M.date_heure',
'spip_messages AS M, spip_auteurs_liens AS L',
"((L.id_auteur=$connect_id_auteur AND L.id_objet=M.id_message AND L.objet='message') OR M.type='affich')
AND M.rv='oui'
AND M.date_heure >='$annee-$mois-1'
AND date_heure < DATE_ADD('$annee-$mois-1', INTERVAL 1 MONTH)
AND M.statut='publie'"
);
while ($row = sql_fetch($result_messages)) {
$rv[journum($row['date_heure'])] = $row;
}

5
notifications/instituermessage.php

@ -27,8 +27,7 @@ function notifications_instituermessage_dist($quoi, $id_message, $options = arra
// ne devrait jamais se produire
if ($options['statut'] == $options['statut_ancien']) {
spip_log("statut inchange", 'notifications');
spip_log('statut inchange', 'notifications');
return;
}
@ -54,7 +53,7 @@ function notifications_instituermessage_dist($quoi, $id_message, $options = arra
$ids = array_map('reset', $ids);
$where[] = sql_in('id_auteur', $ids);
}
$emails = sql_allfetsel('email', "spip_auteurs", $where);
$emails = sql_allfetsel('email', 'spip_auteurs', $where);
$emails = array_map('reset', $emails);
include_spip('inc/notifications');

10
organiseur_administrations.php

@ -41,12 +41,12 @@ function organiseur_upgrade($nom_meta_base_version, $version_cible) {
);
$maj['1.1.0'] = array(
array('sql_updateq', "spip_messages", array('statut' => 'prepa'), "statut='redac'"),
array('sql_updateq', 'spip_messages', array('statut' => 'prepa'), "statut='redac'"),
array('maj_tables', array('spip_messages')), // champ destinataires
);
$maj['1.1.1'] = array(
array('sql_alter', "TABLE spip_messages CHANGE id_auteur id_auteur bigint(21) DEFAULT 0 NOT NULL"),
array('sql_alter', 'TABLE spip_messages CHANGE id_auteur id_auteur bigint(21) DEFAULT 0 NOT NULL'),
);
$maj['1.1.2'] = array(
@ -64,9 +64,9 @@ function organiseur_upgrade($nom_meta_base_version, $version_cible) {
* @param string $nom_meta_base_version
*/
function organiseur_vider_tables($nom_meta_base_version) {
sql_drop_table("spip_messages");
sql_alter("TABLE spip_auteurs DROP imessage");
sql_alter("TABLE spip_auteurs DROP messagerie");
sql_drop_table('spip_messages');
sql_alter('TABLE spip_auteurs DROP imessage');
sql_alter('TABLE spip_auteurs DROP messagerie');
effacer_meta('messagerie_agenda');

27
organiseur_autoriser.php

@ -19,7 +19,8 @@ if (!defined('_ECRIRE_INC_VERSION')) {
*
* @return void
*/
function organiseur_autoriser() { }
function organiseur_autoriser() {
}
function autoriser_calendrier_menu_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
if ($GLOBALS['meta']['messagerie_agenda'] == 'oui') {
@ -72,11 +73,13 @@ function autoriser_message_supprimer_dist($faire, $type = '', $id = 0, $qui = nu
// si tous ses dest l'on supprime aussi
if (
$qui['id_auteur']
and sql_countsel('spip_messages',
"statut='publie' AND id_auteur=" . intval($qui['id_auteur']) . " AND id_message=" . intval($id))
and !sql_countsel('spip_auteurs_liens',
"objet='message' AND id_objet=" . intval($id) . " AND vu!='poub' AND id_auteur!=" . intval($qui['id_auteur']))
) {
and sql_countsel(
'spip_messages',
"statut='publie' AND id_auteur=" . intval($qui['id_auteur']) . ' AND id_message=' . intval($id)
) and !sql_countsel(
'spip_auteurs_liens',
"objet='message' AND id_objet=" . intval($id) . " AND vu!='poub' AND id_auteur!=" . intval($qui['id_auteur'])
)) {
return true;
}
@ -119,13 +122,17 @@ function autoriser_message_voir_dist($faire, $type = '', $id = 0, $qui = null, $
return false;
}
// message annonce ou message dont $qui est l'auteur : droit de le voir
if (sql_countsel('spip_messages',
'id_message=' . intval($id) . ' AND (type=\'affich\' OR id_auteur=' . intval($qui['id_auteur']) . ')')) {
if (sql_countsel(
'spip_messages',
'id_message=' . intval($id) . ' AND (type=\'affich\' OR id_auteur=' . intval($qui['id_auteur']) . ')'
)) {
return true;
}
// message dont $qui est destinataire
if (sql_countsel('spip_auteurs_liens',
'objet=\'message\' AND id_objet=' . intval($id) . " AND vu!='poub' AND id_auteur=" . intval($qui['id_auteur']))) {
if (sql_countsel(
'spip_auteurs_liens',
'objet=\'message\' AND id_objet=' . intval($id) . " AND vu!='poub' AND id_auteur=" . intval($qui['id_auteur'])
)) {
return true;
}

8
organiseur_fonctions.php

@ -105,8 +105,8 @@ function critere_MESSAGES_rv_a_venir_dist($idb, &$boucles, $crit) {
$id_table = $boucle->id_table;
$_dateref = organiseur_calculer_date_reference($idb, $boucles, $crit);
$_date = "$id_table." . (isset($boucle->show['date']) ? $boucle->show['date'] : "date_debut");
$op = $crit->not ? "<=" : ">";
$_date = "$id_table." . (isset($boucle->show['date']) ? $boucle->show['date'] : 'date_debut');
$op = $crit->not ? '<=' : '>';
$where = array("'$op'", "'$_date'", "sql_quote($_dateref)");
$boucle->where[] = $where;
@ -126,7 +126,7 @@ function critere_MESSAGES_rv_passe_dist($idb, &$boucles, $crit) {
$_dateref = organiseur_calculer_date_reference($idb, $boucles, $crit);
$_date = "$id_table.date_fin";
$op = $crit->not ? ">=" : "<";
$op = $crit->not ? '>=' : '<';
$where = array("'$op'", "'$_date'", "sql_quote($_dateref)");
$boucle->where[] = $where;
@ -145,7 +145,7 @@ function critere_MESSAGES_rv_en_cours_dist($idb, &$boucles, $crit) {
$id_table = $boucle->id_table;
$_dateref = organiseur_calculer_date_reference($idb, $boucles, $crit);
$_date_debut = "$id_table." . (isset($boucle->show['date']) ? $boucle->show['date'] : "date_debut");
$_date_debut = "$id_table." . (isset($boucle->show['date']) ? $boucle->show['date'] : 'date_debut');
$_date_fin = "$id_table.date_fin";
$where =

2
organiseur_ieconfig.php

@ -6,7 +6,7 @@
* @package SPIP\Organiseur\Pipelines
**/
if (!defined("_ECRIRE_INC_VERSION")) {
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}

36
organiseur_pipelines.php

@ -58,11 +58,13 @@ function organiseur_optimiser_base_disparus($flux) {
//
# supprimer les messages lies a un auteur disparu
$res = sql_select("M.id_message AS id",
"spip_messages AS M
LEFT JOIN spip_auteurs AS A
ON A.id_auteur=M.id_auteur",
"A.id_auteur IS NULL");
$res = sql_select(
'M.id_message AS id',
'spip_messages AS M
LEFT JOIN spip_auteurs AS A
ON A.id_auteur=M.id_auteur',
'A.id_auteur IS NULL'
);
$flux['data'] += optimiser_sansref('spip_messages', 'id_message', $res);
@ -82,18 +84,24 @@ function organiseur_alertes_auteur($flux) {
$id_auteur = $flux['args']['id_auteur'];
$result_messages = sql_allfetsel("M.id_message",
$result_messages = sql_allfetsel(
'M.id_message',
"spip_messages AS M LEFT JOIN spip_auteurs_liens AS L ON (L.objet='message' AND L.id_objet=M.id_message)",
"L.id_auteur=" . intval($id_auteur) . " AND vu='non' AND statut='publie' AND type='normal'");
'L.id_auteur=' . intval($id_auteur) . " AND vu='non' AND statut='publie' AND type='normal'"
);
$total_messages = count($result_messages);
if ($total_messages == 1) {
$row = reset($result_messages);
$id_message = $row['id_message'];
$flux['data'][] = "<a href='" . generer_url_ecrire("message",
"id_message=$id_message") . "'>" . _T('organiseur:info_1_message_nonlu') . "</a>";
$flux['data'][] = "<a href='" . generer_url_ecrire(
'message',
"id_message=$id_message"
) . "'>" . _T('organiseur:info_1_message_nonlu') . '</a>';
} elseif ($total_messages > 1) {
$flux['data'][] = "<a href='" . generer_url_ecrire("messages") . "'>" . _T('organiseur:info_nb_messages_nonlus',
array('nb' => $total_messages)) . "</a>";
$flux['data'][] = "<a href='" . generer_url_ecrire('messages') . "'>" . _T(
'organiseur:info_nb_messages_nonlus',
array('nb' => $total_messages)
) . '</a>';
}
return $flux;
@ -117,8 +125,10 @@ function organiseur_affiche_auteurs_interventions($flux) {
and $id_auteur != $GLOBALS['visiteur_session']['id_auteur']
and autoriser('repondre', 'message', '', $id_auteur)
) {
$flux['data'] .= recuperer_fond('prive/squelettes/inclure/organiseur-interventions',
array('id_auteur' => $id_auteur));
$flux['data'] .= recuperer_fond(
'prive/squelettes/inclure/organiseur-interventions',
array('id_auteur' => $id_auteur)
);
}
}

Loading…
Cancel
Save