--- /dev/null
+<?php\r
+/**\r
+ * Plugin Abomailmanss\r
+ * (c) 2009-2011 SPIP\r
+ * Distribue sous licence GPL\r
+ *\r
+ */\r
+\r
+if (!defined("_ECRIRE_INC_VERSION")) return;\r
+include_spip('inc/abomailmans');\r
+include_spip('inc/distant');\r
+\r
+/**\r
+ * Les abomailmans de chaque liste peuvent se faire par cron\r
+ * base sur les champs remplis de chaque liste\r
+ * automatique tout les /periodicite/ jours\r
+ * @param unknown_type $time\r
+ */\r
+function genie_abomailmans_envois_dist($time) {\r
+ \r
+ /**\r
+ * Les listes dont la date_envoi < maintenant+periodicite\r
+ * pour tester on peut mettre a MINUTE penser a remettre a DAY !!\r
+ */\r
+ $where = "periodicite!='' AND desactive='0' AND email!=''\r
+ AND date_envoi < DATE_SUB(NOW(), INTERVAL periodicite DAY)"; \r
+ $id_liste = sql_getfetsel("id_abomailman", "spip_abomailmans", $where, '', "date_envoi", "1");\r
+ \r
+ if ($id_liste) {\r
+ spip_log("il faut traiter liste id=$id_liste","abomailmans");\r
+ $res2 = liste_a_jour($id_liste);\r
+ } else $res2 = true;\r
+ \r
+ /**\r
+ * nul, si la tache n'a rien a faire\r
+ * positif, si la tache a ete traitee\r
+ * negatif, si la tache a commence, mais doit se poursuivre. \r
+ * Cela permet d'effectuer des taches par lots (pour eviter des timeout sur les executions des scripts PHP \r
+ * a cause de traitements trop longs).\r
+ * Dans ce cas la, le nombre negatif indique correspond au nombre de secondes d'intervalle \r
+ * pour la prochaine execution.\r
+ */\r
+ return ($res1 OR $res2) ? 0 : $id_liste;\r
+} \r
+ \r
+ \r
+\r
+function liste_a_jour($id_liste) {\r
+ $envoi_ok=true;\r
+ $t = sql_fetsel("*", "spip_abomailmans", "id_abomailman=$id_liste");\r
+ if(!$t) { \r
+ spip_log("requete null ...","abomailmans");\r
+ return;\r
+ } else spip_log("envoi teste avec cron abomailmans","abomailmans");\r
+ \r
+ $datas = array();\r
+ $nom_site = lire_meta("nom_site");\r
+ $email_webmaster = lire_meta("email_webmaster");\r
+ $charset = lire_meta('charset');\r
+\r
+\r
+ $sujet=$t['titre']; \r
+ $date_envoi=$t['date_envoi']; \r
+ $email_receipt=$t['email'];\r
+ $modele_defaut=$t['modele_defaut'];\r
+ \r
+ $recuptemplate = explode('&',$modele_defaut);\r
+ \r
+ include_spip('abomailmans_fonctions');\r
+ $paramplus = recup_param($modele_defaut); //pour url\r
+ $periodicite=intval($t['periodicite']);\r
+\r
+ /**\r
+ * la page a envoyer doit etre testee a maintenant moins periodicite\r
+ */\r
+ $time = time() - (3600 * 24 * $periodicite);\r
+\r
+ /**\r
+ * construction du query\r
+ */\r
+ parse_str($paramplus,$query);\r
+ $query['id_abomailman'] = $t['id_abomailman'];\r
+ $query['template'] = $recuptemplate[0];\r
+ $query['date'] = date('Y-m-d H:i:s', $time);\r
+\r
+ /**\r
+ * on peut verifier le fond grace à l'url\r
+ */\r
+ $url_genere = generer_url_public('abomailman_template',$query,'&'); \r
+ $fond = recuperer_fond('abomailman_template',$query);\r
+\r
+ $body = array(\r
+ 'html'=>$fond,\r
+ ); \r
+ /* Format Texte */\r
+ $query['envoi_txt'] = "oui";\r
+ $body['texte'] = recuperer_fond('abomailman_template',$query);\r
+\r
+ //Si la page renvoie un contenu\r
+ if (strlen($fond) > 10) {\r
+ \r
+ // email denvoi depuis config facteur\r
+ if ($GLOBALS['meta']['facteur_adresse_envoi'] == 'oui'\r
+ AND $GLOBALS['meta']['facteur_adresse_envoi_email'])\r
+ $from_email = $GLOBALS['meta']['facteur_adresse_envoi_email'];\r
+ else\r
+ $from_email = $email_webmaster;\r
+ // nom denvoi depuis config facteur\r
+ if ($GLOBALS['meta']['facteur_adresse_envoi'] == 'oui'\r
+ AND $GLOBALS['meta']['facteur_adresse_envoi_nom'])\r
+ $from_nom = $GLOBALS['meta']['facteur_adresse_envoi_nom'];\r
+ else\r
+ $from_nom = $nom_site;\r
+ \r
+ if (abomailman_mail($from_nom, $from_email, "", $email_receipt, $sujet,$body, true, $charset)) {\r
+ spip_log("envoi ok = $url_genere tous les $periodicite jours sujet =".$sujet,"abomailmans");\r
+ } else {\r
+ spip_log("!! envoi nok = $url_genere tous les $periodicite jours sujet =".$sujet,"abomailmans."._LOG_ERREUR);\r
+ $envoi_ok=false;\r
+ }\r
+ }\r
+ else {\r
+ spip_log("maintenant=".date('Y-m-d H:i:s', time())." date demande = ".$query['date']." non envoye =$url_genere : rien de neuf depuis $periodicite jours","abomailmans"); \r
+ }\r
+ \r
+ if($envoi_ok) {\r
+ // Noter que l'envoi est OK meme si envoi echoue faute de contenu, on reessaiera dans /periodicite/ jours\r
+ sql_updateq("spip_abomailmans", array("date_envoi" => date('Y-m-d H:i:s', time())), "id_abomailman=".$t['id_abomailman']);\r
+ }\r
+ return false; # c'est bon\r
+}\r
+\r
+?>
\ No newline at end of file