IF(pn_ul.name IS NULL, pn_l.name, pn_ul.name) AS lastname_ordinary,
pd.promo AS promo, pd.short_name, pd.directory_name AS full_name,
pd.directory_name, pp.display_tel AS mobile, pp.pub AS mobile_pub,
- ph.pub AS photo_pub, ap.uid AS owner_id
+ ph.attach IS NOT NULL AS has_photo, ph.pub AS photo_pub,
+ p.last_change < DATE_SUB(NOW(), INTERVAL 365 DAY) AS is_old,
+ ap.uid AS owner_id
FROM profiles AS p
INNER JOIN profile_display AS pd ON (pd.pid = p.pid)
INNER JOIN profile_education AS pe ON (pe.uid = p.pid AND FIND_IN_SET(\'primary\', pe.flags))
public function Prepare(&$page)
{
parent::Prepare($page);
+ $profile = $this->user->profile();
- $res = XDB::query('SELECT date < DATE_SUB(NOW(), INTERVAL 365 DAY) AS is_profile_old,
- date AS profile_date, LENGTH(p.attach) > 0 AS has_photo
- FROM auth_user_md5 AS u
- LEFT JOIN photo AS p ON (u.user_id = p.uid)
- WHERE user_id = {?}',
- $this->user->id());
- list($is_profile_old, $profile_date, $has_photo) = $res->fetchOneRow();
-
- $page->assign('profile_incitation', $is_profile_old);
- $page->assign('profile_last_update', $profile_date);
- $page->assign('photo_incitation', !$has_photo);
+ $page->assign('profile_incitation', $profile->is_old);
+ $page->assign('profile_last_update', $profile->last_change);
+ $page->assign('photo_incitation', !$profile->has_photo);
$res = XDB::query('SELECT COUNT(*)
FROM profile_addresses
WHERE pid = {?} AND accuracy = 0',
- $this->user->id());
+ $profile->id());
$page->assign('geocoding_incitation', $res->fetchOneCell());
}
public static function IsCandidate(User &$user, $candidate)
{
- $res = XDB::query('SELECT date < DATE_SUB(NOW(), INTERVAL 365 DAY) AS is_profile_old,
- p.attach AS photo
- FROM auth_user_md5 AS u
- LEFT JOIN photo AS p ON (u.user_id = p.uid)
- WHERE user_id = {?}',
- $user->id());
- list($is_profile_old, $has_photo) = $res->fetchOneRow();
-
- $res = XDB::query('SELECT COUNT(*)
- FROM profile_addresses
- WHERE pid = {?} AND accuracy = 0',
- $user->id());
-
- return ($res->fetchOneCell() || !$has_photo || $is_profile_old);
+ $profile = $user->profile();
+ if (!$profile) {
+ return false;
+ }
+ return !$profile->has_photo || $profile->is_old;
}
}