Merge https://github.com/friendica/friendica into pull
This commit is contained in:
commit
7673579afc
12 changed files with 242 additions and 110 deletions
4
boot.php
4
boot.php
|
@ -1414,7 +1414,9 @@ if(! function_exists('profile_load')) {
|
||||||
|
|
||||||
$a->page['title'] = $a->profile['name'] . " @ " . $a->config['sitename'];
|
$a->page['title'] = $a->profile['name'] . " @ " . $a->config['sitename'];
|
||||||
|
|
||||||
$_SESSION['theme'] = $a->profile['theme'];
|
if (!$profiledata)
|
||||||
|
$_SESSION['theme'] = $a->profile['theme'];
|
||||||
|
|
||||||
$_SESSION['mobile-theme'] = $a->profile['mobile-theme'];
|
$_SESSION['mobile-theme'] = $a->profile['mobile-theme'];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -152,9 +152,9 @@ function bb_rearrange_share($shared) {
|
||||||
if ($matches)
|
if ($matches)
|
||||||
$description = trim($matches[1]);
|
$description = trim($matches[1]);
|
||||||
|
|
||||||
$url = htmlentities($url, ENT_QUOTES, 'UTF-8', false);
|
$url = str_replace(array("[", "]"), array("[", "]"), htmlentities($url, ENT_QUOTES, 'UTF-8', false));
|
||||||
$title = htmlentities($title, ENT_QUOTES, 'UTF-8', false);
|
$title = str_replace(array("[", "]"), array("[", "]"), htmlentities($title, ENT_QUOTES, 'UTF-8', false));
|
||||||
$preview = htmlentities($preview, ENT_QUOTES, 'UTF-8', false);
|
$preview = str_replace(array("[", "]"), array("[", "]"), htmlentities($preview, ENT_QUOTES, 'UTF-8', false));
|
||||||
|
|
||||||
$Text = trim($shared[1])."\n[attachment type='".$type."'";
|
$Text = trim($shared[1])."\n[attachment type='".$type."'";
|
||||||
|
|
||||||
|
@ -165,7 +165,7 @@ function bb_rearrange_share($shared) {
|
||||||
if ($preview != "") {
|
if ($preview != "") {
|
||||||
require_once("include/Photo.php");
|
require_once("include/Photo.php");
|
||||||
$picturedata = get_photo_info($preview);
|
$picturedata = get_photo_info($preview);
|
||||||
// echo $preview."*".print_r($picturedata, true)."*";
|
|
||||||
if (count($picturedata) > 0) {
|
if (count($picturedata) > 0) {
|
||||||
// if the preview picture is larger than 500 pixels then show it in a larger mode
|
// if the preview picture is larger than 500 pixels then show it in a larger mode
|
||||||
// But only, if the picture isn't higher than large (To prevent huge posts)
|
// But only, if the picture isn't higher than large (To prevent huge posts)
|
||||||
|
@ -281,8 +281,6 @@ function tryoembed($match){
|
||||||
if (isset($match[2]))
|
if (isset($match[2]))
|
||||||
$o->title = $match[2];
|
$o->title = $match[2];
|
||||||
|
|
||||||
//echo "<pre>"; var_dump($match, $url, $o); killme();
|
|
||||||
|
|
||||||
if ($o->type=="error") return $match[0];
|
if ($o->type=="error") return $match[0];
|
||||||
|
|
||||||
$html = oembed_format_object($o);
|
$html = oembed_format_object($o);
|
||||||
|
@ -586,11 +584,13 @@ function bb_ShareAttributes($share, $simplehtml) {
|
||||||
return($text);
|
return($text);
|
||||||
}
|
}
|
||||||
|
|
||||||
function GetProfileUsername($profile, $username, $compact = false) {
|
function GetProfileUsername($profile, $username, $compact = false, $getnetwork = false) {
|
||||||
|
|
||||||
$twitter = preg_replace("=https?://twitter.com/(.*)=ism", "$1@twitter.com", $profile);
|
$twitter = preg_replace("=https?://twitter.com/(.*)=ism", "$1@twitter.com", $profile);
|
||||||
if ($twitter != $profile) {
|
if ($twitter != $profile) {
|
||||||
if ($compact)
|
if ($getnetwork)
|
||||||
|
return(NETWORK_TWITTER);
|
||||||
|
elseif ($compact)
|
||||||
return($twitter);
|
return($twitter);
|
||||||
else
|
else
|
||||||
return($username." (".$twitter.")");
|
return($username." (".$twitter.")");
|
||||||
|
@ -598,7 +598,9 @@ function GetProfileUsername($profile, $username, $compact = false) {
|
||||||
|
|
||||||
$appnet = preg_replace("=https?://alpha.app.net/(.*)=ism", "$1@alpha.app.net", $profile);
|
$appnet = preg_replace("=https?://alpha.app.net/(.*)=ism", "$1@alpha.app.net", $profile);
|
||||||
if ($appnet != $profile) {
|
if ($appnet != $profile) {
|
||||||
if ($compact)
|
if ($getnetwork)
|
||||||
|
return(NETWORK_APPNET);
|
||||||
|
elseif ($compact)
|
||||||
return($appnet);
|
return($appnet);
|
||||||
else
|
else
|
||||||
return($username." (".$appnet.")");
|
return($username." (".$appnet.")");
|
||||||
|
@ -606,7 +608,9 @@ function GetProfileUsername($profile, $username, $compact = false) {
|
||||||
|
|
||||||
$gplus = preg_replace("=https?://plus.google.com/(.*)=ism", "$1@plus.google.com", $profile);
|
$gplus = preg_replace("=https?://plus.google.com/(.*)=ism", "$1@plus.google.com", $profile);
|
||||||
if ($gplus != $profile) {
|
if ($gplus != $profile) {
|
||||||
if ($compact)
|
if ($getnetwork)
|
||||||
|
return(NETWORK_GPLUS);
|
||||||
|
elseif ($compact)
|
||||||
return($gplususername." (".$username.")");
|
return($gplususername." (".$username.")");
|
||||||
else
|
else
|
||||||
return($username." (".$gplus.")");
|
return($username." (".$gplus.")");
|
||||||
|
@ -614,7 +618,9 @@ function GetProfileUsername($profile, $username, $compact = false) {
|
||||||
|
|
||||||
$friendica = preg_replace("=https?://(.*)/profile/(.*)=ism", "$2@$1", $profile);
|
$friendica = preg_replace("=https?://(.*)/profile/(.*)=ism", "$2@$1", $profile);
|
||||||
if ($friendica != $profile) {
|
if ($friendica != $profile) {
|
||||||
if ($compact)
|
if ($getnetwork)
|
||||||
|
return(NETWORK_DFRN);
|
||||||
|
elseif ($compact)
|
||||||
return($friendica);
|
return($friendica);
|
||||||
else
|
else
|
||||||
return($username." (".$friendica.")");
|
return($username." (".$friendica.")");
|
||||||
|
@ -622,7 +628,9 @@ function GetProfileUsername($profile, $username, $compact = false) {
|
||||||
|
|
||||||
$diaspora = preg_replace("=https?://(.*)/u/(.*)=ism", "$2@$1", $profile);
|
$diaspora = preg_replace("=https?://(.*)/u/(.*)=ism", "$2@$1", $profile);
|
||||||
if ($diaspora != $profile) {
|
if ($diaspora != $profile) {
|
||||||
if ($compact)
|
if ($getnetwork)
|
||||||
|
return(NETWORK_DIASPORA);
|
||||||
|
elseif ($compact)
|
||||||
return($diaspora);
|
return($diaspora);
|
||||||
else
|
else
|
||||||
return($username." (".$diaspora.")");
|
return($username." (".$diaspora.")");
|
||||||
|
@ -635,7 +643,9 @@ function GetProfileUsername($profile, $username, $compact = false) {
|
||||||
$UserData = fetch_url("http://".$StatusnetHost."/api/users/show.json?user_id=".$StatusnetUser);
|
$UserData = fetch_url("http://".$StatusnetHost."/api/users/show.json?user_id=".$StatusnetUser);
|
||||||
$user = json_decode($UserData);
|
$user = json_decode($UserData);
|
||||||
if ($user) {
|
if ($user) {
|
||||||
if ($compact)
|
if ($getnetwork)
|
||||||
|
return(NETWORK_STATUSNET);
|
||||||
|
elseif ($compact)
|
||||||
return($user->screen_name."@".$StatusnetHost);
|
return($user->screen_name."@".$StatusnetHost);
|
||||||
else
|
else
|
||||||
return($username." (".$user->screen_name."@".$StatusnetHost.")");
|
return($username." (".$user->screen_name."@".$StatusnetHost.")");
|
||||||
|
@ -648,7 +658,9 @@ function GetProfileUsername($profile, $username, $compact = false) {
|
||||||
if ($rest == "") {
|
if ($rest == "") {
|
||||||
$pumpio = preg_replace("=https?://([\.\w]+)/([\.\w]+)(.*)=ism", "$2@$1", $profile);
|
$pumpio = preg_replace("=https?://([\.\w]+)/([\.\w]+)(.*)=ism", "$2@$1", $profile);
|
||||||
if ($pumpio != $profile) {
|
if ($pumpio != $profile) {
|
||||||
if ($compact)
|
if ($getnetwork)
|
||||||
|
return(NETWORK_PUMPIO);
|
||||||
|
elseif ($compact)
|
||||||
return($pumpio);
|
return($pumpio);
|
||||||
else
|
else
|
||||||
return($username." (".$pumpio.")");
|
return($username." (".$pumpio.")");
|
||||||
|
|
|
@ -983,7 +983,16 @@ function encode_rel_links($links) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function item_store($arr,$force_parent = false) {
|
function item_store($arr,$force_parent = false, $notify = false) {
|
||||||
|
|
||||||
|
// If it is a posting where users should get notifications, then define it as wall posting
|
||||||
|
if ($notify) {
|
||||||
|
$arr['wall'] = 1;
|
||||||
|
$arr['type'] = 'wall';
|
||||||
|
$arr['origin'] = 1;
|
||||||
|
$arr['last-child'] = 1;
|
||||||
|
$arr['network'] = NETWORK_DFRN;
|
||||||
|
}
|
||||||
|
|
||||||
// If a Diaspora signature structure was passed in, pull it out of the
|
// If a Diaspora signature structure was passed in, pull it out of the
|
||||||
// item array and set it aside for later storage.
|
// item array and set it aside for later storage.
|
||||||
|
@ -1144,6 +1153,7 @@ function item_store($arr,$force_parent = false) {
|
||||||
$allow_gid = $arr['allow_gid'];
|
$allow_gid = $arr['allow_gid'];
|
||||||
$deny_cid = $arr['deny_cid'];
|
$deny_cid = $arr['deny_cid'];
|
||||||
$deny_gid = $arr['deny_gid'];
|
$deny_gid = $arr['deny_gid'];
|
||||||
|
$notify_type = 'wall-new';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
|
@ -1180,6 +1190,7 @@ function item_store($arr,$force_parent = false) {
|
||||||
$deny_cid = $r[0]['deny_cid'];
|
$deny_cid = $r[0]['deny_cid'];
|
||||||
$deny_gid = $r[0]['deny_gid'];
|
$deny_gid = $r[0]['deny_gid'];
|
||||||
$arr['wall'] = $r[0]['wall'];
|
$arr['wall'] = $r[0]['wall'];
|
||||||
|
$notify_type = 'comment-new';
|
||||||
|
|
||||||
// if the parent is private, force privacy for the entire conversation
|
// if the parent is private, force privacy for the entire conversation
|
||||||
// This differs from the above settings as it subtly allows comments from
|
// This differs from the above settings as it subtly allows comments from
|
||||||
|
@ -1417,6 +1428,9 @@ function item_store($arr,$force_parent = false) {
|
||||||
create_tags_from_item($current_post);
|
create_tags_from_item($current_post);
|
||||||
create_files_from_item($current_post);
|
create_files_from_item($current_post);
|
||||||
|
|
||||||
|
if ($notify)
|
||||||
|
proc_run('php', "include/notifier.php", $notify_type, $current_post);
|
||||||
|
|
||||||
return $current_post;
|
return $current_post;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2532,16 +2546,6 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
|
||||||
if($contact['network'] === NETWORK_FEED)
|
if($contact['network'] === NETWORK_FEED)
|
||||||
$datarray['private'] = 2;
|
$datarray['private'] = 2;
|
||||||
|
|
||||||
// This is my contact on another system, but it's really me.
|
|
||||||
// Turn this into a wall post.
|
|
||||||
|
|
||||||
if($contact['remote_self']) {
|
|
||||||
$datarray['wall'] = 1;
|
|
||||||
if($contact['network'] === NETWORK_FEED) {
|
|
||||||
$datarray['private'] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$datarray['parent-uri'] = $item_id;
|
$datarray['parent-uri'] = $item_id;
|
||||||
$datarray['uid'] = $importer['uid'];
|
$datarray['uid'] = $importer['uid'];
|
||||||
$datarray['contact-id'] = $contact['id'];
|
$datarray['contact-id'] = $contact['id'];
|
||||||
|
@ -2564,8 +2568,33 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
|
||||||
if(($contact['rel'] == CONTACT_IS_FOLLOWER) && (! tgroup_check($importer['uid'],$datarray)))
|
if(($contact['rel'] == CONTACT_IS_FOLLOWER) && (! tgroup_check($importer['uid'],$datarray)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
// This is my contact on another system, but it's really me.
|
||||||
|
// Turn this into a wall post.
|
||||||
|
|
||||||
$r = item_store($datarray);
|
if($contact['remote_self']) {
|
||||||
|
if ($contact['remote_self'] == 2) {
|
||||||
|
$r = q("SELECT `id`,`url`,`name`,`photo`,`network` FROM `contact` WHERE `uid` = %d AND `self`", intval($importer['uid']));
|
||||||
|
if (count($r)) {
|
||||||
|
$datarray['contact-id'] = $r[0]["id"];
|
||||||
|
|
||||||
|
$datarray['owner-name'] = $r[0]["name"];
|
||||||
|
$datarray['owner-link'] = $r[0]["url"];
|
||||||
|
$datarray['owner-avatar'] = $r[0]["photo"];
|
||||||
|
|
||||||
|
$datarray['author-name'] = $datarray['owner-name'];
|
||||||
|
$datarray['author-link'] = $datarray['owner-link'];
|
||||||
|
$datarray['author-avatar'] = $datarray['owner-avatar'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$notify = true;
|
||||||
|
if($contact['network'] === NETWORK_FEED) {
|
||||||
|
$datarray['private'] = 0;
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
$notify = false;
|
||||||
|
|
||||||
|
$r = item_store($datarray, false, $notify);
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3633,12 +3662,6 @@ function local_delivery($importer,$data) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// This is my contact on another system, but it's really me.
|
|
||||||
// Turn this into a wall post.
|
|
||||||
|
|
||||||
if($importer['remote_self'])
|
|
||||||
$datarray['wall'] = 1;
|
|
||||||
|
|
||||||
$datarray['parent-uri'] = $item_id;
|
$datarray['parent-uri'] = $item_id;
|
||||||
$datarray['uid'] = $importer['importer_uid'];
|
$datarray['uid'] = $importer['importer_uid'];
|
||||||
$datarray['contact-id'] = $importer['id'];
|
$datarray['contact-id'] = $importer['id'];
|
||||||
|
@ -3658,7 +3681,31 @@ function local_delivery($importer,$data) {
|
||||||
if(($importer['rel'] == CONTACT_IS_FOLLOWER) && (! tgroup_check($importer['importer_uid'],$datarray)))
|
if(($importer['rel'] == CONTACT_IS_FOLLOWER) && (! tgroup_check($importer['importer_uid'],$datarray)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
$posted_id = item_store($datarray);
|
// This is my contact on another system, but it's really me.
|
||||||
|
// Turn this into a wall post.
|
||||||
|
|
||||||
|
if($importer['remote_self']) {
|
||||||
|
if ($importer['remote_self'] == 2) {
|
||||||
|
$r = q("SELECT `id`,`url`,`name`,`photo`,`network` FROM `contact` WHERE `uid` = %d AND `self`",
|
||||||
|
intval($importer['importer_uid']));
|
||||||
|
if (count($r)) {
|
||||||
|
$datarray['contact-id'] = $r[0]["id"];
|
||||||
|
|
||||||
|
$datarray['owner-name'] = $r[0]["name"];
|
||||||
|
$datarray['owner-link'] = $r[0]["url"];
|
||||||
|
$datarray['owner-avatar'] = $r[0]["photo"];
|
||||||
|
|
||||||
|
$datarray['author-name'] = $datarray['owner-name'];
|
||||||
|
$datarray['author-link'] = $datarray['owner-link'];
|
||||||
|
$datarray['author-avatar'] = $datarray['owner-avatar'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$notify = true;
|
||||||
|
} else
|
||||||
|
$notify = false;
|
||||||
|
|
||||||
|
$posted_id = item_store($datarray, false, $notify);
|
||||||
|
|
||||||
if(stristr($datarray['verb'],ACTIVITY_POKE)) {
|
if(stristr($datarray['verb'],ACTIVITY_POKE)) {
|
||||||
$verb = urldecode(substr($datarray['verb'],strpos($datarray['verb'],'#')+1));
|
$verb = urldecode(substr($datarray['verb'],strpos($datarray['verb'],'#')+1));
|
||||||
|
|
|
@ -55,7 +55,7 @@ function nav_info(&$a) {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$myident = ((is_array($a->user) && isset($a->user['nickname'])) ? $a->user['nickname'] . '@' : '');
|
$myident = ((is_array($a->user) && isset($a->user['nickname'])) ? $a->user['nickname'] . '@' : '');
|
||||||
|
|
||||||
$sitelocation = $myident . substr($a->get_baseurl($ssl_state),strpos($a->get_baseurl($ssl_state),'//') + 2 );
|
$sitelocation = $myident . substr($a->get_baseurl($ssl_state),strpos($a->get_baseurl($ssl_state),'//') + 2 );
|
||||||
|
|
||||||
|
|
||||||
|
@ -86,7 +86,7 @@ function nav_info(&$a) {
|
||||||
'icon' => (count($r) ? $a->get_cached_avatar_image($r[0]['micro']) : $a->get_baseurl($ssl_state)."/images/person-48.jpg"),
|
'icon' => (count($r) ? $a->get_cached_avatar_image($r[0]['micro']) : $a->get_baseurl($ssl_state)."/images/person-48.jpg"),
|
||||||
'name' => $a->user['username'],
|
'name' => $a->user['username'],
|
||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$nav['login'] = Array('login',t('Login'), ($a->module == 'login'?'selected':''), t('Sign in'));
|
$nav['login'] = Array('login',t('Login'), ($a->module == 'login'?'selected':''), t('Sign in'));
|
||||||
|
@ -101,7 +101,7 @@ function nav_info(&$a) {
|
||||||
if(! $homelink)
|
if(! $homelink)
|
||||||
$homelink = ((x($_SESSION,'visitor_home')) ? $_SESSION['visitor_home'] : '');
|
$homelink = ((x($_SESSION,'visitor_home')) ? $_SESSION['visitor_home'] : '');
|
||||||
|
|
||||||
if(($a->module != 'home') && (! (local_user())))
|
if(($a->module != 'home') && (! (local_user())))
|
||||||
$nav['home'] = array($homelink, t('Home'), "", t('Home Page'));
|
$nav['home'] = array($homelink, t('Home'), "", t('Home Page'));
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -175,13 +175,16 @@ function oembed_format_object($j){
|
||||||
|
|
||||||
$embedlink .= $j->author_name;
|
$embedlink .= $j->author_name;
|
||||||
}
|
}
|
||||||
|
if (trim($embedlink) == "")
|
||||||
|
$embedlink = $embedurl;
|
||||||
|
|
||||||
$ret .= "<a href='$embedurl' rel='oembed'>$embedlink</a>";
|
$ret .= "<a href='$embedurl' rel='oembed'>$embedlink</a>";
|
||||||
}
|
}
|
||||||
//if (isset($j->author_name)) $ret.=" by ".$j->author_name;
|
//if (isset($j->author_name)) $ret.=" by ".$j->author_name;
|
||||||
//if (isset($j->provider_name)) $ret.=" on ".$j->provider_name;
|
//if (isset($j->provider_name)) $ret.=" on ".$j->provider_name;
|
||||||
} else {
|
} else {
|
||||||
// add <a> for html2bbcode conversion
|
// add <a> for html2bbcode conversion
|
||||||
$ret .= "<a href='$embedurl' rel='oembed'></a>";
|
$ret .= "<a href='$embedurl' rel='oembed'>$embedurl</a>";
|
||||||
}
|
}
|
||||||
$ret.="<br style='clear:left'></span>";
|
$ret.="<br style='clear:left'></span>";
|
||||||
return mb_convert_encoding($ret, 'HTML-ENTITIES', mb_detect_encoding($ret));
|
return mb_convert_encoding($ret, 'HTML-ENTITIES', mb_detect_encoding($ret));
|
||||||
|
|
|
@ -158,7 +158,7 @@ function crepair_content(&$a) {
|
||||||
'$label_photo' => t('New photo from this URL'),
|
'$label_photo' => t('New photo from this URL'),
|
||||||
'$label_remote_self' => t('Remote Self'),
|
'$label_remote_self' => t('Remote Self'),
|
||||||
'$allow_remote_self' => get_config('system','allow_users_remote_self'),
|
'$allow_remote_self' => get_config('system','allow_users_remote_self'),
|
||||||
'$remote_self' => array('remote_self', t('Mirror postings from this contact'), $contact['remote_self'], t('Mark this contact as remote_self, this will cause friendica to repost new entries from this contact.')),
|
'$remote_self' => array('remote_self', t('Mirror postings from this contact'), $contact['remote_self'], t('Mark this contact as remote_self, this will cause friendica to repost new entries from this contact.'), array('0'=>t('No mirroring'), '1'=>t('Mirror as forwarded posting'), '2'=>t('Mirror as my own posting'))),
|
||||||
'$contact_name' => $contact['name'],
|
'$contact_name' => $contact['name'],
|
||||||
'$contact_nick' => $contact['nick'],
|
'$contact_nick' => $contact['nick'],
|
||||||
'$contact_id' => $contact['id'],
|
'$contact_id' => $contact['id'],
|
||||||
|
|
|
@ -183,7 +183,9 @@ function dfrn_request_post(&$a) {
|
||||||
require_once('include/group.php');
|
require_once('include/group.php');
|
||||||
group_add_member(local_user(),'',$r[0]['id'],$g[0]['def_gid']);
|
group_add_member(local_user(),'',$r[0]['id'],$g[0]['def_gid']);
|
||||||
}
|
}
|
||||||
}
|
$forwardurl = $a->get_baseurl()."/contacts/".$r[0]['id'];
|
||||||
|
} else
|
||||||
|
$forwardurl = $a->get_baseurl()."/contacts";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allow the blocked remote notification to complete
|
* Allow the blocked remote notification to complete
|
||||||
|
@ -197,7 +199,8 @@ function dfrn_request_post(&$a) {
|
||||||
|
|
||||||
// (ignore reply, nothing we can do it failed)
|
// (ignore reply, nothing we can do it failed)
|
||||||
|
|
||||||
goaway(zrl($dfrn_url));
|
// Old: goaway(zrl($dfrn_url));
|
||||||
|
goaway($forwardurl);
|
||||||
return; // NOTREACHED
|
return; // NOTREACHED
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
161
mod/display.php
161
mod/display.php
|
@ -16,7 +16,7 @@ function display_init(&$a) {
|
||||||
|
|
||||||
// Does the local user have this item?
|
// Does the local user have this item?
|
||||||
if (local_user()) {
|
if (local_user()) {
|
||||||
$r = q("SELECT `id`, `parent`, `author-name`, `author-link`, `author-avatar`, `network` FROM `item`
|
$r = q("SELECT `id`, `parent`, `author-name`, `author-link`, `author-avatar`, `network`, `body` FROM `item`
|
||||||
WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
|
WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
|
||||||
AND `guid` = '%s' AND `uid` = %d", $a->argv[1], local_user());
|
AND `guid` = '%s' AND `uid` = %d", $a->argv[1], local_user());
|
||||||
if (count($r)) {
|
if (count($r)) {
|
||||||
|
@ -28,12 +28,12 @@ function display_init(&$a) {
|
||||||
// Or is it anywhere on the server?
|
// Or is it anywhere on the server?
|
||||||
if ($nick == "") {
|
if ($nick == "") {
|
||||||
$r = q("SELECT `user`.`nickname`, `item`.`id`, `item`.`parent`, `item`.`author-name`,
|
$r = q("SELECT `user`.`nickname`, `item`.`id`, `item`.`parent`, `item`.`author-name`,
|
||||||
`item`.`author-link`, `item`.`author-avatar`, `item`.`network`, `item`.`uid`
|
`item`.`author-link`, `item`.`author-avatar`, `item`.`network`, `item`.`uid`, `item`.`body`
|
||||||
FROM `item` INNER JOIN `user` ON `user`.`uid` = `item`.`uid`
|
FROM `item` INNER JOIN `user` ON `user`.`uid` = `item`.`uid`
|
||||||
WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
|
WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
|
||||||
AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = ''
|
AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = ''
|
||||||
AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = ''
|
AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = ''
|
||||||
AND `item`.`private` = 0
|
AND `item`.`private` = 0 AND NOT `user`.`hidewall`
|
||||||
AND `item`.`guid` = '%s'", $a->argv[1]);
|
AND `item`.`guid` = '%s'", $a->argv[1]);
|
||||||
// AND `item`.`private` = 0 AND `item`.`wall` = 1
|
// AND `item`.`private` = 0 AND `item`.`wall` = 1
|
||||||
if (count($r)) {
|
if (count($r)) {
|
||||||
|
@ -43,56 +43,16 @@ function display_init(&$a) {
|
||||||
}
|
}
|
||||||
if (count($r)) {
|
if (count($r)) {
|
||||||
if ($r[0]["id"] != $r[0]["parent"])
|
if ($r[0]["id"] != $r[0]["parent"])
|
||||||
$r = q("SELECT `id`, `author-name`, `author-link`, `author-avatar`, `network` FROM `item`
|
$r = q("SELECT `id`, `author-name`, `author-link`, `author-avatar`, `network`, `body` FROM `item`
|
||||||
WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
|
WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
|
||||||
AND `id` = %d", $r[0]["parent"]);
|
AND `id` = %d", $r[0]["parent"]);
|
||||||
|
|
||||||
if (!strstr(normalise_link($r[0]["author-link"]), normalise_link($a->get_baseurl()))) {
|
$profiledata = display_fetchauthor($a, $r[0]);
|
||||||
require_once("mod/proxy.php");
|
|
||||||
require_once("include/bbcode.php");
|
|
||||||
$profiledata["uid"] = -1;
|
|
||||||
$profiledata["nickname"] = $r[0]["author-name"];
|
|
||||||
$profiledata["name"] = $r[0]["author-name"];
|
|
||||||
$profiledata["picdate"] = "";
|
|
||||||
$profiledata["photo"] = proxy_url($r[0]["author-avatar"]);
|
|
||||||
$profiledata["url"] = $r[0]["author-link"];
|
|
||||||
$profiledata["network"] = $r[0]["network"];
|
|
||||||
|
|
||||||
// Fetching profile data from unique contacts
|
if (strstr(normalise_link($profiledata["url"]), normalise_link($a->get_baseurl()))) {
|
||||||
// To-do: Extend "unique contacts" table for further contact data like location, ...
|
$nickname = str_replace(normalise_link($a->get_baseurl())."/profile/", "", normalise_link($profiledata["url"]));
|
||||||
$r = q("SELECT `avatar`, `nick` FROM `unique_contacts` WHERE `url` = '%s'", normalise_link($profiledata["url"]));
|
|
||||||
if (count($r)) {
|
|
||||||
$profiledata["photo"] = proxy_url($r[0]["avatar"]);
|
|
||||||
if ($r[0]["nick"] != "")
|
|
||||||
$profiledata["nickname"] = $r[0]["nick"];
|
|
||||||
} else {
|
|
||||||
// Is this case possible?
|
|
||||||
// Fetching further contact data from the contact table, when it isn't available in the "unique contacts"
|
|
||||||
$r = q("SELECT `photo`, `nick` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d",
|
|
||||||
normalise_link($profiledata["url"]), $itemuid);
|
|
||||||
if (count($r)) {
|
|
||||||
$profiledata["photo"] = proxy_url($r[0]["photo"]);
|
|
||||||
if ($r[0]["nick"] != "")
|
|
||||||
$profiledata["nickname"] = $r[0]["nick"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (local_user()) {
|
|
||||||
if ($profiledata["network"] == NETWORK_DFRN) {
|
|
||||||
$connect = str_replace("/profile/", "/dfrn_request/", $profiledata["url"])."&addr=".bin2hex($a->get_baseurl()."/profile/".$a->user["nickname"]);
|
|
||||||
$profiledata["remoteconnect"] = $connect;
|
|
||||||
} elseif ($profiledata["network"] == NETWORK_DIASPORA)
|
|
||||||
$profiledata["remoteconnect"] = $a->get_baseurl()."/contacts?add=".GetProfileUsername($profiledata["url"], "", true);
|
|
||||||
} elseif ($profiledata["network"] == NETWORK_DFRN) {
|
|
||||||
$connect = str_replace("/profile/", "/dfrn_request/", $profiledata["url"]);
|
|
||||||
$profiledata["remoteconnect"] = $connect;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$nickname = str_replace(normalise_link($a->get_baseurl())."/profile/", "", normalise_link($r[0]["author-link"]));
|
|
||||||
|
|
||||||
if (($nickname != $a->user["nickname"])) {
|
if (($nickname != $a->user["nickname"])) {
|
||||||
$profiledata["url"] = $r[0]["author-link"];
|
|
||||||
|
|
||||||
$r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile`
|
$r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile`
|
||||||
INNER JOIN `contact` on `contact`.`uid` = `profile`.`uid` INNER JOIN `user` ON `profile`.`uid` = `user`.`uid`
|
INNER JOIN `contact` on `contact`.`uid` = `profile`.`uid` INNER JOIN `user` ON `profile`.`uid` = `user`.`uid`
|
||||||
WHERE `user`.`nickname` = '%s' AND `profile`.`is-default` = 1 and `contact`.`self` = 1 LIMIT 1",
|
WHERE `user`.`nickname` = '%s' AND `profile`.`is-default` = 1 and `contact`.`self` = 1 LIMIT 1",
|
||||||
|
@ -100,9 +60,15 @@ function display_init(&$a) {
|
||||||
);
|
);
|
||||||
if (count($r))
|
if (count($r))
|
||||||
$profiledata = $r[0];
|
$profiledata = $r[0];
|
||||||
|
|
||||||
$profiledata["network"] = NETWORK_DFRN;
|
$profiledata["network"] = NETWORK_DFRN;
|
||||||
}
|
} else
|
||||||
|
$profiledata = array();
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
$a->error = 404;
|
||||||
|
notice( t('Item not found.') . EOL);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,6 +76,103 @@ function display_init(&$a) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function display_fetchauthor($a, $item) {
|
||||||
|
require_once("mod/proxy.php");
|
||||||
|
require_once("include/bbcode.php");
|
||||||
|
|
||||||
|
$profiledata = array();
|
||||||
|
$profiledata["uid"] = -1;
|
||||||
|
$profiledata["nickname"] = $item["author-name"];
|
||||||
|
$profiledata["name"] = $item["author-name"];
|
||||||
|
$profiledata["picdate"] = "";
|
||||||
|
$profiledata["photo"] = proxy_url($item["author-avatar"]);
|
||||||
|
$profiledata["url"] = $item["author-link"];
|
||||||
|
$profiledata["network"] = $item["network"];
|
||||||
|
|
||||||
|
// Fetching profile data from unique contacts
|
||||||
|
// To-do: Extend "unique contacts" table for further contact data like location, ...
|
||||||
|
$r = q("SELECT `avatar`, `nick` FROM `unique_contacts` WHERE `url` = '%s'", normalise_link($profiledata["url"]));
|
||||||
|
if (count($r)) {
|
||||||
|
$profiledata["photo"] = proxy_url($r[0]["avatar"]);
|
||||||
|
if ($r[0]["nick"] != "")
|
||||||
|
$profiledata["nickname"] = $r[0]["nick"];
|
||||||
|
} else {
|
||||||
|
// Is this case possible?
|
||||||
|
// Fetching further contact data from the contact table, when it isn't available in the "unique contacts"
|
||||||
|
$r = q("SELECT `photo`, `nick` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d",
|
||||||
|
normalise_link($profiledata["url"]), $itemuid);
|
||||||
|
if (count($r)) {
|
||||||
|
$profiledata["photo"] = proxy_url($r[0]["photo"]);
|
||||||
|
if ($r[0]["nick"] != "")
|
||||||
|
$profiledata["nickname"] = $r[0]["nick"];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check for a repeated message
|
||||||
|
$skip = false;
|
||||||
|
$body = trim($item["body"]);
|
||||||
|
|
||||||
|
// Skip if it isn't a pure repeated messages
|
||||||
|
// Does it start with a share?
|
||||||
|
if (!$skip AND strpos($body, "[share") > 0)
|
||||||
|
$skip = true;
|
||||||
|
|
||||||
|
// Does it end with a share?
|
||||||
|
if (!$skip AND (strlen($body) > (strrpos($body, "[/share]") + 8)))
|
||||||
|
$skip = true;
|
||||||
|
|
||||||
|
if (!$skip) {
|
||||||
|
$attributes = preg_replace("/\[share(.*?)\]\s?(.*?)\s?\[\/share\]\s?/ism","$1",$body);
|
||||||
|
// Skip if there is no shared message in there
|
||||||
|
if ($body == $attributes)
|
||||||
|
$skip = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$skip) {
|
||||||
|
$author = "";
|
||||||
|
preg_match("/author='(.*?)'/ism", $attributes, $matches);
|
||||||
|
if ($matches[1] != "")
|
||||||
|
$profiledata["name"] = html_entity_decode($matches[1],ENT_QUOTES,'UTF-8');
|
||||||
|
|
||||||
|
preg_match('/author="(.*?)"/ism', $attributes, $matches);
|
||||||
|
if ($matches[1] != "")
|
||||||
|
$profiledata["name"] = html_entity_decode($matches[1],ENT_QUOTES,'UTF-8');
|
||||||
|
|
||||||
|
$profile = "";
|
||||||
|
preg_match("/profile='(.*?)'/ism", $attributes, $matches);
|
||||||
|
if ($matches[1] != "")
|
||||||
|
$profiledata["url"] = $matches[1];
|
||||||
|
|
||||||
|
preg_match('/profile="(.*?)"/ism', $attributes, $matches);
|
||||||
|
if ($matches[1] != "")
|
||||||
|
$profiledata["url"] = $matches[1];
|
||||||
|
|
||||||
|
$avatar = "";
|
||||||
|
preg_match("/avatar='(.*?)'/ism", $attributes, $matches);
|
||||||
|
if ($matches[1] != "")
|
||||||
|
$profiledata["photo"] = $matches[1];
|
||||||
|
|
||||||
|
preg_match('/avatar="(.*?)"/ism', $attributes, $matches);
|
||||||
|
if ($matches[1] != "")
|
||||||
|
$profiledata["photo"] = $matches[1];
|
||||||
|
|
||||||
|
$profiledata["nickname"] = $profiledata["name"];
|
||||||
|
$profiledata["network"] = GetProfileUsername($profiledata["url"], "", false, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (local_user()) {
|
||||||
|
if ($profiledata["network"] == NETWORK_DFRN) {
|
||||||
|
$connect = str_replace("/profile/", "/dfrn_request/", $profiledata["url"])."&addr=".bin2hex($a->get_baseurl()."/profile/".$a->user["nickname"]);
|
||||||
|
$profiledata["remoteconnect"] = $connect;
|
||||||
|
} elseif ($profiledata["network"] == NETWORK_DIASPORA)
|
||||||
|
$profiledata["remoteconnect"] = $a->get_baseurl()."/contacts?add=".GetProfileUsername($profiledata["url"], "", true);
|
||||||
|
} elseif ($profiledata["network"] == NETWORK_DFRN) {
|
||||||
|
$connect = str_replace("/profile/", "/dfrn_request/", $profiledata["url"]);
|
||||||
|
$profiledata["remoteconnect"] = $connect;
|
||||||
|
}
|
||||||
|
|
||||||
|
return($profiledata);
|
||||||
|
}
|
||||||
|
|
||||||
function display_content(&$a, $update = 0) {
|
function display_content(&$a, $update = 0) {
|
||||||
|
|
||||||
|
@ -161,7 +224,7 @@ function display_content(&$a, $update = 0) {
|
||||||
WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
|
WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
|
||||||
AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = ''
|
AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = ''
|
||||||
AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = ''
|
AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = ''
|
||||||
AND `item`.`private` = 0
|
AND `item`.`private` = 0 AND NOT `user`.`hidewall`
|
||||||
AND `item`.`guid` = '%s'", $a->argv[1]);
|
AND `item`.`guid` = '%s'", $a->argv[1]);
|
||||||
// AND `item`.`private` = 0 AND `item`.`wall` = 1
|
// AND `item`.`private` = 0 AND `item`.`wall` = 1
|
||||||
if (count($r)) {
|
if (count($r)) {
|
||||||
|
|
38
mod/item.php
38
mod/item.php
|
@ -736,7 +736,7 @@ function item_post(&$a) {
|
||||||
update_thread($post_id);
|
update_thread($post_id);
|
||||||
|
|
||||||
// update filetags in pconfig
|
// update filetags in pconfig
|
||||||
file_tag_update_pconfig($uid,$categories_old,$categories_new,'category');
|
file_tag_update_pconfig($uid,$categories_old,$categories_new,'category');
|
||||||
|
|
||||||
proc_run('php', "include/notifier.php", 'edit_post', "$post_id");
|
proc_run('php', "include/notifier.php", 'edit_post', "$post_id");
|
||||||
if((x($_REQUEST,'return')) && strlen($return_path)) {
|
if((x($_REQUEST,'return')) && strlen($return_path)) {
|
||||||
|
@ -792,8 +792,8 @@ function item_post(&$a) {
|
||||||
dbesc($datarray['attach']),
|
dbesc($datarray['attach']),
|
||||||
intval($datarray['bookmark']),
|
intval($datarray['bookmark']),
|
||||||
intval($datarray['origin']),
|
intval($datarray['origin']),
|
||||||
intval($datarray['moderated']),
|
intval($datarray['moderated']),
|
||||||
dbesc($datarray['file'])
|
dbesc($datarray['file'])
|
||||||
);
|
);
|
||||||
|
|
||||||
$r = q("SELECT `id` FROM `item` WHERE `uri` = '%s' LIMIT 1",
|
$r = q("SELECT `id` FROM `item` WHERE `uri` = '%s' LIMIT 1",
|
||||||
|
@ -804,7 +804,7 @@ function item_post(&$a) {
|
||||||
add_thread($post_id);
|
add_thread($post_id);
|
||||||
|
|
||||||
// update filetags in pconfig
|
// update filetags in pconfig
|
||||||
file_tag_update_pconfig($uid,$categories_old,$categories_new,'category');
|
file_tag_update_pconfig($uid,$categories_old,$categories_new,'category');
|
||||||
|
|
||||||
// Store the fresh generated item into the cache
|
// Store the fresh generated item into the cache
|
||||||
$cachefile = get_cachefile($datarray["guid"]."-".hash("md5", $datarray['body']));
|
$cachefile = get_cachefile($datarray["guid"]."-".hash("md5", $datarray['body']));
|
||||||
|
@ -942,25 +942,25 @@ function item_post(&$a) {
|
||||||
. '<br />';
|
. '<br />';
|
||||||
$disclaimer .= sprintf( t('You may visit them online at %s'), $a->get_baseurl() . '/profile/' . $a->user['nickname']) . EOL;
|
$disclaimer .= sprintf( t('You may visit them online at %s'), $a->get_baseurl() . '/profile/' . $a->user['nickname']) . EOL;
|
||||||
$disclaimer .= t('Please contact the sender by replying to this post if you do not wish to receive these messages.') . EOL;
|
$disclaimer .= t('Please contact the sender by replying to this post if you do not wish to receive these messages.') . EOL;
|
||||||
if (!$datarray['title']=='') {
|
if (!$datarray['title']=='') {
|
||||||
$subject = email_header_encode($datarray['title'],'UTF-8');
|
$subject = email_header_encode($datarray['title'],'UTF-8');
|
||||||
} else {
|
} else {
|
||||||
$subject = email_header_encode('[Friendica]' . ' ' . sprintf( t('%s posted an update.'),$a->user['username']),'UTF-8');
|
$subject = email_header_encode('[Friendica]' . ' ' . sprintf( t('%s posted an update.'),$a->user['username']),'UTF-8');
|
||||||
}
|
}
|
||||||
$link = '<a href="' . $a->get_baseurl() . '/profile/' . $a->user['nickname'] . '"><img src="' . $author['thumb'] . '" alt="' . $a->user['username'] . '" /></a><br /><br />';
|
$link = '<a href="' . $a->get_baseurl() . '/profile/' . $a->user['nickname'] . '"><img src="' . $author['thumb'] . '" alt="' . $a->user['username'] . '" /></a><br /><br />';
|
||||||
$html = prepare_body($datarray);
|
$html = prepare_body($datarray);
|
||||||
$message = '<html><body>' . $link . $html . $disclaimer . '</body></html>';
|
$message = '<html><body>' . $link . $html . $disclaimer . '</body></html>';
|
||||||
include_once('include/html2plain.php');
|
include_once('include/html2plain.php');
|
||||||
$params = array (
|
$params = array (
|
||||||
'fromName' => $a->user['username'],
|
'fromName' => $a->user['username'],
|
||||||
'fromEmail' => $a->user['email'],
|
'fromEmail' => $a->user['email'],
|
||||||
'toEmail' => $addr,
|
'toEmail' => $addr,
|
||||||
'replyTo' => $a->user['email'],
|
'replyTo' => $a->user['email'],
|
||||||
'messageSubject' => $subject,
|
'messageSubject' => $subject,
|
||||||
'htmlVersion' => $message,
|
'htmlVersion' => $message,
|
||||||
'textVersion' => html2plain($html.$disclaimer),
|
'textVersion' => html2plain($html.$disclaimer),
|
||||||
);
|
);
|
||||||
enotify::send($params);
|
enotify::send($params);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
<label id="dfrn-url-label" for="dfrn-url" >{{$your_address}}</label>
|
<label id="dfrn-url-label" for="dfrn-url" >{{$your_address}}</label>
|
||||||
{{if $myaddr}}
|
{{if $myaddr}}
|
||||||
{{$myaddr}}
|
{{$myaddr}}
|
||||||
|
<input type="hidden" name="dfrn_url" id="dfrn-url" size="32" value="{{$myaddr}}" />
|
||||||
{{else}}
|
{{else}}
|
||||||
<input type="text" name="dfrn_url" id="dfrn-url" size="32" value="{{$myaddr}}" />
|
<input type="text" name="dfrn_url" id="dfrn-url" size="32" value="{{$myaddr}}" />
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
<div class="clear"></div>
|
<div class="clear"></div>
|
||||||
{{if $allow_remote_self eq 1}}
|
{{if $allow_remote_self eq 1}}
|
||||||
<h4>{{$label_remote_self}}</h4>
|
<h4>{{$label_remote_self}}</h4>
|
||||||
{{include file="field_checkbox.tpl" field=$remote_self}}
|
{{include file="field_select.tpl" field=$remote_self}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<input type="submit" name="submit" value="{{$lbl_submit}}" />
|
<input type="submit" name="submit" value="{{$lbl_submit}}" />
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
<label id="dfrn-url-label" for="dfrn-url" >{{$your_address}}</label>
|
<label id="dfrn-url-label" for="dfrn-url" >{{$your_address}}</label>
|
||||||
{{if $myaddr}}
|
{{if $myaddr}}
|
||||||
{{$myaddr}}
|
{{$myaddr}}
|
||||||
|
<input type="hidden" name="dfrn_url" id="dfrn-url" size="32" value="{{$myaddr}}" />
|
||||||
{{else}}
|
{{else}}
|
||||||
<input type="text" name="dfrn_url" id="dfrn-url" size="32" value="{{$myaddr}}" />
|
<input type="text" name="dfrn_url" id="dfrn-url" size="32" value="{{$myaddr}}" />
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
Loading…
Reference in a new issue