diff options
Diffstat (limited to 'mod')
-rw-r--r-- | mod/profile.php | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/mod/profile.php b/mod/profile.php index 5efb28ea7..c42291d96 100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -10,18 +10,24 @@ function profile_load(&$a, $username, $profile = 0) { $profile = $r[0]['profile-id']; } + $r = null; + if($profile) { $profile_int = intval($profile); - $sql_which = " AND `profile`.`id` = $profile_int "; + $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `user`.* FROM `profile` + LEFT JOIN `user` ON `profile`.`uid` = `user`.`uid` + WHERE `user`.`nickname` = '%s' AND `profile`.`id` = %d LIMIT 1", + dbesc($username), + intval($profile_int) + ); + } + if(! count($r)) { + $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `user`.* FROM `profile` + LEFT JOIN `user` ON `profile`.`uid` = `user`.`uid` + WHERE `user`.`nickname` = '%s' AND `profile`.`is-default` = 1 LIMIT 1", + dbesc($username) + ); } - else - $sql_which = " AND `profile`.`is-default` = 1 "; - - $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `user`.* FROM `profile` - LEFT JOIN `user` ON `profile`.`uid` = `user`.`uid` - WHERE `user`.`nickname` = '%s' $sql_which LIMIT 1", - dbesc($username) - ); if(($r === false) || (! count($r))) { notice( t('No profile') . EOL ); |