X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fprofile.php;h=55f40995553b4f60f7a59a4081052c090a664645;hb=fe13bc1d7ba9f72d452ec07baf8538a74b7c67b8;hp=4c62e1ac1d24937e799506c167f5c87405d0feb1;hpb=eb41eda94f6b91fbff6600e23a226e994ce1d7ef;p=platal.git diff --git a/modules/profile.php b/modules/profile.php index 4c62e1a..55f4099 100644 --- a/modules/profile.php +++ b/modules/profile.php @@ -1,6 +1,6 @@ id()); - if ($myphoto) { - $photo_data = $myphoto->data; - $photo_type = $myphoto->mimetype; - } + $photo = PlImage::fromData($myphoto->data, $myphoto->mimetype); } else { - $res = XDB::query( - "SELECT attachmime, attach, pub - FROM photo - WHERE uid = {?}", $user->id()); - list($photo_type, $photo_data, $photo_pub) = $res->fetchOneRow(); - if ($photo_pub != 'public' && !S::logged()) { - $photo_type = $photo_data = null; - } + $photo = $user->profile()->getPhoto(true); } // Display the photo, or a default one when not available. - if ($photo_type && $photo_data != null) { - pl_cached_dynamic_content_headers("image/$photo_type"); - echo $photo_data; - } else { - pl_cached_dynamic_content_headers("image/png"); - echo file_get_contents(dirname(__FILE__).'/../htdocs/images/none.png'); - } - exit; + $photo->send(); } function handler_medal(&$page, $mid) @@ -127,7 +107,7 @@ class ProfileModule extends PLModule $mid = $thumb ? @func_get_arg(2) : $mid; $res = XDB::query("SELECT img - FROM profile_medals + FROM profile_medal_enum WHERE id = {?}", $mid); $img = $thumb ? @@ -198,13 +178,14 @@ class ProfileModule extends PLModule } elseif (Env::v('suppr')) { S::assert_xsrf_token(); - XDB::execute('DELETE FROM photo - WHERE uid = {?}', - S::v('uid')); + XDB::execute('DELETE FROM profile_photos + WHERE pid = {?}', + S::user()->profile()->id()); XDB::execute('DELETE FROM requests WHERE user_id = {?} AND type="photo"', S::v('uid')); $globals->updateNbValid(); + $page->trigSuccess("Ta photo a bien été supprimée. Elle ne sera plus visible sur le site dans au plus une heure."); } elseif (Env::v('cancel')) { S::assert_xsrf_token(); @@ -247,7 +228,6 @@ class ProfileModule extends PLModule // Now that we know this is the profile of an existing user, we can // switch to the appropriate template. $page->changeTpl('profile/profile.tpl', SIMPLE); - require_once 'user.func.inc.php'; // Determines the access level at which the profile will be displayed. if (!S::logged() || Env::v('view') == 'public') { @@ -360,8 +340,8 @@ class ProfileModule extends PLModule // Build the page $page->addJsLink('ajax.js'); - $page->addJsLink('education.js'); - $page->addJsLink('grades.js'); + $page->addJsLink('education.js'); /* dynamic content */ + $page->addJsLink('grades.js'); /* dynamic content */ $page->addJsLink('profile.js'); $page->addJsLink('jquery.autocomplete.js'); $wiz = new PlWizard('Profil', PlPage::getCoreTpl('plwizard.tpl'), true, true, false); @@ -400,7 +380,7 @@ class ProfileModule extends PLModule pl_cached_content_headers("text/javascript", "utf-8"); $page->changeTpl('profile/grades.js.tpl', NO_SKIN); $res = XDB::iterator("SELECT * - FROM profile_medals_grades + FROM profile_medal_enum_grades ORDER BY mid, pos"); $grades = array(); while ($tmp = $res->next()) { @@ -409,7 +389,7 @@ class ProfileModule extends PLModule $page->assign('grades', $grades); $res = XDB::iterator("SELECT *, FIND_IN_SET('validation', flags) AS validate - FROM profile_medals + FROM profile_medal_enum ORDER BY type, text"); $mlist = array(); while ($tmp = $res->next()) { @@ -588,7 +568,7 @@ class ProfileModule extends PLModule } elseif ($promo_sortie == $promo + 3) { XDB::execute('UPDATE profile_education SET grad_year = {?} - WHERE uid = {?} AND FIND_IN_SET(\'primary\', flags)', + WHERE pid = {?} AND FIND_IN_SET(\'primary\', flags)', $promo_sortie, $profile->id()); $page->trigSuccess('Ton statut "orange" a été supprimé.'); $page->assign('promo_sortie_old', $promo_sortie); @@ -605,7 +585,6 @@ class ProfileModule extends PLModule function handler_referent(&$page, $user) { - require_once 'user.func.inc.php'; $page->changeTpl('profile/fiche_referent.tpl', SIMPLE); $user = Profile::get($user); @@ -623,7 +602,7 @@ class ProfileModule extends PLModule //expertise $res = XDB::query('SELECT expertise FROM profile_mentor - WHERE uid = {?}', $user->id()); + WHERE pid = {?}', $user->id()); $page->assign('expertise', $res->fetchOneCell()); // Sectors @@ -633,7 +612,7 @@ class ProfileModule extends PLModule FROM profile_mentor_sector AS m LEFT JOIN profile_job_sector_enum AS s ON(m.sectorid = s.id) LEFT JOIN profile_job_subsector_enum AS ss ON(m.sectorid = ss.sectorid AND m.subsectorid = ss.id) - WHERE uid = {?}", $user->id()); + WHERE pid = {?}", $user->id()); while (list($sector, $subSector) = $res->next()) { $sectors[] = $sector; $subSectors[] = $subSector; @@ -646,7 +625,7 @@ class ProfileModule extends PLModule "SELECT gc.countryFR FROM profile_mentor_country AS m LEFT JOIN geoloc_countries AS gc ON (m.country = gc.iso_3166_1_a2) - WHERE uid = {?}", $user->id()); + WHERE pid = {?}", $user->id()); $page->assign('pays', $res->fetchColumn()); $page->addJsLink('close_on_esc.js'); @@ -662,7 +641,7 @@ class ProfileModule extends PLModule require_once "directory.enums.inc.php"; // Retrieval of sector names - $sectors = DirEnum::getOptionsArray(DirEnum::SECTORS); + $sectors = DirEnum::getOptions(DirEnum::SECTORS); $sectors[''] = ''; $page->assign_by_ref('sectors', $sectors); @@ -709,7 +688,7 @@ class ProfileModule extends PLModule $it = XDB::iterator("SELECT gc.iso_3166_1_a2 AS id, gc.countryFR AS field FROM geoloc_countries AS gc INNER JOIN profile_mentor_country AS mp ON (mp.country = gc.iso_3166_1_a2) - INNER JOIN profile_mentor_sector AS ms ON (ms.uid = mp.uid) + INNER JOIN profile_mentor_sector AS ms ON (ms.pid = mp.pid) WHERE ms.sectorid = {?} " . $where . " GROUP BY iso_3166_1_a2 ORDER BY countryFR", $sect, $ssect); @@ -766,7 +745,7 @@ class ProfileModule extends PLModule } $vcard = new VCard(); - $vcard->addUser($x); + $vcard->addProfile(Profile::get($x)); $vcard->show(); } @@ -782,8 +761,7 @@ class ProfileModule extends PLModule switch ($action) { case "original": - pl_cached_content_headers("image/jpeg"); - readfile("/home/web/trombino/photos" . $user->promo() . "/" . $user->login() . ".jpg"); + PlImage::fromFile("/home/web/trombino/photos" . $user->promo() . "/" . $user->login() . ".jpg", "image/jpeg")->send(); exit; case "new": @@ -794,14 +772,14 @@ class ProfileModule extends PLModule $mimetype = substr($_FILES['userfile']['type'], 6); unlink($_FILES['userfile']['tmp_name']); XDB::execute( - "REPLACE INTO photo SET uid={?}, attachmime = {?}, attach={?}, x={?}, y={?}", - $user->id(), $mimetype, $data, $x, $y); + "REPLACE INTO profile_photos SET pid={?}, attachmime = {?}, attach={?}, x={?}, y={?}", + $user->profile()->id(), $mimetype, $data, $x, $y); break; case "delete": S::assert_xsrf_token(); - XDB::execute('DELETE FROM photo WHERE uid = {?}', $user->id()); + XDB::execute('DELETE FROM profile_photos WHERE pid = {?}', $user->profile()->id()); break; } } @@ -819,8 +797,8 @@ class ProfileModule extends PLModule function handler_admin_binets(&$page, $action = 'list', $id = null) { $page->setTitle('Administration - Binets'); $page->assign('title', 'Gestion des binets'); - $table_editor = new PLTableEditor('admin/binets', 'binets_def', 'id'); - $table_editor->add_join_table('binets_ins','binet_id',true); + $table_editor = new PLTableEditor('admin/binets', 'profile_binet_enum', 'id'); + $table_editor->add_join_table('profile_binets','binet_id',true); $table_editor->describe('text','intitulé',true); $table_editor->apply($page, $action, $id); } @@ -862,7 +840,7 @@ class ProfileModule extends PLModule function handler_admin_sections(&$page, $action = 'list', $id = null) { $page->setTitle('Administration - Sections'); $page->assign('title', 'Gestion des sections'); - $table_editor = new PLTableEditor('admin/sections','sections','id'); + $table_editor = new PLTableEditor('admin/sections','profile_section_enum','id'); $table_editor->describe('text','intitulé',true); $table_editor->apply($page, $action, $id); } @@ -906,7 +884,7 @@ class ProfileModule extends PLModule function handler_admin_medals(&$page, $action = 'list', $id = null) { $page->setTitle('Administration - Distinctions'); $page->assign('title', 'Gestion des Distinctions'); - $table_editor = new PLTableEditor('admin/medals','profile_medals','id'); + $table_editor = new PLTableEditor('admin/medals','profile_medal_enum','id'); $table_editor->describe('text', 'intitulé', true); $table_editor->describe('img', 'nom de l\'image', false); $table_editor->describe('flags', 'valider', true); @@ -917,29 +895,29 @@ class ProfileModule extends PLModule $mid = $id; if (Post::v('act') == 'del') { - XDB::execute('DELETE FROM profile_medals_grades + XDB::execute('DELETE FROM profile_medal_enum_grades WHERE mid={?} AND gid={?}', $mid, Post::i('gid')); } else { foreach (Post::v('grades', array()) as $gid=>$text) { if ($gid === 0) { if (!empty($text)) { $res = XDB::query('SELECT MAX(gid) - FROM profile_medals_grades + FROM profile_medal_enum_grades WHERE mid = {?}', $mid); $gid = $res->fetchOneCell() + 1; - XDB::execute('INSERT INTO profile_medals_grades (mid, gid, text, pos) + XDB::execute('INSERT INTO profile_medal_enum_grades (mid, gid, text, pos) VALUES ({?}, {?}, {?}, {?})', $mid, $gid, $text, $_POST['pos']['0']); } } else { - XDB::execute('UPDATE profile_medals_grades + XDB::execute('UPDATE profile_medal_enum_grades SET pos={?}, text={?} WHERE gid={?} AND mid={?}', $_POST['pos'][$gid], $text, $gid, $mid); } } } - $res = XDB::iterator('SELECT gid, text, pos FROM profile_medals_grades WHERE mid={?} ORDER BY pos', $mid); + $res = XDB::iterator('SELECT gid, text, pos FROM profile_medal_enum_grades WHERE mid={?} ORDER BY pos', $mid); $page->assign('grades', $res); } }