if (is_null($id)) {
return PL_NOT_FOUND;
}
- $pid = (!is_numeric($id) || S::admin()) ? Profile::getPID($id) : null;
- if (is_null($pid)) {
- if (S::logged()) {
- $page->trigError($id . " inconnu dans l'annuaire.");
- }
- return PL_NOT_FOUND;
- }
-
- // Now that we know this is an existing profile, we can switch to the
- // appropriate template.
- $page->changeTpl('profile/profile.tpl', SIMPLE);
// Determines the access level at which the profile will be displayed.
if (!S::logged() || !S::user()->checkPerms('directory_ax') || Env::v('view') == 'public') {
$page->assign('with_pending_pic', true);
}
- // Fetches profile's and profile's owner information and redirects to
- // marketing if the owner has not subscribed and the requirer has logged in.
- $profile = Profile::get($pid, Profile::FETCH_ALL, $view);
- $owner = $profile->owner();
- if (S::logged() && !is_null($owner) && $owner->state == 'pending') {
- pl_redirect('marketing/public/' . $profile->hrid());
+ $pid = (!is_numeric($id) || S::admin()) ? Profile::getPID($id) : null;
+ if (is_null($pid)) {
+ $owner = User::getSilent($id);
+ if ($owner) {
+ $profile = $owner->profile(true, Profile::FETCH_ALL, $view);
+ if ($profile) {
+ $pid = $profile->id();
+ }
+ }
+ } else {
+ // Fetches profile's and profile's owner information and redirects to
+ // marketing if the owner has not subscribed and the requirer has logged in.
+ $profile = Profile::get($pid, Profile::FETCH_ALL, $view);
+ $owner = $profile->owner();
}
+ if (is_null($pid)) {
+ if (S::logged()) {
+ $page->kill($id . " inconnu dans l'annuaire.");
+ }
+ return PL_NOT_FOUND;
+ }
+ // Now that we know this is an existing profile, we can switch to the
+ // appropriate template.
+ $page->changeTpl('profile/profile.tpl', SIMPLE);
// Profile view are logged.
if (S::logged()) {
FROM group_members AS m
INNER JOIN groups AS a ON(m.asso_id = a.id)
LEFT JOIN group_events 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'));
+ WHERE m.uid = {?} GROUP BY m.asso_id ORDER BY a.nom', S::i('uid'));
$page->assign('assos', $req->fetchAllAssoc());
}