forked from GNUsocial/gnu-social
Merge branch '0.9.x'
This commit is contained in:
commit
f6e22da122
@ -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');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user