diff options
author | zotlabs <mike@macgirvin.com> | 2017-09-05 18:32:37 -0700 |
---|---|---|
committer | zotlabs <mike@macgirvin.com> | 2017-09-05 18:32:37 -0700 |
commit | 45eb61bcf079557094fed8714afc994f1120e6db (patch) | |
tree | c524eed94b4edebae1a641b3f95f888d21a07f06 | |
parent | 80400d719145c843a1bb80a34d5815d15ffc5893 (diff) | |
download | volse-hubzilla-45eb61bcf079557094fed8714afc994f1120e6db.tar.gz volse-hubzilla-45eb61bcf079557094fed8714afc994f1120e6db.tar.bz2 volse-hubzilla-45eb61bcf079557094fed8714afc994f1120e6db.zip |
provide sharing of cards
-rw-r--r-- | Zotlabs/Lib/ThreadItem.php | 3 | ||||
-rw-r--r-- | Zotlabs/Module/Rpost.php | 41 | ||||
-rw-r--r-- | include/conversation.php | 1 | ||||
-rwxr-xr-x | view/tpl/conv_item.tpl | 2 | ||||
-rwxr-xr-x | view/tpl/conv_list.tpl | 2 | ||||
-rwxr-xr-x | view/tpl/jot-header.tpl | 27 |
6 files changed, 62 insertions, 14 deletions
diff --git a/Zotlabs/Lib/ThreadItem.php b/Zotlabs/Lib/ThreadItem.php index d33f3c183..d916ce2c1 100644 --- a/Zotlabs/Lib/ThreadItem.php +++ b/Zotlabs/Lib/ThreadItem.php @@ -313,7 +313,8 @@ class ThreadItem { $tmp_item = array( 'template' => $this->get_template(), - 'mode' => $mode, + 'mode' => $mode, + 'item_type' => intval($item['item_type']), 'type' => implode("",array_slice(explode("/",$item['verb']),-1)), 'body' => $body['html'], 'tags' => $body['tags'], diff --git a/Zotlabs/Module/Rpost.php b/Zotlabs/Module/Rpost.php index 56f4f23f6..e716d1330 100644 --- a/Zotlabs/Module/Rpost.php +++ b/Zotlabs/Module/Rpost.php @@ -20,6 +20,7 @@ require_once('include/zot.php'); * body= Body of post * url= URL which will be parsed and the results appended to the body * source= Source application + * post_id= post_id of post to 'share' (local use only) * remote_return= absolute URL to return after posting is finished * type= choices are 'html' or 'bbcode', default is 'bbcode' * @@ -108,6 +109,46 @@ class Rpost extends \Zotlabs\Web\Controller { if($x['success']) $_REQUEST['body'] = $_REQUEST['body'] . $x['body']; } + + if($_REQUEST['post_id']) { + $r = q("SELECT * from item WHERE id = %d LIMIT 1", + intval($_REQUEST['post_id']) + ); + if(($r) && (! intval($r[0]['item_private']))) { + $sql_extra = item_permissions_sql($r[0]['uid']); + + $r = q("select * from item where id = %d $sql_extra", + intval($_REQUEST['post_id']) + ); + if($r && $r[0]['mimetype'] === 'text/bbcode') { + + xchan_query($r); + + $is_photo = (($r[0]['obj_type'] === ACTIVITY_OBJ_PHOTO) ? true : false); + if($is_photo) { + $object = json_decode($r[0]['obj'],true); + $photo_bb = $object['body']; + } + + if (strpos($r[0]['body'], "[/share]") !== false) { + $pos = strpos($r[0]['body'], "[share"); + $i = substr($r[0]['body'], $pos); + } else { + $i = "[share author='".urlencode($r[0]['author']['xchan_name']). + "' profile='".$r[0]['author']['xchan_url'] . + "' avatar='".$r[0]['author']['xchan_photo_s']. + "' link='".$r[0]['plink']. + "' posted='".$r[0]['created']. + "' message_id='".$r[0]['mid']."']"; + if($r[0]['title']) + $i .= '[b]'.$r[0]['title'].'[/b]'."\r\n"; + $i .= (($is_photo) ? $photo_bb . "\r\n" . $r[0]['body'] : $r[0]['body']); + $i .= "[/share]"; + } + } + } + $_REQUEST['body'] = $_REQUEST['body'] . $i; + } $x = array( 'is_owner' => true, diff --git a/include/conversation.php b/include/conversation.php index ec445ba4c..c034e8a65 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -709,6 +709,7 @@ function conversation($items, $mode, $update, $page_mode = 'traditional', $prepa $tmp_item = array( 'template' => $tpl, 'toplevel' => 'toplevel_item', + 'item_type' => intval($item['item_type']), 'mode' => $mode, 'approve' => t('Approve'), 'delete' => t('Delete'), diff --git a/view/tpl/conv_item.tpl b/view/tpl/conv_item.tpl index 663b02890..b3fe60750 100755 --- a/view/tpl/conv_item.tpl +++ b/view/tpl/conv_item.tpl @@ -151,7 +151,7 @@ </button> <div class="dropdown-menu dropdown-menu-right" role="menu" aria-labelledby="wall-item-menu-{{$item.id}}"> {{if $item.share}} - <a class="dropdown-item" href="#" onclick="jotShare({{$item.id}}); return false"><i class="generic-icons-nav fa fa-fw fa-retweet" title="{{$item.share.0}}"></i>{{$item.share.0}}</a> + <a class="dropdown-item" href="#" onclick="jotShare({{$item.id}},{{$item.item_type}}); return false"><i class="generic-icons-nav fa fa-fw fa-retweet" title="{{$item.share.0}}"></i>{{$item.share.0}}</a> {{/if}} {{if $item.plink}} <a class="dropdown-item" href="{{$item.plink.href}}" title="{{$item.plink.title}}" class="u-url"><i class="generic-icons-nav fa fa-fw fa-external-link"></i>{{$item.plink.title}}</a> diff --git a/view/tpl/conv_list.tpl b/view/tpl/conv_list.tpl index e442dd3cc..e599f84b5 100755 --- a/view/tpl/conv_list.tpl +++ b/view/tpl/conv_list.tpl @@ -150,7 +150,7 @@ </button> <div class="dropdown-menu dropdown-menu-right" role="menu" aria-labelledby="wall-item-menu-{{$item.id}}"> {{if $item.share}} - <a class="dropdown-item" href="#" onclick="jotShare({{$item.id}}); return false"><i class="generic-icons-nav fa fa-fw fa-retweet" title="{{$item.share.0}}"></i>{{$item.share.0}}</a> + <a class="dropdown-item" href="#" onclick="jotShare({{$item.id}},{{$item.item_type}}); return false"><i class="generic-icons-nav fa fa-fw fa-retweet" title="{{$item.share.0}}"></i>{{$item.share.0}}</a> {{/if}} {{if $item.plink}} <a class="dropdown-item" href="{{$item.plink.href}}" title="{{$item.plink.title}}" class="u-url"><i class="generic-icons-nav fa fa-fw fa-external-link"></i>{{$item.plink.title}}</a> diff --git a/view/tpl/jot-header.tpl b/view/tpl/jot-header.tpl index 91c30423d..2d37b3ca2 100755 --- a/view/tpl/jot-header.tpl +++ b/view/tpl/jot-header.tpl @@ -247,18 +247,23 @@ var activeCommentText = ''; } - function jotShare(id) { - if ($('#jot-popup').length != 0) $('#jot-popup').show(); - - $('#like-rotator-' + id).spin('tiny'); - $.get('{{$baseurl}}/share/' + id, function(data) { - if (!editor) $("#profile-jot-text").val(""); - initEditor(function(){ - addeditortext(data); - $('#like-rotator-' + id).spin(false); - $(window).scrollTop(0); + function jotShare(id,post_type) { + if(post_type == 6) { + window.location.href = 'rpost?f=&post_id='+id; + } + else { + if ($('#jot-popup').length != 0) $('#jot-popup').show(); + + $('#like-rotator-' + id).spin('tiny'); + $.get('{{$baseurl}}/share/' + id, function(data) { + if (!editor) $("#profile-jot-text").val(""); + initEditor(function(){ + addeditortext(data); + $('#like-rotator-' + id).spin(false); + $(window).scrollTop(0); + }); }); - }); + } } function linkdropper(event) { |