uawdijnntqw1x1x1
IP : 216.73.216.217
Hostname : webm019.cluster129.gra.hosting.ovh.net
Kernel : Linux webm019.cluster129.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
OS : Linux
PATH:
/
home
/
checkyd
/
www
/
ecrire
/
.
/
..
/
local
/
..
/
config
/
..
/
7b5d0
/
forumvalide.php.tar
/
/
home/checkyd/www/plugins/notifications/notifications/forumvalide.php000064400000013722152525235120022172 0ustar00<?php /* * Plugin Notifications * (c) 2009-2012 SPIP * Distribue sous licence GPL * */ /** * Notification de message de forum proposé * * @package SPIP\Forum\Notifications **/ if (!defined("_ECRIRE_INC_VERSION")) { return; } /** * Cette notification s'exécute quand on valide un message 'prop'osé. * * On va notifier ceux qui ne l'ont * pas été à la notification forumposte (sachant que les deux peuvent se * suivre si le forum est validé directement ('pos' ou 'abo') * * @pipeline_appel notifications_destinataires * @see inc/forum_insert.php * * @param string $quoi * @param int $id_forum * @param array $options */ function notifications_forumvalide_dist($quoi, $id_forum, $options) { $t = sql_fetsel("*", "spip_forum", "id_forum=" . intval($id_forum)); if (!$t // forum sur un message prive : pas de notification ici (cron) or @$t['statut'] == 'perso' ) { return; } // plugin notification si present $prevenir_auteurs = isset($GLOBALS['notifications']['prevenir_auteurs']) and $GLOBALS['notifications']['prevenir_auteurs']; // sinon voie normale if ($t['objet'] == 'article' and $t['id_objet'] and !$prevenir_auteurs) { $s = sql_getfetsel('accepter_forum', 'spip_articles', "id_article=" . $t['id_objet']); if (!$s) { $s = substr($GLOBALS['meta']["forums_publics"], 0, 3); } $prevenir_auteurs = (strpos(@$GLOBALS['meta']['prevenir_auteurs'], ",$s,") !== false or @$GLOBALS['meta']['prevenir_auteurs'] === 'oui'); // compat } include_spip('inc/texte'); include_spip('inc/filtres'); include_spip('inc/autoriser'); include_spip('inc/session'); // Qui va-t-on prevenir ? $tous = array(); // Ne pas ecrire au posteur du message, ni au moderateur qui valide le forum, $pasmoi = array_filter(array($t['email_auteur'], session_get('email'))); // 1. Les auteurs de l'objet lie au forum // seulement ceux qui n'ont // pas le droit de le moderer (les autres l'ont recu plus tot) if ($prevenir_auteurs) { $result = sql_select("auteurs.*", "spip_auteurs AS auteurs, spip_auteurs_liens AS lien", "lien.objet=" . sql_quote($t['objet']) . " AND lien.id_objet=" . intval($t['id_objet']) . " AND auteurs.id_auteur=lien.id_auteur"); while ($qui = sql_fetch($result)) { if ($qui['email']) { if (!autoriser('modererforum', $t['objet'], $t['id_objet'], $qui['id_auteur'])) { $tous[] = $qui['email']; } else // Ne pas ecrire aux auteurs deja notifies precedemment { $pasmoi[] = $qui['email']; } } } } // Prevenir les admins restreints de la rubrique et des parentes lors de messages de forum d'article ou de rubrique // c'est ici because dans notifications_pipelines la fonction de dédoublonnage le fait sauter (?) if (!empty($GLOBALS['notifications']['forums_admins_restreints'])) { if ($t['objet'] == 'rubrique') { $id_rubrique = $t['id_objet']; } if ($t['objet'] == 'article') { include_spip('base/abstract_sql'); $r = sql_fetsel("id_rubrique", "spip_articles", "id_article=" . intval($t['id_objet'])); $id_rubrique = $r['id_rubrique']; } if (!empty($GLOBALS['notifications']['forums_limiter_rubriques'])) { $limites = $GLOBALS['notifications']['forums_limiter_rubriques']; $forums_limiter_rubriques = explode(",", $limites); } else { $forums_limiter_rubriques = array($id_rubrique); } if (in_array($id_rubrique, $forums_limiter_rubriques)) { while ($id_rubrique) { $hierarchie[] = $id_rubrique; $res = sql_fetsel("id_parent", "spip_rubriques", "id_rubrique=" . intval($id_rubrique)); if (!$res) { // rubrique inexistante $id_rubrique = 0; break; } $id_parent = $res['id_parent']; $id_rubrique = $id_parent; } //les admins de la rub et de ses parents $result = sql_select( "auteurs.email,auteurs.id_auteur,lien.id_objet as id_rubrique", "spip_auteurs AS auteurs JOIN spip_auteurs_liens AS lien ON auteurs.id_auteur=lien.id_auteur ", "lien.objet='rubrique' AND " . sql_in('lien.id_objet', sql_quote($hierarchie)) . " AND auteurs.statut='0minirezo'"); while ($qui = sql_fetch($result)) { $tous[] = $qui['email']; } } } ///////////////////////////// $options['forum'] = $t; $destinataires = pipeline('notifications_destinataires', array( 'args' => array( 'quoi' => $quoi, 'id' => $id_forum, 'options' => $options ), 'data' => $tous )); // Nettoyer le tableau // en enlevant les exclus notifications_nettoyer_emails($destinataires, $pasmoi); // // Envoyer les emails // $email_notification_forum = charger_fonction('email_notification_forum', 'inc'); foreach ($destinataires as $email) { $contexte = array('notification_email' => $email, 'indiquer_email_auteur' => 'non'); $texte = $email_notification_forum($t, $email, $contexte); notifications_envoyer_mails_texte_ou_html($email, $texte); } // une liste d'adresses renseignées dans config possiblement liste de diffusion if (!empty($GLOBALS['notifications']['forums_liste'])) { //construction du mail pour envoyer_mail $titre = "$t[titre]"; $sujet = "" . _T('forum:info_1_message_forum') . " '$titre'"; include_spip('inc/config'); $charset = lire_config('charset'); if ($GLOBALS['meta']['facteur_adresse_envoi'] == 'oui' AND $GLOBALS['meta']['facteur_adresse_envoi_email']) { $from_email = $GLOBALS['meta']['facteur_adresse_envoi_email']; } else { $from_email = $email_webmaster; } // nom denvoi depuis config facteur if ($GLOBALS['meta']['facteur_adresse_envoi'] == 'oui' AND $GLOBALS['meta']['facteur_adresse_envoi_nom']) { $from_nom = $GLOBALS['meta']['facteur_adresse_envoi_nom']; } foreach (explode(',', $GLOBALS['notifications']['forums_liste']) as $to_email) { $email_notification_forum = charger_fonction('email_notification_forum', 'inc'); $body = $email_notification_forum($t, $to_email); include_spip('facteur_fonctions'); $body = facteur_mail_html2text($body); $envoyer_mail = charger_fonction('envoyer_mail', 'inc/'); $envoyer_mail($to_email, $sujet, $body, $from_email, $headers); } } /////////////////////////// }
/home/checkyd/www/ecrire/./../local/../config/../7b5d0/forumvalide.php.tar