function updateAvatars($user) { $touched = false; if (!have_option('q', 'quiet')) { print "Updating avatars for user '" . $user->nickname . "' (" . $user->id . ")..."; } $avatar = new Avatar(); $avatar->profile_id = $user->id; if (!$avatar->find()) { if (have_option('v', 'verbose')) { print "(none found)..."; } } else { while ($avatar->fetch()) { if (have_option('v', 'verbose')) { if ($avatar->original) { print "original..."; } else { print $avatar->width . "..."; } } $orig_url = $avatar->url; $avatar->url = Avatar::url($avatar->filename); if ($avatar->url != $orig_url) { $sql = "UPDATE avatar SET url = '" . $avatar->url . "' " . "WHERE profile_id = " . $avatar->profile_id . " " . "AND width = " . $avatar->width . " " . "AND height = " . $avatar->height . " "; if ($avatar->original) { $sql .= "AND original = 1 "; } if (!$avatar->query($sql)) { throw new Exception("Can't update avatar for user " . $user->nickname . "."); } else { $touched = true; } } } } if ($touched) { $profile = $user->getProfile(); common_broadcast_profile($profile); } if (have_option('v', 'verbose')) { print "DONE."; } if (!have_option('q', 'quiet') || have_option('v', 'verbose')) { print "\n"; } }
function updateAvatarUrls($profile) { $avatar = new Avatar(); $avatar->profile_id = $profile->id; if ($avatar->find()) { while ($avatar->fetch()) { $orig_url = $avatar->url; $avatar->url = Avatar::url($avatar->filename); if ($avatar->url != $orig_url) { $sql = "UPDATE avatar SET url = '" . $avatar->url . "' " . "WHERE profile_id = " . $avatar->profile_id . " " . "AND width = " . $avatar->width . " " . "AND height = " . $avatar->height . " "; if ($avatar->original) { $sql .= "AND original = 1 "; } if (!$avatar->query($sql)) { throw new Exception("Can't update avatar for user " . $profile->nickname . "."); } else { $touched = true; } } } } }
function hasGravatar($id) { $avatar = new Avatar(); $avatar->profile_id = $id; if ($avatar->find()) { while ($avatar->fetch()) { if ($avatar->filename == null) { return true; } } } return false; }
/** * Delete attached avatars for this user from the database and filesystem. * This should be used instead of a batch delete() to ensure that files * get removed correctly. * * @param boolean $original true to delete only the original-size file * @return <type> */ function delete_avatars($original = true) { $avatar = new Avatar(); $avatar->profile_id = $this->id; $avatar->find(); while ($avatar->fetch()) { if ($avatar->original) { if ($original == false) { continue; } } $avatar->delete(); } return true; }