X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fprofile.php;h=2e75801cbb68e99443f5b615adbe3ecfb18ce003;hb=6faa01866d4ce153ec9f8a3895eed3791a4edd23;hp=abfbefa94fd173086421a85fd537013bd5432cd9;hpb=2f8bacc215bab9d9e3401e73004574cfb0eb4540;p=platal.git diff --git a/modules/profile.php b/modules/profile.php index abfbefa..2e75801 100644 --- a/modules/profile.php +++ b/modules/profile.php @@ -57,6 +57,7 @@ class ProfileModule extends PLModule 'referent/country' => $this->make_hook('ref_country', AUTH_COOKIE, 'user', NO_AUTH), 'groupes-x' => $this->make_hook('xnet', AUTH_COOKIE), + 'groupes-x/logo' => $this->make_hook('xnetlogo', AUTH_PUBLIC), 'vcard' => $this->make_hook('vcard', AUTH_COOKIE, 'user', NO_HTTPS), 'admin/binets' => $this->make_hook('admin_binets', AUTH_MDP, 'admin'), @@ -72,7 +73,6 @@ class ProfileModule extends PLModule 'admin/corps_enum' => $this->make_hook('admin_corps_enum', AUTH_MDP, 'admin'), 'admin/corps_rank' => $this->make_hook('admin_corps_rank', AUTH_MDP, 'admin'), 'admin/names' => $this->make_hook('admin_names', AUTH_MDP, 'admin'), - ); } @@ -112,10 +112,10 @@ class ProfileModule extends PLModule // Display the photo, or a default one when not available. if ($photo_type && $photo_data != null) { - header('Content-type: image/' . $photo_type); + pl_cached_dynamic_content_headers("image/$photo_type"); echo $photo_data; } else { - header('Content-type: image/png'); + pl_cached_dynamic_content_headers("image/png"); echo file_get_contents(dirname(__FILE__).'/../htdocs/images/none.png'); } exit; @@ -133,8 +133,7 @@ class ProfileModule extends PLModule $img = $thumb ? dirname(__FILE__).'/../htdocs/images/medals/thumb/' . $res->fetchOneCell() : dirname(__FILE__).'/../htdocs/images/medals/' . $res->fetchOneCell(); - $type = mime_content_type($img); - header("Content-Type: $type"); + pl_cached_content_headers(mime_content_type($img)); echo file_get_contents($img); exit; } @@ -336,10 +335,10 @@ class ProfileModule extends PLModule if (!$user->ax_id) { $page->kill("Le matricule AX de {$user->hrid()} est inconnu"); } - http_redirect("http://www.polytechniciens.com/?page=AX_FICHE_ANCIEN&anc_id=" . $user->ax_id); + http_redirect("http://www.polytechniciens.com/?page=AX_FICHE_ANCIEN&ancc_id=" . $user->ax_id); } - function handler_p_edit(&$page, $user = null, $opened_tab = null, $mode = null) + function handler_p_edit(&$page, $user = null, $opened_tab = null, $mode = null, $success = null) { global $globals; @@ -384,26 +383,21 @@ class ProfileModule extends PLModule } $page->setTitle('Mon Profil'); + if (isset($success) && $success) { + $page->trigSuccess('Ton profil a bien été mis à jour.'); + } } function handler_education_js(&$page) { - header('Content-Type: text/javascript; charset=utf-8'); - header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); - header('Last-Modified:' . gmdate('D, d M Y H:i:s') . ' GMT'); - header('Cache-Control: no-cache, must-revalidate'); - header('Pragma: no-cache'); + pl_cached_content_headers("text/javascript", "utf-8"); $page->changeTpl('profile/education.js.tpl', NO_SKIN); - require_once "education.func.inc.php"; + require_once 'education.func.inc.php'; } function handler_grades_js(&$page) { - header('Content-Type: text/javascript; charset=utf-8'); - header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); - header('Last-Modified:' . gmdate('D, d M Y H:i:s') . ' GMT'); - header('Cache-Control: no-cache, must-revalidate'); - header('Pragma: no-cache'); + pl_cached_content_headers("text/javascript", "utf-8"); $page->changeTpl('profile/grades.js.tpl', NO_SKIN); $res = XDB::iterator("SELECT * FROM profile_medals_grades @@ -426,7 +420,7 @@ class ProfileModule extends PLModule function handler_ajax_address(&$page, $id) { - header('Content-Type: text/html; charset=utf-8'); + pl_content_headers("text/html"); $page->changeTpl('profile/adresses.address.tpl', NO_SKIN); $page->assign('i', $id); $page->assign('address', array()); @@ -434,7 +428,7 @@ class ProfileModule extends PLModule function handler_ajax_tel(&$page, $prefid, $prefname, $telid) { - header('Content-Type: text/html; charset=utf-8'); + pl_content_headers("text/html"); $page->changeTpl('profile/phone.tpl', NO_SKIN); $page->assign('prefid', $prefid); $page->assign('prefname', $prefname); @@ -457,7 +451,7 @@ class ProfileModule extends PLModule function handler_ajax_medal(&$page, $id) { - header('Content-Type: text/html; charset=utf-8'); + pl_content_headers("text/html"); $page->changeTpl('profile/deco.medal.tpl', NO_SKIN); $page->assign('id', $id); $page->assign('medal', array('valid' => 0, 'grade' => 0)); @@ -465,7 +459,7 @@ class ProfileModule extends PLModule function handler_ajax_job(&$page, $id) { - header('Content-Type: text/html; charset=utf-8'); + pl_content_headers("text/html"); $page->changeTpl('profile/jobs.job.tpl', NO_SKIN); $page->assign('i', $id); $page->assign('job', array()); @@ -479,7 +473,7 @@ class ProfileModule extends PLModule function handler_ajax_sector(&$page, $id, $jobid, $jobpref, $sect, $ssect = -1) { - header('Content-Type: text/html; charset=utf-8'); + pl_content_headers("text/html"); $res = XDB::iterator("SELECT id, name, FIND_IN_SET('optgroup', flags) AS optgroup FROM profile_job_subsector_enum WHERE sectorid = {?}", $sect); @@ -525,7 +519,7 @@ class ProfileModule extends PLModule function handler_ajax_skill(&$page, $cat, $id) { - header('Content-Type: text/html; charset=utf-8'); + pl_content_headers("text/html"); $page->changeTpl('profile/skill.skill.tpl', NO_SKIN); $page->assign('cat', $cat); $page->assign('id', $id); @@ -690,7 +684,7 @@ class ProfileModule extends PLModule } if ($sectorSelection != "''") { $where[] = "ms.sectorid = " . $sectorSelection; - if ($selectedSubSector != "''") { + if ($subSectorSelection != "''") { $where[] = "ms.subsectorid = " . $subSectorSelection; } } @@ -716,7 +710,7 @@ class ProfileModule extends PLModule function handler_ref_sect(&$page, $sect) { - header('Content-Type: text/html; charset=utf-8'); + pl_content_headers("text/html"); $page->changeTpl('include/field.select.tpl', NO_SKIN); $page->assign('onchange', 'setSSectors()'); $page->assign('id', 'ssect_field'); @@ -729,7 +723,7 @@ class ProfileModule extends PLModule function handler_ref_country(&$page, $sect, $ssect = '') { - header('Content-Type: text/html; charset=utf-8'); + pl_content_headers("text/html"); $page->changeTpl('include/field.select.tpl', NO_SKIN); $page->assign('name', 'pays_sel'); $where = ($ssect ? ' AND ms.subsectorid = {?}' : ''); @@ -751,13 +745,35 @@ class ProfileModule extends PLModule $req = XDB::query(' SELECT m.asso_id, a.nom, diminutif, a.logo IS NOT NULL AS has_logo, COUNT(e.eid) AS events, mail_domain AS lists - FROM groupex.membres AS m - INNER JOIN groupex.asso AS a ON(m.asso_id = a.id) - LEFT JOIN groupex.evenements AS e ON(e.asso_id = m.asso_id AND e.archive = 0) + FROM #groupex#.membres AS m + INNER JOIN #groupex#.asso AS a ON(m.asso_id = a.id) + LEFT JOIN #groupex#.evenements AS e ON(e.asso_id = m.asso_id AND e.archive = 0) WHERE uid = {?} GROUP BY m.asso_id ORDER BY a.nom', S::i('uid')); $page->assign('assos', $req->fetchAllAssoc()); } + function handler_xnetlogo(&$page, $id) + { + if (is_null($id)) { + return PL_NOT_FOUND; + } + + $res = XDB::query('SELECT logo, logo_mime + FROM #groupex#.asso + WHERE id = {?}', $id); + list($logo, $logo_mime) = $res->fetchOneRow(); + + if (!empty($logo)) { + pl_cached_dynamic_content_headers($logo_mime); + echo $logo; + } else { + pl_cached_dynamic_content_headers("image/jpeg"); + readfile(dirname(__FILE__) . '/../htdocs/images/dflt_carre.jpg'); + } + + exit; + } + function handler_vcard(&$page, $x = null) { if (is_null($x)) { @@ -787,10 +803,9 @@ class ProfileModule extends PLModule switch ($action) { case "original": - header("Content-type: image/jpeg"); + pl_cached_content_headers("image/jpeg"); readfile("/home/web/trombino/photos" . $user->promo() . "/" . $user->login() . ".jpg"); exit; - break; case "new": S::assert_xsrf_token();