X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=classes%2FProfile.php;h=3f0b87e79fc550ebb68c6c31b3ba0608e5278930;hb=bfaa70076372985e4775866f8a1c98a662657f09;hp=c93ba07c29b020cbb50ed459230e482807a5db3f;hpb=09ef1fff69147d06c9bbc7bd25a66999c13b3a0b;p=quix0rs-gnu-social.git diff --git a/classes/Profile.php b/classes/Profile.php index c93ba07c29..3f0b87e79f 100644 --- a/classes/Profile.php +++ b/classes/Profile.php @@ -192,6 +192,20 @@ class Profile extends Managed_DataObject return ($this->fullname) ? $this->fullname : $this->nickname; } + /** + * Takes the currently scoped profile into account to give a name + * to list in notice streams. Preferences may differ between profiles. + */ + function getStreamName() + { + $user = common_current_user(); + if ($user instanceof User && $user->streamNicknames()) { + return $this->nickname; + } + + return $this->getBestName(); + } + /** * Gets the full name (if filled) with nickname as a parenthetical, or the nickname alone * if no fullname is provided. @@ -242,7 +256,7 @@ class Profile extends Managed_DataObject return $stream->getNotices($offset, $limit, $since_id, $max_id); } - function isMember($group) + function isMember(User_group $group) { $groups = $this->getGroups(0, null); while ($groups instanceof User_group && $groups->fetch()) { @@ -253,7 +267,7 @@ class Profile extends Managed_DataObject return false; } - function isAdmin($group) + function isAdmin(User_group $group) { $gm = Group_member::pkeyGet(array('profile_id' => $this->id, 'group_id' => $group->id)); @@ -731,7 +745,7 @@ class Profile extends Managed_DataObject * @param Profile $other * @return boolean */ - function isSubscribed($other) + function isSubscribed(Profile $other) { return Subscription::exists($this, $other); } @@ -742,7 +756,7 @@ class Profile extends Managed_DataObject * @param Profile $other * @return boolean */ - function hasPendingSubscription($other) + function hasPendingSubscription(Profile $other) { return Subscription_queue::exists($this, $other); } @@ -753,7 +767,7 @@ class Profile extends Managed_DataObject * @param Profile $other * @return boolean */ - function mutuallySubscribed($other) + function mutuallySubscribed(Profile $other) { return $this->isSubscribed($other) && $other->isSubscribed($this); @@ -910,6 +924,7 @@ class Profile extends Managed_DataObject $this->_deleteMessages(); $this->_deleteTags(); $this->_deleteBlocks(); + $this->_deleteAttentions(); Avatar::deleteFromProfile($this, true); // Warning: delete() will run on the batch objects, @@ -1011,6 +1026,20 @@ class Profile extends Managed_DataObject $block->delete(); } + function _deleteAttentions() + { + $att = new Attention(); + $att->profile_id = $this->getID(); + + if ($att->find()) { + while ($att->fetch()) { + // Can't do delete() on the object directly since it won't remove all of it + $other = clone($att); + $other->delete(); + } + } + } + // XXX: identical to Notice::getLocation. public function getLocation() @@ -1360,6 +1389,11 @@ class Profile extends Managed_DataObject return $this->profileurl; } + public function getNickname() + { + return $this->nickname; + } + /** * Returns the best URI for a profile. Plugins may override. * @@ -1374,9 +1408,8 @@ class Profile extends Managed_DataObject // check for a local user first $user = User::getKV('id', $this->id); - - if (!empty($user)) { - $uri = $user->uri; + if ($user instanceof User) { + $uri = $user->getUri(); } Event::handle('EndGetProfileUri', array($this, &$uri)); @@ -1515,4 +1548,20 @@ class Profile extends Managed_DataObject { return $this; } + + /** + * This will perform shortenLinks with the connected User object. + * + * Won't work on remote profiles or groups, so expect a + * NoSuchUserException if you don't know it's a local User. + * + * @param string $text String to shorten + * @param boolean $always Disrespect minimum length etc. + * + * @return string link-shortened $text + */ + public function shortenLinks($text, $always=false) + { + return $this->getUser()->shortenLinks($text, $always); + } }