exit;
}
- /** Tries to return the correct user from given hrpid
- * Will redirect to $returnurl$hrpid if $hrpid was empty
+ /** Tries to return the correct profile from a given hrpid.
*/
- private function findProfile($returnurl, $hrpid = null)
+ private function findProfile($hrpid = null)
{
if (is_null($hrpid)) {
$user = S::user();
if (!$user->hasProfile()) {
return PL_NOT_FOUND;
} else {
- pl_redirect($returnurl . $user->profile()->hrid());
+ $profile = $user->profile();
}
} else {
$profile = Profile::get($hrpid);
- if (!$profile) {
- return PL_NOT_FOUND;
- } else if (!S::user()->canEdit($profile) && Platal::notAllowed()) {
- return PL_FORBIDDEN;
- }
+ }
+
+ if (!$profile) {
+ return PL_NOT_FOUND;
+ } else if (!S::user()->canEdit($profile) && Platal::notAllowed()) {
+ return PL_FORBIDDEN;
}
return $profile;
}
function handler_photo_change(&$page, $hrpid = null)
{
global $globals;
- $profile = $this->findProfile('photo/change/', $hrpid);
+ $profile = $this->findProfile($hrpid);
if (! ($profile instanceof Profile) && ($profile == PL_NOT_FOUND || $profile == PL_FORBIDDEN)) {
return $profile;
}
+ if (is_null($hrpid)) {
+ pl_redirect('photo/change/' . $profile->hrid());
+ }
$page->changeTpl('profile/trombino.tpl');
$page->assign('hrpid', $profile->hrid());
{
global $globals;
- $profile = $this->findProfile('profile/edit/', $hrpid);
+ if (in_array($hrpid, array('general', 'adresses', 'emploi', 'poly', 'deco', 'skill', 'mentor'))) {
+ $aux = $opened_tab;
+ $opened_tab = $hrpid;
+ $hrpid = $aux;
+ $url_error = true;
+ } else {
+ $url_error = false;
+ }
+ $profile = $this->findProfile($hrpid);
if (! ($profile instanceof Profile) && ($profile == PL_NOT_FOUND || $profile == PL_FORBIDDEN)) {
return $profile;
}
+ if (is_null($hrpid) || $url_error) {
+ pl_redirect('profile/edit/' . $profile->hrid() . (is_null($opened_tab) ? '' : '/' . $opened_tab));
+ }
// Build the page
$page->addJsLink('ajax.js');
}
$res .= "\n";
}
- XDB::query('REPLACE INTO search_autocomplete
- VALUES ({?}, {?}, {?}, NOW())',
+ XDB::query('INSERT INTO search_autocomplete (name, query, result, generated)
+ VALUES ({?}, {?}, {?}, NOW())
+ ON DUPLICATE KEY UPDATE result = VALUES(result), generated = VALUES(generated)',
$type, $q_normalized, $res);
echo $res;
exit();
S::assert_xsrf_token();
$data = file_get_contents($_FILES['userfile']['tmp_name']);
- list($x, $y) = getimagesize($_FILES['userfile']['tmp_name']);
- $mimetype = substr($_FILES['userfile']['type'], 6);
- unlink($_FILES['userfile']['tmp_name']);
- XDB::execute(
- "REPLACE INTO profile_photos SET pid={?}, attachmime = {?}, attach={?}, x={?}, y={?}",
- $user->profile()->id(), $mimetype, $data, $x, $y);
- break;
+ list($x, $y) = getimagesize($_FILES['userfile']['tmp_name']);
+ $mimetype = substr($_FILES['userfile']['type'], 6);
+ unlink($_FILES['userfile']['tmp_name']);
+ XDB::execute('INSERT INTO profile_photos (pid, attachmime, attach, x, y)
+ VALUES ({?}, {?}, {?}, {?}, {?})
+ ON DUPLICATE KEY UPDATE attachmime = VALUES(attachmime), attach = VALUES(attach), x = VALUES(x), y = VALUES(y)',
+ $user->profile()->id(), $mimetype, $data, $x, $y);
+ break;
case "delete":
S::assert_xsrf_token();