]> git.mxchange.org Git - friendica.git/blobdiff - mod/share.php
Transfer all item shadow functions to the item class
[friendica.git] / mod / share.php
index 08c63105e35ed04175dce9e1b4c470d1dd838074..f67dd3d200c96aa74c37602e2a360cc439db4638 100644 (file)
@@ -1,30 +1,50 @@
 <?php
 
-require_once('bbcode.php');
-
-function share_init(&$a) {
+use Friendica\App;
+use Friendica\Database\DBM;
 
+function share_init(App $a) {
        $post_id = (($a->argc > 1) ? intval($a->argv[1]) : 0);
-       if((! $post_id) || (! local_user()))
+       if (!$post_id || !local_user()) {
                killme();
+       }
 
-       $r = q("SELECT item.*, contact.network FROM `item` 
-               left join contact on `item`.`contact-id` = `contact`.`id` 
-               WHERE `item`.`id` = %d AND `item`.`uid` = %d LIMIT 1",
-
-               intval($post_id),
-               intval(local_user())
+       $r = q("SELECT item.*, contact.network FROM `item`
+               INNER JOIN `contact` ON `item`.`contact-id` = `contact`.`id`
+               WHERE `item`.`id` = %d LIMIT 1",
+               intval($post_id)
        );
-       if(! count($r) || ($r[0]['private'] && ($r[0]['network'] != NETWORK_FEED)))
+       if (!DBM::is_result($r) || ($r[0]['private'] == 1)) {
                killme();
+       }
+       if (strpos($r[0]['body'], "[/share]") !== false) {
+               $pos = strpos($r[0]['body'], "[share");
+               $o = substr($r[0]['body'], $pos);
+       } else {
+               $o = share_header($r[0]['author-name'], $r[0]['author-link'], $r[0]['author-avatar'], $r[0]['guid'], $r[0]['created'], $r[0]['plink']);
+
+               if ($r[0]['title'])
+                       $o .= '[b]'.$r[0]['title'].'[/b]'."\n";
+               $o .= $r[0]['body'];
+               $o.= "[/share]";
+       }
+
+       echo $o;
+       killme();
+}
 
-       $o = '';
+function share_header($author, $profile, $avatar, $guid, $posted, $link) {
+       $header = "[share author='".str_replace(["'", "[", "]"], ["&#x27;", "&#x5B;", "&#x5D;"], $author).
+               "' profile='".str_replace(["'", "[", "]"], ["&#x27;", "&#x5B;", "&#x5D;"], $profile).
+               "' avatar='".str_replace(["'", "[", "]"], ["&#x27;", "&#x5B;", "&#x5D;"], $avatar);
 
-       $o .= "\xE2\x99\xb2" . ' [url=' . $r[0]['author-link'] . ']' . $r[0]['author-name'] . '[/url]' . "\n";
-       if($r[0]['title'])
-               $o .= '[b]' . $r[0]['title'] . '[/b]' . "\n";
-       $o .= $r[0]['body'] . "\n";
+       if ($guid) {
+               $header .= "' guid='".str_replace(["'", "[", "]"], ["&#x27;", "&#x5B;", "&#x5D;"], $guid);
+       }
+       if ($posted) {
+               $header .= "' posted='".str_replace(["'", "[", "]"], ["&#x27;", "&#x5B;", "&#x5D;"], $posted);
+       }
+       $header .= "' link='".str_replace(["'", "[", "]"], ["&#x27;", "&#x5B;", "&#x5D;"], $link)."']";
 
-       echo $o;
-       killme();  
+       return $header;
 }