X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fprofile.php;h=c47b3e6a1f473ea4b1356ce5041b438e4f0661a5;hb=f3da6d81799c3ee012f1ca5f86aac9fc01d5818e;hp=75ea8a38fb211a90d1f8904097b8cae85c2a9cb2;hpb=28bda7c53f25a3f23781d5014e8183ace1572102;p=platal.git diff --git a/modules/profile.php b/modules/profile.php index 75ea8a3..c47b3e6 100644 --- a/modules/profile.php +++ b/modules/profile.php @@ -37,7 +37,6 @@ class ProfileModule extends PLModule 'referent' => $this->make_hook('referent', AUTH_COOKIE), 'referent/search' => $this->make_hook('ref_search', AUTH_COOKIE), - 'trombi' => $this->make_hook('trombi', AUTH_COOKIE), 'groupes-x' => $this->make_hook('xnet', AUTH_COOKIE), 'vcard' => $this->make_hook('vcard', AUTH_COOKIE), @@ -124,29 +123,23 @@ class ProfileModule extends PLModule .'/'.S::v('forlife').'.jpg'; if (Env::has('upload')) { - if (isset($_FILES['userfile']['tmp_name']) && !is_uploaded_file($_FILES['userfile']['tmp_name'])) { - $page->trig('Une erreur s\'est produite lors du transfert du fichier'); - } elseif (strpos(trim(mime_content_type($_FILES['userfile']['tmp_name'])), 'image/') !== 0) { - $page->trig('Le fichier que tu as transmis n\'est pas une image.'); - } else { - $file = is_uploaded_file($_FILES['userfile']['tmp_name']) - ? $_FILES['userfile']['tmp_name'] - : Env::v('photo'); - if ($data = file_get_contents($file)) { - $myphoto = new PhotoReq(S::v('uid'), $data); - if ($myphoto->isValid()) { - $myphoto->submit(); - } - } else { - $page->trig('Fichier inexistant ou vide'); + $upload = new PlUpload(S::v('forlife'), 'photo'); + if (!$upload->upload($_FILES['userfile']) && !$upload->download(Env::v('photo'))) { + $page->trig('Une erreur est survenue lors du téléchargement du fichier'); + } else { + $myphoto = new PhotoReq(S::v('uid'), $upload); + if ($myphoto->isValid()) { + $myphoto->submit(); } } } elseif (Env::has('trombi')) { - $myphoto = new PhotoReq(S::v('uid'), - file_get_contents($trombi_x)); - if ($myphoto->isValid()) { - $myphoto->commit(); - $myphoto->clean(); + $upload = new PlUpload(S::v('forlife'), 'photo'); + if ($upload->copyFrom($trombi_x)) { + $myphoto = new PhotoReq(S::v('uid'), $upload); + if ($myphoto->isValid()) { + $myphoto->commit(); + $myphoto->clean(); + } } } elseif (Env::v('suppr')) { XDB::execute('DELETE FROM photo WHERE uid = {?}', @@ -161,8 +154,8 @@ class ProfileModule extends PLModule } $sql = XDB::query('SELECT COUNT(*) FROM requests - WHERE user_id={?} AND type="photo"', - S::v('uid')); + WHERE user_id={?} AND type="photo"', + S::v('uid')); $page->assign('submited', $sql->fetchOneCell()); $page->assign('has_trombi_x', file_exists($trombi_x)); } @@ -211,8 +204,8 @@ class ProfileModule extends PLModule $new = Env::v('modif') == 'new'; $user = get_user_details($login, S::v('uid'), $view); - require_once('url_catcher.inc.php'); - $user['freetext'] = url_catcher($user['freetext'], false); + $user['freetext'] = MiniWiki::WikiToHTML($user['freetext']); + $user['cv'] = MiniWiki::WikiToHTML($user['cv']); $title = $user['prenom'] . ' ' . empty($user['nom_usage']) ? $user['nom'] : $user['nom_usage']; $page->assign('xorg_title', $title); @@ -259,6 +252,7 @@ class ProfileModule extends PLModule $page->assign('virtualalias', $res->fetchOneCell()); $page->addJsLink('close_on_esc.js'); + header('Last-Modified: ' . date('r', strtotime($user['date']))); } function handler_p_edit(&$page, $opened_tab = 'general') @@ -270,7 +264,7 @@ class ProfileModule extends PLModule $page->addCssLink('profil.css'); $page->assign('xorg_title', 'Polytechnique.org - Mon Profil'); - require_once 'tabs.inc.php'; + require_once dirname(__FILE__) . '/profile/tabs.inc.php'; require_once 'profil.func.inc.php'; require_once 'synchro_ax.inc.php'; @@ -282,7 +276,11 @@ class ProfileModule extends PLModule } if (Post::v('add_to_nl')) { require_once 'newsletter.inc.php'; - subscribe_nl(); + NewsLetter::subscribe(); + } + if (Post::v('add_to_ax')) { + require_once dirname(__FILE__) . '/axletter/axletter.inc.php'; + AXLetter::subscribe(); } if (Post::v('add_to_promo')) { $r = XDB::query('SELECT id FROM groupex.asso WHERE diminutif = {?}', @@ -294,6 +292,18 @@ class ProfileModule extends PLModule $mmlist = new MMList(S::v('uid'), S::v('password')); $mmlist->subscribe("promo".S::v('promo')); } + if (Post::v('sub_ml')) { + $subs = array_keys(Post::v('sub_ml')); + $current_domain = null; + foreach ($subs as $list) { + list($sub, $domain) = explode('@', $list); + if ($domain != $current_domain) { + $current_domain = $domain; + $client = new MMList(S::v('uid'), S::v('password'), $domain); + } + $client->subscribe($sub); + } + } if (is_ax_key_missing()) { $page->assign('no_private_key', true); @@ -653,29 +663,6 @@ class ProfileModule extends PLModule } } - function handler_trombi(&$page, $promo = null) - { - $page->changeTpl('profile/trombipromo.tpl'); - $page->assign('xorg_title', 'Polytechnique.org - Trombi Promo'); - - if (is_null($promo)) { - return; - } - - $this->promo = $promo = intval($promo); - - if ($promo >= 1900 && ($promo < intval(date('Y')) || ($promo == intval(date('Y')) && intval(date('m')) >= 9)) - || ($promo == -1 && S::has_perms())) - { - $trombi = new Trombi(array($this, '_trombi_getlist')); - $trombi->hidePromo(); - $trombi->setAdmin(); - $page->assign_by_ref('trombi', $trombi); - } else { - $page->trig('Promotion incorrecte (saisir au format YYYY). Recommence.'); - } - } - function handler_xnet(&$page) { $page->changeTpl('profile/groupesx.tpl'); @@ -703,7 +690,6 @@ class ProfileModule extends PLModule $x = substr($x, 0, strlen($x) - 4); } - require_once('vcard.inc.php'); $vcard = new VCard($x); $vcard->do_page($page); }