make sure we only have one profile photo for a cloned channel

This commit is contained in:
Mario Vavti 2015-11-01 21:04:55 +01:00
parent 0353b0e04f
commit 7ce3ebc46d
2 changed files with 26 additions and 16 deletions

View File

@ -734,6 +734,11 @@ function import_channel_photo($photo,$type,$aid,$uid) {
$photo_failure = true;
}
return(($photo_failure)? false : true);
//return(($photo_failure)? false : true);
if($photo_failure)
return false;
else
return $hash;
}

View File

@ -815,28 +815,33 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) {
$ph = z_fetch_url($arr['photo'], true);
if ($ph['success']) {
// unless proven otherwise
$is_default_profile = 1;
$hash = import_channel_photo($ph['body'], $arr['photo_mimetype'], $local[0]['channel_account_id'], $local[0]['channel_id']);
$profile = q("select is_default from profile where aid = %d and uid = %d limit 1",
intval($local[0]['channel_account_id']),
intval($local[0]['channel_id'])
);
if($profile) {
if(! intval($profile[0]['is_default']))
$is_default_profile = 0;
}
if($hash) {
// unless proven otherwise
$is_default_profile = 1;
if($is_default_profile) {
q("UPDATE photo SET photo_usage = %d WHERE photo_usage = %d AND aid = %d AND uid = %d",
intval(PHOTO_NORMAL),
intval(PHOTO_PROFILE),
$profile = q("select is_default from profile where aid = %d and uid = %d limit 1",
intval($local[0]['channel_account_id']),
intval($local[0]['channel_id'])
);
if($profile) {
if(! intval($profile[0]['is_default']))
$is_default_profile = 0;
}
// If setting for the default profile, unset the profile photo flag from any other photos I own
if($is_default_profile) {
q("UPDATE photo SET photo_usage = %d WHERE photo_usage = %d AND resource_id != '%s' AND aid = %d AND uid = %d",
intval(PHOTO_NORMAL),
intval(PHOTO_PROFILE),
dbesc($hash),
intval($local[0]['channel_account_id']),
intval($local[0]['channel_id'])
);
}
}
import_channel_photo($ph['body'], $arr['photo_mimetype'], $local[0]['channel_account_id'],$local[0]['channel_id']);
// reset the names in case they got messed up when we had a bug in this function
$photos = array(
z_root() . '/photo/profile/l/' . $local[0]['channel_id'],