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"