diff --git a/_admin.php b/_admin.php new file mode 100644 index 0000000..c86ca13 --- /dev/null +++ b/_admin.php @@ -0,0 +1,16 @@ +addBehavior('adminBlogPreferencesForm', + array('emailOptionnelBehaviors', 'adminBlogPreferencesForm')); +$core->addBehavior('adminBeforeBlogSettingsUpdate', + array('emailOptionnelBehaviors', 'adminBeforeBlogSettingsUpdate')); \ No newline at end of file diff --git a/_define.php b/_define.php new file mode 100644 index 0000000..49672af --- /dev/null +++ b/_define.php @@ -0,0 +1,32 @@ +registerModule( + /* Name */ 'emailOptionnel', + /* Description*/ 'Make e-mail address optional in comments', + /* Author */ 'Oleksandr Syenchuk, Pierre Van Glabeke', + /* Version */ '0.4.6', + /* Properties */ + array( + 'permissions' => 'admin', + 'type' => 'plugin', + 'dc_min' => '2.6', + 'support' => 'http://forum.dotclear.org/viewtopic.php?pid=332948#p332948', + 'details' => 'http://plugins.dotaddict.org/dc2/details/emailOptionnel' + ) +); \ No newline at end of file diff --git a/_prepend.php b/_prepend.php new file mode 100644 index 0000000..4bdf325 --- /dev/null +++ b/_prepend.php @@ -0,0 +1,13 @@ +addBehavior('publicPrepend', + array('emailOptionnelBehaviors','publicPrepend')); +$core->addBehavior('publicBeforeCommentCreate', + array('emailOptionnelBehaviors','publicBeforeCommentCreate')); \ No newline at end of file diff --git a/behaviors.php b/behaviors.php new file mode 100644 index 0000000..3bc300c --- /dev/null +++ b/behaviors.php @@ -0,0 +1,88 @@ +blog->settings->addNamespace('emailoptionnel'); + $emailOptionnel = $core->blog->settings->emailoptionnel->enabled ? true : false; + echo "

".__('Optional e-mail address')."

\n". + "

\n". + "
\n"; + } + + public static function adminBeforeBlogSettingsUpdate($blog_settings) + { + $emailOptionnel = empty($_POST['emailOptionnel']) ? false : true; + + $blog_settings->addNamespace('emailoptionnel'); + $blog_settings->emailoptionnel->put( + 'enabled', + $emailOptionnel, + 'boolean', + 'Make e-mail address optional in comments'); + } + + public static function publicPrepend($core) + { + $core->blog->settings->addNamespace('emailoptionnel'); + + if (!isset($_POST['c_content']) + || !empty($_POST['preview']) + || !empty($_POST['c_mail']) + || !$core->blog->settings->emailoptionnel->enabled) { + return; + } + $_POST['c_mail'] = 'invalid@invalid'; + } + + public static function publicBeforeCommentCreate($cur) + { + global $core; + + $core->blog->settings->addNamespace('emailoptionnel'); + + $emailOptionnel = $core->blog->settings->emailoptionnel->enabled ? true : false; + + if ($emailOptionnel && $cur->comment_email == 'invalid@invalid') + { + $_ctx = &$GLOBALS['_ctx']; + + # désactive l'affichage du mail dans le template + $_ctx->comment_preview['mail'] = ''; + + # n'enregistre pas de mail dans la BDD + $cur->comment_email = ''; + + # n'enregistre pas le mail dans le cookie + + if (empty($_POST['c_remember'])) { + return; + } + + if (!empty($_COOKIE['comment_info'])) { + $cookie_info = explode("\n",$_COOKIE['comment_info']); + if (count($cookie_info) == 3) { + return; + } + } + + $c_cookie = array( + 'name' => $cur->comment_author, + 'mail' => $cur->comment_email, + 'site' => $cur->comment_site); + $c_cookie = serialize($c_cookie); + setcookie('comment_info',$c_cookie,strtotime('+3 month'),'/'); + } + } +} \ No newline at end of file diff --git a/locales/fr/main.po b/locales/fr/main.po new file mode 100644 index 0000000..7ff32a3 --- /dev/null +++ b/locales/fr/main.po @@ -0,0 +1,17 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Last-Translator: brol \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.5.7\n" + +msgid "Optional e-mail address" +msgstr "Adresse e-mail optionnelle" + +msgid "Make e-mail address optional in comments" +msgstr "Rendre la saisie de l'adresse e-mail optionnelle dans les commentaires"