diff --git a/boot.php b/boot.php index f652063852..48770a2b21 100644 --- a/boot.php +++ b/boot.php @@ -2,7 +2,7 @@ set_time_limit(0); -define ( 'BUILD_ID', 1014 ); +define ( 'BUILD_ID', 1015 ); define ( 'DFRN_PROTOCOL_VERSION', '2.0' ); define ( 'EOL', "
\r\n" ); diff --git a/database.sql b/database.sql index 33f1e79497..8f068e59d9 100644 --- a/database.sql +++ b/database.sql @@ -59,6 +59,7 @@ CREATE TABLE IF NOT EXISTS `contact` ( `nick` char(255) NOT NULL, `photo` text NOT NULL, `thumb` text NOT NULL, + `micro` text NOT NULL, `site-pubkey` text NOT NULL, `issued-id` char(255) NOT NULL, `dfrn-id` char(255) NOT NULL, diff --git a/images/default-profile-mm.jpg b/images/default-profile-mm.jpg new file mode 100644 index 0000000000..79c1a85304 Binary files /dev/null and b/images/default-profile-mm.jpg differ diff --git a/include/Photo.php b/include/Photo.php index ca9ae0703c..98b11ab39f 100644 --- a/include/Photo.php +++ b/include/Photo.php @@ -235,8 +235,18 @@ function import_profile_photo($photo,$uid,$cid) { if($r === false) $photo_failure = true; + $img->scaleImage(48); + + $r = $img->store($uid, $cid, $hash, $filename, t('Contact Photos'), 6 ); + + if($r === false) + $photo_failure = true; + + + $photo = $a->get_baseurl() . '/photo/' . $hash . '-4.jpg'; $thumb = $a->get_baseurl() . '/photo/' . $hash . '-5.jpg'; + $micro = $a->get_baseurl() . '/photo/' . $hash . '-6.jpg'; } else $photo_failure = true; @@ -244,8 +254,9 @@ function import_profile_photo($photo,$uid,$cid) { if($photo_failure) { $photo = $a->get_baseurl() . '/images/default-profile.jpg'; $thumb = $a->get_baseurl() . '/images/default-profile-sm.jpg'; + $micro = $a->get_baseurl() . '/images/default-profile-mm.jpg'; } - return(array($photo,$thumb)); + return(array($photo,$thumb,$micro)); } diff --git a/include/items.php b/include/items.php index a1aaecc8a9..323117e6ca 100644 --- a/include/items.php +++ b/include/items.php @@ -792,6 +792,10 @@ function consume_feed($xml,$importer,$contact, &$hub) { $img->scaleImage(80); $r = $img->store($contact['uid'], $contact['id'], $hash, basename($photo_url), t('Contact Photos') , 5); + + $img->scaleImage(48); + $r = $img->store($contact['uid'], $contact['id'], $hash, basename($photo_url), t('Contact Photos') , 6); + if($r) q("UPDATE `contact` SET `avatar-date` = '%s' WHERE `uid` = %d AND `id` = %d LIMIT 1", dbesc(datetime_convert()), diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php index 705f74f135..4a5fe1114f 100644 --- a/mod/dfrn_confirm.php +++ b/mod/dfrn_confirm.php @@ -238,7 +238,8 @@ function dfrn_confirm_post(&$a,$handsfree = null) { $new_relation = REL_BUD; $r = q("UPDATE `contact` SET `photo` = '%s', - `thumb` = '%s', + `thumb` = '%s', + `micro` = '%s', `rel` = %d, `name-date` = '%s', `uri-date` = '%s', @@ -250,6 +251,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { ", dbesc($photos[0]), dbesc($photos[1]), + dbesc($photos[2]), intval($new_relation), dbesc(datetime_convert()), dbesc(datetime_convert()), @@ -281,7 +283,8 @@ function dfrn_confirm_post(&$a,$handsfree = null) { ); $r = q("UPDATE `contact` SET `photo` = '%s', - `thumb` = '%s', + `thumb` = '%s', + `micro` = '%s', `name-date` = '%s', `uri-date` = '%s', `avatar-date` = '%s', @@ -293,6 +296,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { ", dbesc($photos[0]), dbesc($photos[1]), + dbesc($photos[2]), dbesc(datetime_convert()), dbesc(datetime_convert()), dbesc(datetime_convert()), diff --git a/mod/follow.php b/mod/follow.php index 235353f7ab..d839a04d4a 100644 --- a/mod/follow.php +++ b/mod/follow.php @@ -122,7 +122,8 @@ function follow_post(&$a) { $photos = import_profile_photo($vcard['photo'],local_user(),$contact_id); $r = q("UPDATE `contact` SET `photo` = '%s', - `thumb` = '%s', + `thumb` = '%s', + `micro` = '%s', `name-date` = '%s', `uri-date` = '%s', `avatar-date` = '%s' @@ -130,6 +131,7 @@ function follow_post(&$a) { ", dbesc($photos[0]), dbesc($photos[1]), + dbesc($photos[2]), dbesc(datetime_convert()), dbesc(datetime_convert()), dbesc(datetime_convert()), diff --git a/mod/photo.php b/mod/photo.php index 4e0b85b451..d4abb041a0 100644 --- a/mod/photo.php +++ b/mod/photo.php @@ -16,15 +16,22 @@ function photo_init(&$a) { return; // NOTREACHED } + $default = 'images/default-profile.jpg'; + if(isset($type)) { switch($type) { case 'profile': $resolution = 4; break; + case 'micro': + $resolution = 6; + $default = 'images/default-profile-mm.jpg'; + break; case 'avatar': default: $resolution = 5; + $default = 'images/default-profile-sm.jpg'; break; } @@ -38,9 +45,7 @@ function photo_init(&$a) { $data = $r[0]['data']; } if(! isset($data)) { - $data = file_get_contents(($resolution == 5) - ? 'images/default-profile-sm.jpg' - : 'images/default-profile.jpg'); + $data = file_get_contents($default); } } else { diff --git a/mod/photos.php b/mod/photos.php index a3aa692162..f3eccd1279 100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -312,9 +312,9 @@ function photos_post(&$a) { } if($profile) { if(substr($notify,0,4) === 'cid:') - $taginfo[] = array($newname,$profile,$notify,$r[0]); + $taginfo[] = array($newname,$profile,$notify,$r[0],'@[url=' . str_replace(',','%2c',$profile) . ']' . $newname . '[/url]'); else - $taginfo[] = array($newname,$profile,$notify,null); + $taginfo[] = array($newname,$profile,$notify,null,$str_tags .= '@[url=' . $profile . ']' . $newname . '[/url]'); if(strlen($str_tags)) $str_tags .= ','; $profile = str_replace(',','%2c',$profile); @@ -384,6 +384,7 @@ function photos_post(&$a) { $arr['verb'] = ACTIVITY_TAG; $arr['object-type'] = ACTIVITY_OBJ_PERSON; $arr['target-type'] = ACTIVITY_OBJ_PHOTO; + $arr['tag'] = $tagged[4]; $arr['inform'] = $tagged[2]; $arr['body'] = '[url=' . $tagged[1] . ']' . $tagged[0] . '[/url]' . ' ' . t('was tagged in a') . ' ' . '[url=' . $a->get_baseurl() . '/photos/' . $contact_record['nickname'] . '/image/' . $p[0]['resource-id'] . ']' . t('photo') . '[/url]' . ' ' . t('by') . ' ' . '[url=' . $contact_record['url'] . ']' . $contact_record['name'] . '[/url]' ; diff --git a/mod/profile_photo.php b/mod/profile_photo.php index b21d9162a0..32ace62f05 100644 --- a/mod/profile_photo.php +++ b/mod/profile_photo.php @@ -68,6 +68,13 @@ function profile_photo_post(&$a) { if($r === false) notice( t('Image size reduction [80] failed.') . EOL ); + $im->scaleImage(48); + + $r = $im->store(local_user(), 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 6, 1); + + if($r === false) + notice( t('Image size reduction [48] failed.') . EOL ); + // Unset the profile photo flag from any other photos I own $r = q("UPDATE `photo` SET `profile` = 0 WHERE `profile` = 1 AND `resource-id` != '%s' AND `uid` = %d", diff --git a/mod/register.php b/mod/register.php index 52c3863ebd..5c62c12943 100644 --- a/mod/register.php +++ b/mod/register.php @@ -161,15 +161,16 @@ function register_post(&$a) { intval($newuid)); return; } - $r = q("INSERT INTO `contact` ( `uid`, `created`, `self`, `name`, `nick`, `photo`, `thumb`, `blocked`, `pending`, `url`, + $r = q("INSERT INTO `contact` ( `uid`, `created`, `self`, `name`, `nick`, `photo`, `thumb`, `micro`, `blocked`, `pending`, `url`, `request`, `notify`, `poll`, `confirm`, `name-date`, `uri-date`, `avatar-date` ) - VALUES ( %d, '%s', 1, '%s', '%s', '%s', '%s', 0, 0, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ", + VALUES ( %d, '%s', 1, '%s', '%s', '%s', '%s', '%s', 0, 0, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ", intval($newuid), datetime_convert(), dbesc($username), dbesc($nickname), dbesc($a->get_baseurl() . "/photo/profile/{$newuid}.jpg"), dbesc($a->get_baseurl() . "/photo/avatar/{$newuid}.jpg"), + dbesc($a->get_baseurl() . "/photo/micro/{$newuid}.jpg"), dbesc($a->get_baseurl() . "/profile/$nickname"), dbesc($a->get_baseurl() . "/dfrn_request/$nickname"), dbesc($a->get_baseurl() . "/dfrn_notify/$nickname"), diff --git a/update.php b/update.php index 68367343d4..dfa54af593 100644 --- a/update.php +++ b/update.php @@ -101,4 +101,32 @@ function update_1012() { function update_1013() { q("ALTER TABLE `item` ADD `target-type` CHAR( 255 ) NOT NULL AFTER `object` , ADD `target` TEXT NOT NULL AFTER `target-type`"); -} \ No newline at end of file +} + +function update_1014() { + require_once('include/Photo.php'); + q("ALTER TABLE `contact` ADD `micro` TEXT NOT NULL AFTER `thumb` "); + $r = q("SELECT * FROM `photo` WHERE `scale` = 4"); + if(count($r)) { + foreach($r as $rr) { + $ph = new Photo($rr['data']); + if($ph->is_valid()) { + $ph->scaleImage(48); + $ph->store($rr['uid'],$rr['contact-id'],$rr['resource-id'],$rr['filename'],$rr['album'],6,(($rr['profile']) ? 1 : 0)); + } + } + } + $r = q("SELECT * FROM `contact` WHERE 1"); + if(count($r)) { + foreach($r as $rr) { + if(stristr($rr['thumb'],'avatar')) + q("UPDATE `contact` SET `micro` = '%s' WHERE `id` = %d LIMIT 1", + dbesc(str_replace('avatar','micro',$rr['thumb'])), + intval($rr['id'])); + else + q("UPDATE `contact` SET `micro` = '%s' WHERE `id` = %d LIMIT 1", + dbesc(str_replace('5.jpg','6.jpg',$rr['thumb'])), + intval($rr['id'])); + } + } +} \ No newline at end of file