Merge remote branch 'origin/xorg/maint' into xorg/1.0.2/master
[platal.git] / modules / xnetgrp.php
index 4fded5f..a558cbf 100644 (file)
@@ -193,7 +193,7 @@ class XnetGrpModule extends PLModule
                              flags={?}
                       WHERE  id={?}",
                       Post::v('nom'), Post::v('diminutif'),
-                      Post::v('cat'), Post::i('dom'),
+                      Post::v('cat'), (Post::i('dom') == 0) ? null : Post::i('dom'),
                       Post::v('descr'), $site,
                       Post::v('mail'), Post::v('resp'),
                       Post::v('forum'), Post::v('mail_domain'),
@@ -249,8 +249,7 @@ class XnetGrpModule extends PLModule
         global $globals;
 
         $page->changeTpl('xnetgrp/mail.tpl');
-        $mmlist = new MMList(S::v('uid'), S::v('password'),
-                           $globals->asso('mail_domain'));
+        $mmlist = new MMList(S::user(), $globals->asso('mail_domain'));
         $page->assign('listes', $mmlist->get_lists());
         $page->assign('user', S::user());
         $page->addJsLink('ajax.js');
@@ -401,13 +400,13 @@ class XnetGrpModule extends PLModule
             $mailer->setSubject('[' . $globals->asso('nom') . '] Demande d\'inscription');
             $message = ($user->isFemale() ? 'Chère' : 'Cher') . " Camarade,\n"
                      . "\n"
-                     . "  Suite à ta demande d'adhésion à " . $globals->asso('nom') . ",\n"
-                     . "j'ai le plaisir de t'annoncer que ton inscription a été validée !\n"
+                     . "  Suite à ta demande d'adhésion à " . $globals->asso('nom')
+                     . "j'ai le plaisir de t'annoncer que ton inscription a été validée !\n"
                      . "\n"
                      . "Bien cordialement,\n"
                      . "-- \n"
                      . S::user()->fullName() . '.';
-            $mailer->setTxtBody($message);
+            $mailer->setTxtBody(wordwrap($message, 72));
             $mailer->send();
         }
     }
@@ -674,25 +673,34 @@ class XnetGrpModule extends PLModule
             }
         } else {
             // User is of type xnet.
-            list($firstname, $lastname) = explode('@', $email);
-            $hruid = User::makeHrid($firstname, $lastname, 'ext');
+            list($mbox, $domain) = explode('@', strtolower($email));
+            $hruid = User::makeHrid($mbox, $domain, 'ext');
             // User might already have an account (in another group for example).
             $user = User::get($hruid);
 
             // If the user has no account yet, creates new account: build names from email address.
             if (empty($user)) {
-                $display_name = ucwords(strtolower(substr($hruid, strpos('.', $hruid))));
-                $full_name = ucwords(strtolower(str_replace('.', ' ', substr($email, strpos('@', $email)))));
-                XDB::execute('INSERT INTO  accounts (hruid, display_name, full_name, email, type)
-                                   VALUES  ({?}, {?}, {?}, {?}, \'xnet\')',
-                             $hruid, $display_name, $full_name, $email);
+                $parts = explode('.', $mbox);
+                if (count($parts) == 1) {
+                    $display_name = $full_name = $directory_name = ucfirst($mbox);
+                } else {
+                    $firstname = ucfirst($parts[0]);
+                    $lastname = ucwords(implode(' ', array_slice($parts, 1)));
+                    $display_name = $firstname;
+                    $full_name = "$firstname $lastname";
+                    $directory_name = strtoupper($lastname) . " " . $firstname;
+                }
+                XDB::execute('INSERT INTO  accounts (hruid, display_name, full_name, directory_name,
+                                           email, type)
+                                   VALUES  ({?}, {?}, {?}, {?}, {?}, \'xnet\')',
+                             $hruid, $display_name, $full_name, $directory_name, $email);
                 $user = User::get($hruid);
             }
         }
 
         if ($user) {
-            XDB::execute('REPLACE INTO  group_members (uid, asso_id)
-                                VALUES  ({?}, {?})',
+            XDB::execute('INSERT IGNORE INTO  group_members (uid, asso_id)
+                                      VALUES  ({?}, {?})',
                          $user->id(), $globals->asso('id'));
             $this->removeSubscriptionRequest($user->id());
             pl_redirect('member/' . $user->login());
@@ -1139,7 +1147,6 @@ class XnetGrpModule extends PLModule
                                  $aid, $imgtype, $imgx, $imgy, $upload->getContents());
                 }
                 if ($art['xorg']) {
-                    require_once('validations.inc.php');
                     $article = new EvtReq("[{$globals->asso('nom')}] " . $art['titre'], $fulltext,
                                     $art['promo_min'], $art['promo_max'], $art['expiration'], "", S::user(),
                                     $upload);
@@ -1149,7 +1156,6 @@ class XnetGrpModule extends PLModule
                     $upload->rm();
                 }
                 if ($art['nl']) {
-                    require_once('validations.inc.php');
                     $article = new NLReq(S::user(), $globals->asso('nom') . " : " .$art['titre'],
                                          $art['texte'], $art['contact_html']);
                     $article->submit();
@@ -1165,9 +1171,10 @@ class XnetGrpModule extends PLModule
                            $art['id'], $globals->asso('id'));
                 if ($art['photo'] && $upload->exists()) {
                     list($imgx, $imgy, $imgtype) = $upload->imageInfo();
-                    XDB::execute("REPLACE INTO  group_announces_photo
-                                           SET  eid = {?}, attachmime = {?}, x = {?}, y = {?}, attach = {?}",
-                                 $aid, $imgtype, $imgx, $imgy, $upload->getContents());
+                    XDB::execute('INSERT INTO  group_announces_photo (eid, attachmime, attach, x, y)
+                                       VALUES  ({?}, {?}, {?}, {?}, {?})
+                      ON DUPLICATE KEY UPDATE  attachmime = VALUES(attachmime), attach = VALUES(attach), x = VALUES(x), y = VALUES(y)',
+                                 $aid, $imgtype, $upload->getContents(), $imgx, $imgy);
                     $upload->rm();
                 }
             }