basic support (still needs some js to expose it) for sharing an item on a remote site by sending it through oexchange on your home hub. Untested.

This commit is contained in:
friendica 2013-10-23 21:49:50 -07:00
parent 7b7ef56b54
commit c88fd01205
2 changed files with 54 additions and 14 deletions

View File

@ -58,6 +58,25 @@
});
}
// Get offset adding all offsets, slow fall-back method
var getOffsetSlow = function(el){
var top = 0, left = 0;
do {
top += el.offsetTop || 0;
left += el.offsetLeft || 0;
el = el.offsetParent;
} while (el);
return {
left: left,
top: top
};
};
// Needs more testing, will be rewriten for next version
// getOffset function copied from jQuery lib (http://jquery.com/)
if (document.documentElement.getBoundingClientRect){
@ -78,7 +97,12 @@
var bound = body.getBoundingClientRect();
zoom = (bound.right - bound.left) / body.clientWidth;
}
// some CSS layouts gives 0 width and/or bounding boxes
// in this case we fall back to the slow method
if (zoom == 0 || body.clientWidth == 0)
return getOffsetSlow(el);
if (zoom > 1) {
clientTop = 0;
clientLeft = 0;
@ -92,20 +116,21 @@
};
};
} else {
// Get offset adding all offsets
var getOffset = function(el){
var top = 0, left = 0;
do {
top += el.offsetTop || 0;
left += el.offsetLeft || 0;
el = el.offsetParent;
} while (el);
// // Get offset adding all offsets
// var getOffset = function(el){
// var top = 0, left = 0;
// do {
// top += el.offsetTop || 0;
// left += el.offsetLeft || 0;
// el = el.offsetParent;
// } while (el);
return {
left: left,
top: top
};
};
// return {
// left: left,
// top: top
// };
// };
var getOffset = getOffsetSlowl
}
/**

View File

@ -15,6 +15,21 @@ function oexchange_init(&$a) {
function oexchange_content(&$a) {
if(! local_user()) {
if(remote_user()) {
$observer = $a->get_observer();
if($observer && $observer['xchan_url']) {
$parsed = @parse_url($observer['xchan_url']);
if(! $parsed) {
notice( t('Unable to find your hub.') . EOL);
return;
}
$url = $parsed['scheme'] . '://' . $parsed['host'] . (($parsed['port']) ? ':' . $parsed['port'] : '');
$url .= '/oexchange';
$result = z_post_url($url,$_REQUEST);
json_return_and_die($result);
}
}
return login(false);
}