if (Event::handle('StartJoinGroup', array($group, $this))) {
$join = Group_member::join($group->id, $this->id);
self::blow('profile:groups:%d', $this->id);
+ self::blow('group:member_ids:%d', $group->id);
+ self::blow('group:member_count:%d', $group->id);
Event::handle('EndJoinGroup', array($group, $this));
}
}
if (Event::handle('StartLeaveGroup', array($group, $this))) {
Group_member::leave($group->id, $this->id);
self::blow('profile:groups:%d', $this->id);
+ self::blow('group:member_ids:%d', $group->id);
+ self::blow('group:member_count:%d', $group->id);
Event::handle('EndLeaveGroup', array($group, $this));
}
}
$profile = new Profile();
$tagged = array();
- $cnt = $profile->query(sprintf($qry, $this->id, $this->id, $tag));
+ $cnt = $profile->query(sprintf($qry, $this->id, $this->id, $profile->escape($tag)));
while ($profile->fetch()) {
$tagged[] = clone($profile);
return false;
case 'TwitterOAuthClient':
case 'TwitterQueueHandler':
+ case 'TweetInQueueHandler':
case 'TwitterImport':
case 'JsonStreamReader':
case 'TwitterStreamReader':
}
return true;
}
+
+ /**
+ * Add links in the user's profile block to their Twitter profile URL.
+ *
+ * @param Profile $profile The profile being shown
+ * @param Array &$links Writeable array of arrays (href, text, image).
+ *
+ * @return boolean hook value (true)
+ */
+
+ function onOtherAccountProfiles($profile, &$links)
+ {
+ $fuser = null;
+
+ $flink = Foreign_link::getByUserID($profile->id, TWITTER_SERVICE);
+
+ if (!empty($flink)) {
+ $fuser = $flink->getForeignUser();
+
+ if (!empty($fuser)) {
+ $links[] = array("href" => $fuser->uri,
+ "text" => sprintf(_("@%s on Twitter"), $fuser->nickname),
+ "image" => $this->path("icons/twitter-bird-white-on-blue.png"));
+ }
+ }
+
+ return true;
+ }
}
display:none;
}
+ #remoteprofile .notice .entry-title, #remoteprofile .notice div.entry-content,
#showstream .notice .entry-title, #showstream .notice div.entry-content {
margin-left: 0;
}
+ #remoteprofile .notice .entry-title,
#showstream .notice .entry-title {
min-height: 1px;
}
+ #remoteprofile #content .notice .author,
#showstream #content .notice .author {
display: none;
}
+ #remoteprofile .notice,
#showstream .notice {
min-height: 1em;
}
display:none;
}
+.profile_block_otherprofile_list li {
+ display: inline;
+ list-style-type: none;
+}
+
/*end of @media screen, projection, tv*/