pubstream comments and a few other bugfixes that were discovered along the way
This commit is contained in:
parent
e1fdac3278
commit
0e91810ed6
@ -309,7 +309,7 @@ class Notifier {
|
|||||||
if($s)
|
if($s)
|
||||||
$channel = $s[0];
|
$channel = $s[0];
|
||||||
|
|
||||||
if($channel['channel_hash'] !== $target_item['author_xchan'] && $channel['channel_hash'] !== $target_item['owner_xchan'] && ( ! intval($channel['channel_system']))) {
|
if($channel['channel_hash'] !== $target_item['author_xchan'] && $channel['channel_hash'] !== $target_item['owner_xchan']) {
|
||||||
logger("notifier: Sending channel {$channel['channel_hash']} is not owner {$target_item['owner_xchan']} or author {$target_item['author_xchan']}", LOGGER_NORMAL, LOG_WARNING);
|
logger("notifier: Sending channel {$channel['channel_hash']} is not owner {$target_item['owner_xchan']} or author {$target_item['author_xchan']}", LOGGER_NORMAL, LOG_WARNING);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -426,8 +426,10 @@ class Notifier {
|
|||||||
logger('notifier: encoded item: ' . print_r($x,true), LOGGER_DATA, LOG_DEBUG);
|
logger('notifier: encoded item: ' . print_r($x,true), LOGGER_DATA, LOG_DEBUG);
|
||||||
|
|
||||||
stringify_array_elms($recipients);
|
stringify_array_elms($recipients);
|
||||||
if(! $recipients)
|
if(! $recipients) {
|
||||||
|
logger('no recipients');
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// logger('notifier: recipients: ' . print_r($recipients,true), LOGGER_NORMAL, LOG_DEBUG);
|
// logger('notifier: recipients: ' . print_r($recipients,true), LOGGER_NORMAL, LOG_DEBUG);
|
||||||
|
|
||||||
|
@ -54,6 +54,10 @@ class ThreadStream {
|
|||||||
$this->profile_owner = local_channel();
|
$this->profile_owner = local_channel();
|
||||||
$this->writable = true;
|
$this->writable = true;
|
||||||
break;
|
break;
|
||||||
|
case 'pubstream':
|
||||||
|
$this->profile_owner = local_channel();
|
||||||
|
$this->writable = ((local_channel()) ? true : false);
|
||||||
|
break;
|
||||||
case 'hq':
|
case 'hq':
|
||||||
$this->profile_owner = local_channel();
|
$this->profile_owner = local_channel();
|
||||||
$this->writable = true;
|
$this->writable = true;
|
||||||
@ -188,6 +192,10 @@ class ThreadStream {
|
|||||||
$item->set_commentable(can_comment_on_post($ob_hash,$item->data));
|
$item->set_commentable(can_comment_on_post($ob_hash,$item->data));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if($this->mode === 'pubstream' && (! local_channel())) {
|
||||||
|
$item->set_commentable(false);
|
||||||
|
}
|
||||||
|
|
||||||
require_once('include/channel.php');
|
require_once('include/channel.php');
|
||||||
|
|
||||||
$item->set_conversation($this);
|
$item->set_conversation($this);
|
||||||
|
@ -59,6 +59,7 @@ class Item extends \Zotlabs\Web\Controller {
|
|||||||
|
|
||||||
$profile_uid = ((x($_REQUEST,'profile_uid')) ? intval($_REQUEST['profile_uid']) : 0);
|
$profile_uid = ((x($_REQUEST,'profile_uid')) ? intval($_REQUEST['profile_uid']) : 0);
|
||||||
require_once('include/channel.php');
|
require_once('include/channel.php');
|
||||||
|
|
||||||
$sys = get_sys_channel();
|
$sys = get_sys_channel();
|
||||||
if($sys && $profile_uid && ($sys['channel_id'] == $profile_uid) && is_site_admin()) {
|
if($sys && $profile_uid && ($sys['channel_id'] == $profile_uid) && is_site_admin()) {
|
||||||
$uid = intval($sys['channel_id']);
|
$uid = intval($sys['channel_id']);
|
||||||
@ -171,7 +172,7 @@ class Item extends \Zotlabs\Web\Controller {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
// if this isn't the real parent of the conversation, find it
|
// if this isn't the real parent of the conversation, find it
|
||||||
if($r !== false && count($r)) {
|
if($r) {
|
||||||
$parid = $r[0]['parent'];
|
$parid = $r[0]['parent'];
|
||||||
$parent_mid = $r[0]['mid'];
|
$parent_mid = $r[0]['mid'];
|
||||||
if($r[0]['id'] != $r[0]['parent']) {
|
if($r[0]['id'] != $r[0]['parent']) {
|
||||||
@ -179,9 +180,16 @@ class Item extends \Zotlabs\Web\Controller {
|
|||||||
intval($parid)
|
intval($parid)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if interacting with a pubstream item,
|
||||||
|
// create a copy of the parent in your stream
|
||||||
|
|
||||||
|
if($r[0]['uid'] === $sys['channel_id'] && local_channel()) {
|
||||||
|
$r = [ copy_of_pubitem(\App::get_channel(), $r[0]['mid']) ];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(($r === false) || (! count($r))) {
|
if(! $r) {
|
||||||
notice( t('Unable to locate original post.') . EOL);
|
notice( t('Unable to locate original post.') . EOL);
|
||||||
if($api_source)
|
if($api_source)
|
||||||
return ( [ 'success' => false, 'message' => 'invalid post id' ] );
|
return ( [ 'success' => false, 'message' => 'invalid post id' ] );
|
||||||
@ -190,10 +198,7 @@ class Item extends \Zotlabs\Web\Controller {
|
|||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
||||||
// can_comment_on_post() needs info from the following xchan_query
|
xchan_query($r,true);
|
||||||
// This may be from the discover tab which means we need to correct the effective uid
|
|
||||||
|
|
||||||
xchan_query($r,true,(($r[0]['uid'] == local_channel()) ? 0 : local_channel()));
|
|
||||||
|
|
||||||
$parent_item = $r[0];
|
$parent_item = $r[0];
|
||||||
$parent = $r[0]['id'];
|
$parent = $r[0]['id'];
|
||||||
|
@ -258,20 +258,27 @@ class Like extends \Zotlabs\Web\Controller {
|
|||||||
// get the item. Allow linked photos (which are normally hidden) to be liked
|
// get the item. Allow linked photos (which are normally hidden) to be liked
|
||||||
|
|
||||||
$r = q("SELECT * FROM item WHERE id = %d
|
$r = q("SELECT * FROM item WHERE id = %d
|
||||||
and (item_type = 0 or item_type = 6) and item_deleted = 0 and item_unpublished = 0
|
and (item_type in (0,6,7) and item_deleted = 0 and item_unpublished = 0
|
||||||
and item_delayed = 0 and item_pending_remove = 0 and item_blocked = 0 LIMIT 1",
|
and item_delayed = 0 and item_pending_remove = 0 and item_blocked = 0 LIMIT 1",
|
||||||
intval($item_id)
|
intval($item_id)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// if interacting with a pubstream item,
|
||||||
|
// create a copy of the parent in your stream. If not the conversation
|
||||||
|
// parent, copy that as well.
|
||||||
|
|
||||||
|
if($r) {
|
||||||
|
if($r[0]['uid'] === $sys_channel['channel_id'] && local_channel()) {
|
||||||
|
$r = [ copy_of_pubitem(\App::get_channel(), $r[0]['mid']) ];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(! $item_id || (! $r)) {
|
if(! $item_id || (! $r)) {
|
||||||
logger('like: no item ' . $item_id);
|
logger('like: no item ' . $item_id);
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use the $effective_uid option of xchan_query to sort out comment permission
|
xchan_query($r,true);
|
||||||
// for public stream items
|
|
||||||
|
|
||||||
xchan_query($r,true,(($r[0]['uid'] == $sys_channel_id) ? local_channel() : 0));
|
|
||||||
|
|
||||||
$item = $r[0];
|
$item = $r[0];
|
||||||
|
|
||||||
|
@ -162,15 +162,13 @@ class Pubstream extends \Zotlabs\Web\Controller {
|
|||||||
$net_query2 = (($net) ? " and xchan_network = '" . protect_sprintf(dbesc($net)) . "' " : '');
|
$net_query2 = (($net) ? " and xchan_network = '" . protect_sprintf(dbesc($net)) . "' " : '');
|
||||||
|
|
||||||
|
|
||||||
$simple_update = (($update) ? " and item.item_unseen = 1 " : '');
|
$simple_update = (($_SESSION['loadtime']) ? " AND item.changed > '" . datetime_convert('UTC','UTC',$_SESSION['loadtime']) . "' " : '');
|
||||||
|
|
||||||
if($update && $_SESSION['loadtime'])
|
|
||||||
$simple_update = " AND (( item_unseen = 1 AND item.changed > '" . datetime_convert('UTC','UTC',$_SESSION['loadtime']) . "' ) OR item.changed > '" . datetime_convert('UTC','UTC',$_SESSION['loadtime']) . "' ) ";
|
|
||||||
if($load)
|
if($load)
|
||||||
$simple_update = '';
|
$simple_update = '';
|
||||||
|
|
||||||
if($static && $simple_update)
|
if($static && $simple_update)
|
||||||
$simple_update .= " and item_thread_top = 0 and author_xchan = '" . protect_sprintf(get_observer_hash()) . "' ";
|
$simple_update .= " and author_xchan = '" . protect_sprintf(get_observer_hash()) . "' ";
|
||||||
|
|
||||||
//logger('update: ' . $update . ' load: ' . $load);
|
//logger('update: ' . $update . ' load: ' . $load);
|
||||||
|
|
||||||
@ -214,17 +212,18 @@ class Pubstream extends \Zotlabs\Web\Controller {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$r = q("SELECT distinct item.id AS item_id, $ordering FROM item
|
$r = q("SELECT distinct parent AS item_id, $ordering FROM item
|
||||||
left join abook on item.author_xchan = abook.abook_xchan
|
left join abook on item.author_xchan = abook.abook_xchan
|
||||||
$net_query
|
$net_query
|
||||||
WHERE true $uids $item_normal_update
|
WHERE true $uids $item_normal_update
|
||||||
AND item.parent = item.id $simple_update
|
$simple_update
|
||||||
and (abook.abook_blocked = 0 or abook.abook_flags is null)
|
and (abook.abook_blocked = 0 or abook.abook_flags is null)
|
||||||
$sql_extra3 $sql_extra $sql_nets $net_query2"
|
$sql_extra3 $sql_extra $sql_nets $net_query2"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
$_SESSION['loadtime'] = datetime_convert();
|
$_SESSION['loadtime'] = datetime_convert();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Then fetch all the children of the parents that are on this page
|
// Then fetch all the children of the parents that are on this page
|
||||||
$parents_str = '';
|
$parents_str = '';
|
||||||
$update_unseen = '';
|
$update_unseen = '';
|
||||||
@ -254,7 +253,7 @@ class Pubstream extends \Zotlabs\Web\Controller {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// fake it
|
// fake it
|
||||||
$mode = ('network');
|
$mode = ('pubstream');
|
||||||
|
|
||||||
$o .= conversation($items,$mode,$update,$page_mode);
|
$o .= conversation($items,$mode,$update,$page_mode);
|
||||||
|
|
||||||
|
@ -6,15 +6,21 @@ namespace Zotlabs\Module;
|
|||||||
class React extends \Zotlabs\Web\Controller {
|
class React extends \Zotlabs\Web\Controller {
|
||||||
|
|
||||||
function get() {
|
function get() {
|
||||||
|
|
||||||
if(! local_channel())
|
if(! local_channel())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
$sys = get_sys_channel();
|
||||||
|
$channel = \App::get_channel();
|
||||||
|
|
||||||
$postid = $_REQUEST['postid'];
|
$postid = $_REQUEST['postid'];
|
||||||
|
|
||||||
if(! $postid)
|
if(! $postid)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$emoji = $_REQUEST['emoji'];
|
$emoji = $_REQUEST['emoji'];
|
||||||
|
|
||||||
|
|
||||||
if($_REQUEST['emoji']) {
|
if($_REQUEST['emoji']) {
|
||||||
|
|
||||||
$i = q("select * from item where id = %d and uid = %d",
|
$i = q("select * from item where id = %d and uid = %d",
|
||||||
@ -22,10 +28,22 @@ class React extends \Zotlabs\Web\Controller {
|
|||||||
intval(local_channel())
|
intval(local_channel())
|
||||||
);
|
);
|
||||||
|
|
||||||
if(! $i)
|
if(! $i) {
|
||||||
return;
|
$i = q("select * from item where id = %d and uid = %d",
|
||||||
|
intval($postid),
|
||||||
|
intval($sys['channel_id'])
|
||||||
|
);
|
||||||
|
|
||||||
|
if($i) {
|
||||||
|
$i = [ copy_of_pubitem($channel, $i[0]['mid']) ];
|
||||||
|
$postid = (($i) ? $i[0]['id'] : 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(! $i) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$channel = \App::get_channel();
|
|
||||||
|
|
||||||
$n = array();
|
$n = array();
|
||||||
$n['aid'] = $channel['channel_account_id'];
|
$n['aid'] = $channel['channel_account_id'];
|
||||||
@ -40,8 +58,7 @@ class React extends \Zotlabs\Web\Controller {
|
|||||||
|
|
||||||
$x = item_store($n);
|
$x = item_store($n);
|
||||||
|
|
||||||
if(local_channel())
|
retain_item($postid);
|
||||||
retain_item($postid);
|
|
||||||
|
|
||||||
if($x['success']) {
|
if($x['success']) {
|
||||||
$nid = $x['item_id'];
|
$nid = $x['item_id'];
|
||||||
|
@ -11,10 +11,13 @@ class Subthread extends \Zotlabs\Web\Controller {
|
|||||||
|
|
||||||
function get() {
|
function get() {
|
||||||
|
|
||||||
if((! local_channel()) && (! remote_channel())) {
|
if(! local_channel()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sys = get_sys_channel();
|
||||||
|
$channel = \App::get_channel();
|
||||||
|
|
||||||
$item_id = ((argc() > 2) ? notags(trim(argv(2))) : 0);
|
$item_id = ((argc() > 2) ? notags(trim(argv(2))) : 0);
|
||||||
|
|
||||||
if(argv(1) === 'sub')
|
if(argv(1) === 'sub')
|
||||||
@ -23,8 +26,29 @@ class Subthread extends \Zotlabs\Web\Controller {
|
|||||||
$activity = ACTIVITY_UNFOLLOW;
|
$activity = ACTIVITY_UNFOLLOW;
|
||||||
|
|
||||||
|
|
||||||
$r = q("SELECT parent FROM item WHERE id = '%s'",
|
$i = q("select * from item where id = %d and uid = %d",
|
||||||
dbesc($item_id)
|
intval($item_id),
|
||||||
|
intval(local_channel())
|
||||||
|
);
|
||||||
|
|
||||||
|
if(! $i) {
|
||||||
|
$i = q("select * from item where id = %d and uid = %d",
|
||||||
|
intval($postid),
|
||||||
|
intval($sys['channel_id'])
|
||||||
|
);
|
||||||
|
|
||||||
|
if($i) {
|
||||||
|
$i = [ copy_of_pubitem($channel, $i[0]['mid']) ];
|
||||||
|
$item_id = (($i) ? $i[0]['id'] : 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(! $i) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$r = q("SELECT parent FROM item WHERE id = %d",
|
||||||
|
intval($item_id)
|
||||||
);
|
);
|
||||||
|
|
||||||
if($r) {
|
if($r) {
|
||||||
|
@ -11,10 +11,12 @@ class Tagger extends \Zotlabs\Web\Controller {
|
|||||||
|
|
||||||
function get() {
|
function get() {
|
||||||
|
|
||||||
if(! local_channel() && ! remote_channel()) {
|
if(! local_channel()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sys = get_sys_channel();
|
||||||
|
|
||||||
$observer_hash = get_observer_hash();
|
$observer_hash = get_observer_hash();
|
||||||
//strip html-tags
|
//strip html-tags
|
||||||
$term = notags(trim($_GET['term']));
|
$term = notags(trim($_GET['term']));
|
||||||
@ -26,9 +28,29 @@ class Tagger extends \Zotlabs\Web\Controller {
|
|||||||
|
|
||||||
logger('tagger: tag ' . $term . ' item ' . $item_id);
|
logger('tagger: tag ' . $term . ' item ' . $item_id);
|
||||||
|
|
||||||
|
$r = q("select * from item where id = %d and uid = %d limit 1",
|
||||||
|
intval($item_id),
|
||||||
|
intval(local_channel())
|
||||||
|
);
|
||||||
|
|
||||||
$r = q("SELECT * FROM item left join xchan on xchan_hash = author_xchan WHERE id = '%s' and uid = %d LIMIT 1",
|
if(! $r) {
|
||||||
dbesc($item_id),
|
$r = q("select * from item where id = %d and uid = %d limit 1",
|
||||||
|
intval($item_id),
|
||||||
|
intval($sys['channel_id'])
|
||||||
|
);
|
||||||
|
if($r) {
|
||||||
|
$r = [ copy_of_pubitem($channel, $i[0]['mid']) ];
|
||||||
|
$item_id = (($r) ? $r[0]['id'] : 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(! $r) {
|
||||||
|
notice( t('Post not found.') . EOL);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$r = q("SELECT * FROM item left join xchan on xchan_hash = author_xchan WHERE id = %d and uid = %d LIMIT 1",
|
||||||
|
intval($item_id),
|
||||||
intval(local_channel())
|
intval(local_channel())
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -17,23 +17,7 @@ class Update_pubstream extends \Zotlabs\Web\Controller {
|
|||||||
$mod = new Pubstream();
|
$mod = new Pubstream();
|
||||||
$text = $mod->get($profile_uid, $load);
|
$text = $mod->get($profile_uid, $load);
|
||||||
|
|
||||||
$pattern = "/<img([^>]*) src=\"([^\"]*)\"/";
|
echo str_replace("\t",' ',$text);
|
||||||
$replace = "<img\${1} dst=\"\${2}\"";
|
|
||||||
// $text = preg_replace($pattern, $replace, $text);
|
|
||||||
/*
|
|
||||||
if(! $load) {
|
|
||||||
$replace = '<br />' . t('[Embedded content - reload page to view]') . '<br />';
|
|
||||||
$pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
|
|
||||||
$text = preg_replace($pattern, $replace, $text);
|
|
||||||
$pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";
|
|
||||||
$text = preg_replace($pattern, $replace, $text);
|
|
||||||
$pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i";
|
|
||||||
$text = preg_replace($pattern, $replace, $text);
|
|
||||||
$pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i";
|
|
||||||
$text = preg_replace($pattern, $replace, $text);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
echo str_replace("\t",' ',$text);
|
|
||||||
echo ((array_key_exists('msie',$_GET) && $_GET['msie'] == 1) ? '</div>' : '</section>');
|
echo ((array_key_exists('msie',$_GET) && $_GET['msie'] == 1) ? '</div>' : '</section>');
|
||||||
echo "</body></html>\r\n";
|
echo "</body></html>\r\n";
|
||||||
killme();
|
killme();
|
||||||
|
@ -482,10 +482,10 @@ function conversation($items, $mode, $update, $page_mode = 'traditional', $prepa
|
|||||||
$previewing = (($preview) ? ' preview ' : '');
|
$previewing = (($preview) ? ' preview ' : '');
|
||||||
$preview_lbl = t('This is an unsaved preview');
|
$preview_lbl = t('This is an unsaved preview');
|
||||||
|
|
||||||
if ($mode === 'network') {
|
if (in_array($mode, [ 'network', 'pubstream'])) {
|
||||||
|
|
||||||
$profile_owner = local_channel();
|
$profile_owner = local_channel();
|
||||||
$page_writeable = true;
|
$page_writeable = ((local_channel()) ? true : false);
|
||||||
|
|
||||||
if (!$update) {
|
if (!$update) {
|
||||||
// The special div is needed for liveUpdate to kick in for this page.
|
// The special div is needed for liveUpdate to kick in for this page.
|
||||||
|
@ -65,16 +65,35 @@ function get_feed_for($channel, $observer_hash, $params) {
|
|||||||
if(! $channel)
|
if(! $channel)
|
||||||
http_status_exit(401);
|
http_status_exit(401);
|
||||||
|
|
||||||
if($params['pages']) {
|
|
||||||
if(! perm_is_allowed($channel['channel_id'],$observer_hash,'view_pages'))
|
|
||||||
http_status_exit(403);
|
|
||||||
} else {
|
|
||||||
if(! perm_is_allowed($channel['channel_id'],$observer_hash,'view_stream'))
|
|
||||||
http_status_exit(403);
|
|
||||||
}
|
|
||||||
|
|
||||||
// logger('params: ' . print_r($params,true));
|
// logger('params: ' . print_r($params,true));
|
||||||
|
|
||||||
|
|
||||||
|
$interactive = ((is_array($params) && array_key_exists('interactive',$params)) ? intval($params['interactive']) : 0);
|
||||||
|
|
||||||
|
|
||||||
|
if($params['pages']) {
|
||||||
|
if(! perm_is_allowed($channel['channel_id'],$observer_hash,'view_pages')) {
|
||||||
|
if($interactive) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
http_status_exit(403);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if(! perm_is_allowed($channel['channel_id'],$observer_hash,'view_stream')) {
|
||||||
|
if($interactive) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
http_status_exit(403);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$feed_template = get_markup_template('atom_feed.tpl');
|
$feed_template = get_markup_template('atom_feed.tpl');
|
||||||
|
|
||||||
$atom = '';
|
$atom = '';
|
||||||
|
@ -1749,22 +1749,6 @@ function item_store($arr, $allow_exec = false, $deliver = true) {
|
|||||||
intval($arr['uid'])
|
intval($arr['uid'])
|
||||||
);
|
);
|
||||||
|
|
||||||
// perhaps the system channel owns the post and it's a pubstream item
|
|
||||||
|
|
||||||
if(! $r) {
|
|
||||||
$s = q("select channel_id from channel where channel_system = 1 limit 1");
|
|
||||||
if($s) {
|
|
||||||
$r = q("SELECT * FROM item WHERE mid = '%s' AND uid = %d ORDER BY id ASC LIMIT 1",
|
|
||||||
dbesc($arr['parent_mid']),
|
|
||||||
intval($s[0]['channel_id'])
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if($r) {
|
|
||||||
$arr['uid'] = $r[0]['uid'];
|
|
||||||
$arr['aid'] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if($r) {
|
if($r) {
|
||||||
|
|
||||||
// in case item_store was killed before the parent's parent attribute got set,
|
// in case item_store was killed before the parent's parent attribute got set,
|
||||||
@ -4725,3 +4709,59 @@ function item_create_edit_activity($post) {
|
|||||||
|
|
||||||
\Zotlabs\Daemon\Master::Summon(array('Notifier', 'edit_activity', $post_id));
|
\Zotlabs\Daemon\Master::Summon(array('Notifier', 'edit_activity', $post_id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief copies an entire conversation from the pubstream to this channel's stream
|
||||||
|
* which will allow you to interact with it.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function copy_of_pubitem($channel,$mid) {
|
||||||
|
|
||||||
|
$result = null;
|
||||||
|
$syschan = get_sys_channel();
|
||||||
|
|
||||||
|
// logger('copy_of_pubitem: ' . $channel['channel_id'] . ' mid: ' . $mid);
|
||||||
|
|
||||||
|
$r = q("select * from item where mid = '%s' and uid = %d limit 1",
|
||||||
|
dbesc($mid),
|
||||||
|
intval($channel['channel_id'])
|
||||||
|
);
|
||||||
|
|
||||||
|
if($r) {
|
||||||
|
logger('exists');
|
||||||
|
$item = fetch_post_tags($r,true);
|
||||||
|
return $item[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$r = q("select * from item where parent_mid = (select parent_mid from item where mid = '%s' and uid = %d ) order by id ",
|
||||||
|
dbesc($mid),
|
||||||
|
intval($syschan['channel_id'])
|
||||||
|
);
|
||||||
|
|
||||||
|
if($r) {
|
||||||
|
$items = fetch_post_tags($r,true);
|
||||||
|
foreach($items as $rv) {
|
||||||
|
$d = q("select id from item where mid = '%s' and uid = %d limit 1",
|
||||||
|
dbesc($rv['mid']),
|
||||||
|
intval($channel['channel_id'])
|
||||||
|
);
|
||||||
|
if($d) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
unset($rv['id']);
|
||||||
|
unset($rv['parent']);
|
||||||
|
$rv['aid'] = $channel['channel_account_id'];
|
||||||
|
$rv['uid'] = $channel['channel_id'];
|
||||||
|
$x = item_store($rv);
|
||||||
|
if($x['item_id'] && $x['item']['mid'] === $mid) {
|
||||||
|
$result = $x['item'];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user