}
+ /* Photo
+ */
+ public function getPhoto($fallback = true)
+ {
+ /* TODO: migrate photo table to profile_photo, change uid to pid
+ */
+ $cond = '';
+ if ($this->visibility) {
+ $cond = ' AND pub IN ' . XDB::formatArray($this->visibility);
+ }
+ $res = XDB::query('SELECT *
+ FROM photo
+ WHERE attachmime IN (\'jpeg\', \'png\')
+ ' . $cond . ' AND uid = {?}',
+ $this->id());
+ if ($res->numRows() > 0) {
+ $photo = $res->fetchOneAssoc();
+ return PlImage::fromData($photo['attach'], 'image/' . $photo['attachmime'],
+ $photo['x'], $photo['y']);
+ } else if ($fallback) {
+ return PlImage::fromFile(dirname(__FILE__).'/../htdocs/images/none.png',
+ 'image/png');
+ }
+ return null;
+ }
+
/* Addresses
*/
public function getAddresses($flags, $limit = null)
IF(pn_uf.name IS NULL, pn_f.name, pn_uf.name) AS firstname_usual,
IF(pn_ul.name IS NULL, pn_l.name, pn_ul.name) AS lastname_usual,
pd.promo AS promo, pd.short_name, pd.directory_name AS full_name,
- pp.display_tel AS mobile, pp.pub AS mobile_pub
+ pp.display_tel AS mobile, pp.pub AS mobile_pub, ph.pub AS photo_pub
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))
INNER JOIN profile_name AS pn_f ON (pn_f.pid = p.pid
- AND pn_f.typeid = ' . self::getNameTypeId('lastname', true) . ')
+ AND pn_f.typeid = ' . self::getNameTypeId('firstname', true) . ')
INNER JOIN profile_name AS pn_l ON (pn_l.pid = p.pid
- AND pn_l.typeid = ' . self::getNameTypeId('firstname', true) . ')
+ AND pn_l.typeid = ' . self::getNameTypeId('lastname', true) . ')
LEFT JOIN profile_name AS pn_uf ON (pn_uf.pid = p.pid
- AND pn_uf.typeid = ' . self::getNameTypeId('lastname_ordinary', true) . ')
+ AND pn_uf.typeid = ' . self::getNameTypeId('firstname_ordinary', true) . ')
LEFT JOIN profile_name AS pn_ul ON (pn_ul.pid = p.pid
- AND pn_ul.typeid = ' . self::getNameTypeId('firstname_ordinary', true) . ')
+ AND pn_ul.typeid = ' . self::getNameTypeId('lastname_ordinary', true) . ')
LEFT JOIN profile_name AS pn_n ON (pn_n.pid = p.pid
AND pn_n.typeid = ' . self::getNameTypeId('nickname', true) . ')
LEFT JOIN profile_phones AS pp ON (pp.uid = p.pid AND pp.link_type = \'user\' AND tel_type = \'mobile\')
+ LEFT JOIN photo AS ph ON (ph.uid = p.pid)
WHERE p.pid IN ' . XDB::formatArray($pids) . '
GROUP BY p.pid');
}