Merge branch '0.9.x'

This commit is contained in:
Brion Vibber 2011-03-18 16:39:41 -07:00
commit f6e22da122
2 changed files with 64 additions and 19 deletions

View File

@ -84,7 +84,7 @@ class ModPlusPlugin extends Plugin
}
/**
* Add OpenID-related paths to the router table
* Add ModPlus-related paths to the router table
*
* Hook for RouterInitialized event.
*
@ -101,16 +101,45 @@ class ModPlusPlugin extends Plugin
return true;
}
/**
* Add per-profile info popup menu for author on notice lists.
*
* @param NoticeListItem $item
* @return boolean hook value
*/
function onStartShowNoticeItem($item)
{
$profile = $item->profile;
$this->showProfileOptions($item->out, $item->profile);
return true;
}
/**
* Add per-profile info popup menu on profile lists.
*
* @param ProfileListItem $item
*/
function onStartProfileListItemProfile($item)
{
$this->showProfileOptions($item->out, $item->profile);
return true;
}
/**
* Build common remote-profile options structure.
* Currently only adds output for remote profiles, nothing for local users.
*
* @param HTMLOutputter $out
* @param Profile $profile
*/
protected function showProfileOptions(HTMLOutputter $out, Profile $profile)
{
$isRemote = !(User::staticGet('id', $profile->id));
if ($isRemote) {
$target = common_local_url('remoteprofile', array('id' => $profile->id));
$label = _m('Remote profile options...');
$item->out->elementStart('div', 'remote-profile-options');
$item->out->element('a', array('href' => $target), $label);
$item->out->elementEnd('div');
$out->elementStart('div', 'remote-profile-options');
$out->element('a', array('href' => $target), $label);
$out->elementEnd('div');
}
}
}

View File

@ -4,20 +4,36 @@
*/
$(function() {
function ModPlus_setup(notice) {
if ($(notice).find('.remote-profile-options').size()) {
var $options = $(notice).find('.remote-profile-options');
$options.prepend($())
$(notice).find('.author').mouseenter(function(event) {
$(notice).find('.remote-profile-options').fadeIn();
});
$(notice).mouseleave(function(event) {
$(notice).find('.remote-profile-options').fadeOut();
});
// Notice lists...
$('.notice .author').live('mouseenter', function(e) {
var notice = $(this).closest('.notice');
var popup = notice.find('.remote-profile-options');
if (popup.length) {
popup.fadeIn();
}
}
$('.notice').each(function() {
ModPlus_setup(this);
});
$('.notice').live('mouseleave', function(e) {
var notice = $(this);
var popup = notice.find('.remote-profile-options');
if (popup.length) {
popup.fadeOut();
}
});
// Profile lists...
$('.profile .avatar').live('mouseenter', function(e) {
var profile = $(this).closest('.profile');
var popup = profile.find('.remote-profile-options');
if (popup.length) {
popup.fadeIn();
}
});
$('.profile').live('mouseleave', function(e) {
var profile = $(this);
var popup = profile.find('.remote-profile-options');
if (popup.length) {
popup.fadeOut();
}
});
});