[PLUGINS] +abomailman
[ptitvelo/web/www.git] / www / plugins / facteur / formulaires / configurer_facteur.php
diff --git a/www/plugins/facteur/formulaires/configurer_facteur.php b/www/plugins/facteur/formulaires/configurer_facteur.php
new file mode 100644 (file)
index 0000000..0aa321b
--- /dev/null
@@ -0,0 +1,171 @@
+<?php\r
+/*\r
+ * Plugin Facteur 2\r
+ * (c) 2009-2011 Collectif SPIP\r
+ * Distribue sous licence GPL\r
+ *\r
+ */\r
+\r
+if (!defined("_ECRIRE_INC_VERSION")) return;\r
+\r
+function formulaires_configurer_facteur_charger_dist(){\r
+       $valeurs = array(\r
+               'facteur_adresse_envoi' => $GLOBALS['meta']['facteur_adresse_envoi'],\r
+               'facteur_adresse_envoi_nom' => $GLOBALS['meta']['facteur_adresse_envoi_nom'],\r
+               'facteur_adresse_envoi_email' => $GLOBALS['meta']['facteur_adresse_envoi_email'],\r
+               'facteur_smtp' => $GLOBALS['meta']['facteur_smtp'],\r
+               'facteur_smtp_host' => $GLOBALS['meta']['facteur_smtp_host'],\r
+               'facteur_smtp_port' => $GLOBALS['meta']['facteur_smtp_port']?$GLOBALS['meta']['facteur_smtp_port']:'25',\r
+               'facteur_smtp_auth' => $GLOBALS['meta']['facteur_smtp_auth'],\r
+               'facteur_smtp_username' => $GLOBALS['meta']['facteur_smtp_username'],\r
+               'facteur_smtp_password' => $GLOBALS['meta']['facteur_smtp_password'],\r
+               'facteur_smtp_secure' => $GLOBALS['meta']['facteur_smtp_secure'],\r
+               'facteur_smtp_sender' => $GLOBALS['meta']['facteur_smtp_sender'],\r
+               'facteur_filtre_images' => $GLOBALS['meta']['facteur_filtre_images'],\r
+               'facteur_filtre_iso_8859' => $GLOBALS['meta']['facteur_filtre_iso_8859'],\r
+               '_enable_smtp_secure' => (intval(phpversion()) == 5)?' ':'',\r
+               'facteur_cc' => $GLOBALS['meta']['facteur_cc'],\r
+               'facteur_bcc' => $GLOBALS['meta']['facteur_bcc'],\r
+       'tester' => '',\r
+       );\r
+\r
+       return $valeurs;\r
+}\r
+\r
+function formulaires_configurer_facteur_verifier_dist(){\r
+       $erreurs = array();\r
+       if ($email = _request('facteur_adresse_envoi_email')\r
+         AND !email_valide($email)) {\r
+               $erreurs['facteur_adresse_envoi_email'] = _T('form_email_non_valide');\r
+               set_request('facteur_adresse_envoi','oui');\r
+       }\r
+       if (_request('facteur_smtp')=='oui'){\r
+               if (!($h=_request('facteur_smtp_host')))\r
+                       $erreurs['facteur_smtp_host'] = _T('info_obligatoire');\r
+               else {\r
+                       $regexp_ip_valide = '#^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))|((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$#'; \r
+                       // Source : http://www.d-sites.com/2008/10/09/regex-ipv4-et-ipv6/\r
+                       if (!preg_match($regexp_ip_valide,$h)){ // ce n'est pas une IP\r
+                               if(!preg_match(';^([^.\s/?:]+[.]){0,2}[^.\s/?:]+$;',$h)\r
+                                 OR gethostbyname($h)==$h)\r
+                                       $erreurs['facteur_smtp_host'] = _T('facteur:erreur_invalid_host');\r
+                       }\r
+                       else {\r
+                               if (gethostbyaddr($h)==$h)\r
+                                       $erreurs['facteur_smtp_host'] = _T('facteur:erreur_invalid_host');                              \r
+                       }\r
+               }\r
+               if (!($p=_request('facteur_smtp_port')))\r
+                       $erreurs['facteur_smtp_port'] = _T('info_obligatoire');\r
+               elseif(!preg_match(';^[0-9]+$;',$p) OR !intval($p))\r
+                       $erreurs['facteur_smtp_port'] = _T('facteur:erreur_invalid_port');\r
+\r
+               if (!_request('facteur_smtp_auth'))\r
+                       $erreurs['facteur_smtp_auth'] = _T('info_obligatoire');\r
+\r
+               if (_request('facteur_smtp_auth')=='oui'){\r
+                       if (!_request('facteur_smtp_username'))\r
+                               $erreurs['facteur_smtp_username'] = _T('info_obligatoire');\r
+                       if (!_request('facteur_smtp_password'))\r
+                               $erreurs['facteur_smtp_password'] = _T('info_obligatoire');\r
+               }\r
+       }\r
+       if ($emailcc = _request('facteur_cc')\r
+         AND !email_valide($emailcc)) {\r
+               $erreurs['facteur_cc'] = _T('form_email_non_valide');\r
+       }\r
+       if ($emailbcc = _request('facteur_bcc')\r
+         AND !email_valide($emailbcc)) {\r
+               $erreurs['facteur_bcc'] = _T('form_email_non_valide');\r
+       }\r
+       \r
+       if(count($erreurs)>0){\r
+               $erreurs['message_erreur'] = _T('facteur:erreur_generale');\r
+       }\r
+       return $erreurs;\r
+}\r
+\r
+function formulaires_configurer_facteur_traiter_dist(){\r
+       include_spip('inc/meta');\r
+\r
+       $facteur_adresse_envoi = _request('facteur_adresse_envoi');\r
+       ecrire_meta('facteur_adresse_envoi', ($facteur_adresse_envoi=='oui')?'oui':'non');\r
+\r
+       $facteur_adresse_envoi_nom = _request('facteur_adresse_envoi_nom');\r
+       ecrire_meta('facteur_adresse_envoi_nom', $facteur_adresse_envoi_nom?$facteur_adresse_envoi_nom:'');\r
+\r
+       $facteur_adresse_envoi_email = _request('facteur_adresse_envoi_email');\r
+       ecrire_meta('facteur_adresse_envoi_email', $facteur_adresse_envoi_email?$facteur_adresse_envoi_email:'');\r
+\r
+       $facteur_smtp = _request('facteur_smtp');\r
+       ecrire_meta('facteur_smtp', ($facteur_smtp=='oui')?'oui':'non');\r
+\r
+       $facteur_smtp_host = _request('facteur_smtp_host');\r
+       ecrire_meta('facteur_smtp_host', $facteur_smtp_host?$facteur_smtp_host:'');\r
+\r
+       $facteur_smtp_port = _request('facteur_smtp_port');\r
+       ecrire_meta('facteur_smtp_port', strlen($facteur_smtp_port)?intval($facteur_smtp_port):'');\r
+\r
+       $facteur_smtp_auth = _request('facteur_smtp_auth');\r
+       ecrire_meta('facteur_smtp_auth', ($facteur_smtp_auth=='oui')?'oui':'non');\r
+\r
+       $facteur_smtp_username = _request('facteur_smtp_username');\r
+       ecrire_meta('facteur_smtp_username', $facteur_smtp_username);\r
+\r
+       $facteur_smtp_password = _request('facteur_smtp_password');\r
+       ecrire_meta('facteur_smtp_password', $facteur_smtp_password);\r
+\r
+       if (intval(phpversion()) == 5) {\r
+               $facteur_smtp_secure = _request('facteur_smtp_secure');\r
+               ecrire_meta('facteur_smtp_secure', in_array($facteur_smtp_secure,array('non','ssl','tls'))?$facteur_smtp_secure:'non');\r
+       }\r
+\r
+       $facteur_smtp_sender = _request('facteur_smtp_sender');\r
+       ecrire_meta('facteur_smtp_sender', $facteur_smtp_sender);\r
+\r
+       ecrire_meta('facteur_filtre_images', intval(_request('facteur_filtre_images')));\r
+       ecrire_meta('facteur_filtre_iso_8859', intval(_request('facteur_filtre_iso_8859')));\r
+\r
+       $facteur_cc = _request('facteur_cc');\r
+       ecrire_meta('facteur_cc', $facteur_cc?$facteur_cc:'');\r
+\r
+       $facteur_bcc = _request('facteur_bcc');\r
+       ecrire_meta('facteur_bcc', $facteur_bcc?$facteur_bcc:'');\r
+       \r
+       \r
+       $res = array('message_ok'=>_T('facteur:config_info_enregistree'));\r
+\r
+       // faut-il envoyer un message de test ?\r
+       if (_request('tester')){\r
+\r
+               if ($GLOBALS['meta']['facteur_adresse_envoi'] == 'oui'\r
+                 AND $GLOBALS['meta']['facteur_adresse_envoi_email'])\r
+                       $destinataire = $GLOBALS['meta']['facteur_adresse_envoi_email'];\r
+               else\r
+                       $destinataire = $GLOBALS['meta']['email_webmaster'];\r
+\r
+               if ((facteur_envoyer_mail_test($destinataire,_T('facteur:corps_email_de_test')))===true){\r
+                       // OK\r
+                       $res = array('message_ok'=>_T('facteur:email_test_envoye'));\r
+               }\r
+               else {\r
+                       // erreur\r
+                       $res = array('message_erreur'=>_T('facteur:erreur')._T('facteur:erreur_dans_log'));\r
+               }\r
+       }\r
+       \r
+       return $res;\r
+}\r
+\r
+function facteur_envoyer_mail_test($destinataire,$titre){\r
+       include_spip('classes/facteur');\r
+       $message_html   = recuperer_fond('emails/test_email_html', array());\r
+       $message_texte  = recuperer_fond('emails/test_email_texte', array());\r
+\r
+       // passer par envoyer_mail pour bien passer par les pipeline et avoir tous les logs\r
+       $envoyer_mail = charger_fonction('envoyer_mail','inc');\r
+       $retour = $envoyer_mail($destinataire, $titre, array('html'=>$message_html,'texte'=>$message_texte));\r
+\r
+       return $retour?true:false;\r
+}\r
+?>\r