]> git.mxchange.org Git - friendica.git/commitdiff
Merge https://github.com/friendica/friendica into pull
authorfriendica <info@friendica.com>
Tue, 2 Sep 2014 04:46:40 +0000 (21:46 -0700)
committerfriendica <info@friendica.com>
Tue, 2 Sep 2014 04:46:40 +0000 (21:46 -0700)
12 files changed:
boot.php
include/bbcode.php
include/items.php
include/nav.php
include/oembed.php
mod/crepair.php
mod/dfrn_request.php
mod/display.php
mod/item.php
view/templates/auto_request.tpl
view/templates/crepair.tpl
view/templates/dfrn_request.tpl

index 89c2d7d6f992054de8e3b908f2d19ee35202c3bd..f592b4c27c5ef8145a197161c2395d9ba59ec8bc 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -1414,7 +1414,9 @@ if(! function_exists('profile_load')) {
 
                $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'];
 
                /**
index 75aa4fd89f08acd13104e5cbb631a6feebf3ddc7..017673423b50aaa7080cfb1a75a3da890207f070 100644 (file)
@@ -152,9 +152,9 @@ function bb_rearrange_share($shared) {
        if ($matches)
                $description = trim($matches[1]);
 
-       $url = htmlentities($url, ENT_QUOTES, 'UTF-8', false);
-       $title = htmlentities($title, ENT_QUOTES, 'UTF-8', false);
-       $preview = htmlentities($preview, ENT_QUOTES, 'UTF-8', false);
+       $url = str_replace(array("[", "]"), array("&#91;", "&#93;"), htmlentities($url, ENT_QUOTES, 'UTF-8', false));
+       $title = str_replace(array("[", "]"), array("&#91;", "&#93;"), htmlentities($title, ENT_QUOTES, 'UTF-8', false));
+       $preview = str_replace(array("[", "]"), array("&#91;", "&#93;"), htmlentities($preview, ENT_QUOTES, 'UTF-8', false));
 
        $Text = trim($shared[1])."\n[attachment type='".$type."'";
 
@@ -165,7 +165,7 @@ function bb_rearrange_share($shared) {
        if ($preview != "") {
                require_once("include/Photo.php");
                $picturedata = get_photo_info($preview);
-//                echo $preview."*".print_r($picturedata, true)."*";
+
                if (count($picturedata) > 0) {
                        // 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)
@@ -281,8 +281,6 @@ function tryoembed($match){
        if (isset($match[2]))
                $o->title = $match[2];
 
-       //echo "<pre>"; var_dump($match, $url, $o); killme();
-
        if ($o->type=="error") return $match[0];
 
        $html = oembed_format_object($o);
@@ -586,11 +584,13 @@ function bb_ShareAttributes($share, $simplehtml) {
        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);
        if ($twitter != $profile) {
-               if ($compact)
+               if ($getnetwork)
+                       return(NETWORK_TWITTER);
+               elseif ($compact)
                        return($twitter);
                else
                        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);
        if ($appnet != $profile) {
-               if ($compact)
+               if ($getnetwork)
+                       return(NETWORK_APPNET);
+               elseif ($compact)
                        return($appnet);
                else
                        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);
        if ($gplus != $profile) {
-               if ($compact)
+               if ($getnetwork)
+                       return(NETWORK_GPLUS);
+               elseif ($compact)
                        return($gplususername." (".$username.")");
                else
                        return($username." (".$gplus.")");
@@ -614,7 +618,9 @@ function GetProfileUsername($profile, $username, $compact = false) {
 
        $friendica = preg_replace("=https?://(.*)/profile/(.*)=ism", "$2@$1", $profile);
        if ($friendica != $profile) {
-               if ($compact)
+               if ($getnetwork)
+                       return(NETWORK_DFRN);
+               elseif ($compact)
                        return($friendica);
                else
                        return($username." (".$friendica.")");
@@ -622,7 +628,9 @@ function GetProfileUsername($profile, $username, $compact = false) {
 
        $diaspora = preg_replace("=https?://(.*)/u/(.*)=ism", "$2@$1", $profile);
        if ($diaspora != $profile) {
-               if ($compact)
+               if ($getnetwork)
+                       return(NETWORK_DIASPORA);
+               elseif ($compact)
                        return($diaspora);
                else
                        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);
                        $user = json_decode($UserData);
                        if ($user) {
-                               if ($compact)
+                               if ($getnetwork)
+                                       return(NETWORK_STATUSNET);
+                               elseif ($compact)
                                        return($user->screen_name."@".$StatusnetHost);
                                else
                                        return($username." (".$user->screen_name."@".$StatusnetHost.")");
@@ -648,7 +658,9 @@ function GetProfileUsername($profile, $username, $compact = false) {
        if ($rest == "") {
                $pumpio = preg_replace("=https?://([\.\w]+)/([\.\w]+)(.*)=ism", "$2@$1", $profile);
                if ($pumpio != $profile) {
-                       if ($compact)
+                       if ($getnetwork)
+                               return(NETWORK_PUMPIO);
+                       elseif ($compact)
                                return($pumpio);
                        else
                                return($username." (".$pumpio.")");
index d929278e237c408ba5ec152c8a4106d690880294..93bdcb4c395e0665a2162175dc76b5286377181e 100644 (file)
@@ -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
        // 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'];
                $deny_cid  = $arr['deny_cid'];
                $deny_gid  = $arr['deny_gid'];
+               $notify_type = 'wall-new';
        }
        else {
 
@@ -1180,6 +1190,7 @@ function item_store($arr,$force_parent = false) {
                        $deny_cid       = $r[0]['deny_cid'];
                        $deny_gid       = $r[0]['deny_gid'];
                        $arr['wall']    = $r[0]['wall'];
+                       $notify_type    = 'comment-new';
 
                        // if the parent is private, force privacy for the entire conversation
                        // 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_files_from_item($current_post);
 
+       if ($notify)
+               proc_run('php', "include/notifier.php", $notify_type, $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)
                                        $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['uid'] = $importer['uid'];
                                $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)))
                                        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;
 
                        }
@@ -3633,12 +3662,6 @@ function local_delivery($importer,$data) {
                                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['uid'] = $importer['importer_uid'];
                        $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)))
                                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)) {
                                $verb = urldecode(substr($datarray['verb'],strpos($datarray['verb'],'#')+1));
index f838830a8873b109537acec32edc15de36907c96..7708f09e6b812d9dff9a158e601c0b821dea5987 100644 (file)
@@ -55,7 +55,7 @@ function nav_info(&$a) {
         */
 
        $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 );
 
 
@@ -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"),
                        'name' => $a->user['username'],
                );
-               
+
        }
        else {
                $nav['login'] = Array('login',t('Login'), ($a->module == 'login'?'selected':''), t('Sign in'));
@@ -101,7 +101,7 @@ function nav_info(&$a) {
        if(! $homelink)
                $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'));
 
 
index 4a95bd8a45fe1212b419ca30149d0d6ddeda71fc..2ecb11e1f5f684d45b8f2f739476ad6c0254af97 100755 (executable)
@@ -175,13 +175,16 @@ function oembed_format_object($j){
 
                                $embedlink .= $j->author_name;
                        }
+                       if (trim($embedlink) == "")
+                               $embedlink = $embedurl;
+
                        $ret .= "<a href='$embedurl' rel='oembed'>$embedlink</a>";
                }
                //if (isset($j->author_name)) $ret.=" by ".$j->author_name;
                //if (isset($j->provider_name)) $ret.=" on ".$j->provider_name;
        } else {
                // 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>";
        return  mb_convert_encoding($ret, 'HTML-ENTITIES', mb_detect_encoding($ret));
index ef5f3613051db8c1627bea2d6039d788cba86152..0706a102d425b0bf7af43305415226c0e9dc9479 100644 (file)
@@ -158,7 +158,7 @@ function crepair_content(&$a) {
                '$label_photo' => t('New photo from this URL'),
                '$label_remote_self' => t('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_nick' => $contact['nick'],
                '$contact_id'   => $contact['id'],
index 6f6ce61a987fb6238a60b4d363e64919f764974f..7440c8ab45bd7f74666cfc8b44b835c65ac0dda4 100644 (file)
@@ -183,7 +183,9 @@ function dfrn_request_post(&$a) {
                                                require_once('include/group.php');
                                                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
@@ -197,7 +199,8 @@ function dfrn_request_post(&$a) {
 
                                // (ignore reply, nothing we can do it failed)
 
-                               goaway(zrl($dfrn_url));
+                               // Old: goaway(zrl($dfrn_url));
+                               goaway($forwardurl);
                                return; // NOTREACHED
 
                        }
index e3c8f85cf7e2b3e2117c394eaf6b3d8ce48ab4c8..abb03b6d5bfaaf948e5ad7fff0ab48b1814a7233 100644 (file)
@@ -16,7 +16,7 @@ function display_init(&$a) {
 
                // Does the local user have this item?
                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
                                        AND `guid` = '%s' AND `uid` = %d", $a->argv[1], local_user());
                        if (count($r)) {
@@ -28,12 +28,12 @@ function display_init(&$a) {
                // Or is it anywhere on the server?
                if ($nick == "") {
                        $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`
                                WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
                                        AND `item`.`allow_cid` = ''  AND `item`.`allow_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`.`private` = 0 AND `item`.`wall` = 1
                        if (count($r)) {
@@ -43,56 +43,16 @@ function display_init(&$a) {
                }
                if (count($r)) {
                        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
                                                AND `id` = %d", $r[0]["parent"]);
 
-                       if (!strstr(normalise_link($r[0]["author-link"]), normalise_link($a->get_baseurl()))) {
-                               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
-                               // 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"];
-                                       }
-                               }
+                       $profiledata = display_fetchauthor($a, $r[0]);
 
-                               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 (strstr(normalise_link($profiledata["url"]), normalise_link($a->get_baseurl()))) {
+                               $nickname = str_replace(normalise_link($a->get_baseurl())."/profile/", "", normalise_link($profiledata["url"]));
 
                                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`
                                                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",
@@ -100,9 +60,15 @@ function display_init(&$a) {
                                        );
                                        if (count($r))
                                                $profiledata = $r[0];
+
                                        $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) {
 
@@ -161,7 +224,7 @@ function display_content(&$a, $update = 0) {
                                        WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
                                                AND `item`.`allow_cid` = ''  AND `item`.`allow_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`.`private` = 0 AND `item`.`wall` = 1
                                if (count($r)) {
index a08d0e02b3b6733f027a09bc10875b533bdbde29..0e2fce7bf79c750da6d3d16f5320a92b931fa6ce 100644 (file)
@@ -736,7 +736,7 @@ function item_post(&$a) {
                update_thread($post_id);
 
                // 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");
                if((x($_REQUEST,'return')) && strlen($return_path)) {
@@ -792,8 +792,8 @@ function item_post(&$a) {
                dbesc($datarray['attach']),
                intval($datarray['bookmark']),
                intval($datarray['origin']),
-               intval($datarray['moderated']),
-               dbesc($datarray['file'])
+               intval($datarray['moderated']),
+               dbesc($datarray['file'])
               );
 
        $r = q("SELECT `id` FROM `item` WHERE `uri` = '%s' LIMIT 1",
@@ -804,7 +804,7 @@ function item_post(&$a) {
                add_thread($post_id);
 
                // 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
                $cachefile = get_cachefile($datarray["guid"]."-".hash("md5", $datarray['body']));
@@ -942,25 +942,25 @@ function item_post(&$a) {
                                        . '<br />';
                                $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; 
-                                if (!$datarray['title']=='') {
-                                    $subject = email_header_encode($datarray['title'],'UTF-8');
-                                } else {
+                               if (!$datarray['title']=='') {
+                                   $subject = email_header_encode($datarray['title'],'UTF-8');
+                               } else {
                                    $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 />';
                                $html    = prepare_body($datarray);
                                $message = '<html><body>' . $link . $html . $disclaimer . '</body></html>';
-                                include_once('include/html2plain.php');
-                                $params = array (
-                                    'fromName' => $a->user['username'],
-                                    'fromEmail' => $a->user['email'],
-                                    'toEmail' => $addr,
-                                    'replyTo' => $a->user['email'],
-                                    'messageSubject' => $subject,
-                                    'htmlVersion' => $message,
-                                    'textVersion' => html2plain($html.$disclaimer),
-                                );
-                                enotify::send($params);
+                               include_once('include/html2plain.php');
+                               $params = array (
+                                   'fromName' => $a->user['username'],
+                                   'fromEmail' => $a->user['email'],
+                                   'toEmail' => $addr,
+                                   'replyTo' => $a->user['email'],
+                                   'messageSubject' => $subject,
+                                   'htmlVersion' => $message,
+                                   'textVersion' => html2plain($html.$disclaimer),
+                               );
+                               enotify::send($params);
                        }
                }
        }
index 61a772cba1b1341fe1927446709b60e3ea2404b4..e8ea75946bdf3a491cf9447515025885e8cd3eee 100644 (file)
@@ -30,6 +30,7 @@
        <label id="dfrn-url-label" for="dfrn-url" >{{$your_address}}</label>
         {{if $myaddr}}
                 {{$myaddr}}
+                <input type="hidden" name="dfrn_url" id="dfrn-url" size="32" value="{{$myaddr}}" />
         {{else}}
         <input type="text" name="dfrn_url" id="dfrn-url" size="32" value="{{$myaddr}}" />
         {{/if}}
index d53af5dad783d4a81b42bd21c6e4a19fbb36a679..37e2ef417bb48926af0378c05ca3dbf2972139ae 100644 (file)
@@ -39,7 +39,7 @@
 <div class="clear"></div>
 {{if $allow_remote_self eq 1}}
 <h4>{{$label_remote_self}}</h4>
-{{include file="field_checkbox.tpl" field=$remote_self}}
+{{include file="field_select.tpl" field=$remote_self}}
 {{/if}}
 
 <input type="submit" name="submit" value="{{$lbl_submit}}" />
index dbd2e543ddc2396f914a9c6bb76162c55ba355aa..82d5f67e9a0f3a3754f6cd849bf4cbf9dde5bdd5 100644 (file)
@@ -29,6 +29,7 @@
        <label id="dfrn-url-label" for="dfrn-url" >{{$your_address}}</label>
        {{if $myaddr}}
                {{$myaddr}}
+               <input type="hidden" name="dfrn_url" id="dfrn-url" size="32" value="{{$myaddr}}" />
        {{else}}
        <input type="text" name="dfrn_url" id="dfrn-url" size="32" value="{{$myaddr}}" />
        {{/if}}