From 87eaa6d8e5a5fece531a8ce191f8e89e90f673c2 Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Fri, 24 Nov 2017 15:01:34 +0100 Subject: some more work on mod hq --- Zotlabs/Module/Hq.php | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'Zotlabs/Module/Hq.php') diff --git a/Zotlabs/Module/Hq.php b/Zotlabs/Module/Hq.php index 78087c0f9..2795b9086 100644 --- a/Zotlabs/Module/Hq.php +++ b/Zotlabs/Module/Hq.php @@ -61,6 +61,7 @@ class Hq extends \Zotlabs\Web\Controller { $item_hash = 'b64.' . base64url_encode($r[0]['mid']); } + if(strpos($item_hash,'b64.') === 0) $decoded = @base64url_decode(substr($item_hash,4)); if($decoded) @@ -91,7 +92,7 @@ class Hq extends \Zotlabs\Web\Controller { 'bang' => '', 'visitor' => true, 'profile_uid' => local_channel(), - 'return_path' => 'channel/' . $channel['channel_address'], + 'return_path' => 'hq', 'expanded' => true, 'editor_autocomplete' => true, 'bbco_autocomplete' => 'bbcode', @@ -133,6 +134,8 @@ class Hq extends \Zotlabs\Web\Controller { if(! $update && ! $load) { + nav_set_selected('HQ'); + $static = ((local_channel()) ? channel_manual_conv_update(local_channel()) : 1); // if the target item is not a post (eg a like) we want to address its thread parent @@ -143,14 +146,14 @@ class Hq extends \Zotlabs\Web\Controller { if($decoded) $mid = 'b64.' . base64url_encode($mid); - $o .= '
' . "\r\n"; + $o .= '
' . "\r\n"; $o .= "\r\n"; \App::$page['htmlhead'] .= replace_macros(get_markup_template("build_query.tpl"),[ '$baseurl' => z_root(), - '$pgtype' => 'display', - '$uid' => '0', + '$pgtype' => 'hq', + '$uid' => local_channel(), '$gid' => '0', '$cid' => '0', '$cmin' => '0', @@ -181,6 +184,7 @@ class Hq extends \Zotlabs\Web\Controller { } if($load) { + $r = null; $r = q("SELECT item.id as item_id from item @@ -198,6 +202,7 @@ class Hq extends \Zotlabs\Web\Controller { } elseif($update) { + $r = null; $r = q("SELECT item.parent AS item_id from item @@ -238,7 +243,7 @@ class Hq extends \Zotlabs\Web\Controller { $items = []; } - $o .= conversation($items, 'display', $update, 'client'); + $o .= conversation($items, 'hq', $update, 'client'); if($updateable) { $x = q("UPDATE item SET item_unseen = 0 where item_unseen = 1 AND uid = %d and parent = %d ", @@ -249,10 +254,6 @@ class Hq extends \Zotlabs\Web\Controller { $o .= '
'; - if(($update && $load) && (! $items)) { - notice( t('Something went wrong.') . EOL ); - } - return $o; } -- cgit v1.2.3 From b03545f89939ef1c13ca7f5a950d52fcb7f2313f Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Fri, 24 Nov 2017 22:48:15 +0100 Subject: mod hq: minor query change --- Zotlabs/Module/Hq.php | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) (limited to 'Zotlabs/Module/Hq.php') diff --git a/Zotlabs/Module/Hq.php b/Zotlabs/Module/Hq.php index 2795b9086..08f4ddda5 100644 --- a/Zotlabs/Module/Hq.php +++ b/Zotlabs/Module/Hq.php @@ -43,10 +43,9 @@ class Hq extends \Zotlabs\Web\Controller { $item_normal_update = item_normal_update(); if(! $item_hash) { - $r = q("SELECT mid FROM item WHERE uid = %d - AND item_thread_top = 1 + AND mid = parent_mid ORDER BY created DESC limit 1", intval(local_channel()) @@ -64,13 +63,13 @@ class Hq extends \Zotlabs\Web\Controller { if(strpos($item_hash,'b64.') === 0) $decoded = @base64url_decode(substr($item_hash,4)); + if($decoded) $item_hash = $decoded; $updateable = false; if(! $update) { - $channel = \App::get_channel(); $channel_acl = [ @@ -139,7 +138,6 @@ class Hq extends \Zotlabs\Web\Controller { $static = ((local_channel()) ? channel_manual_conv_update(local_channel()) : 1); // if the target item is not a post (eg a like) we want to address its thread parent - $mid = ((($target_item['verb'] == ACTIVITY_LIKE) || ($target_item['verb'] == ACTIVITY_DISLIKE)) ? $target_item['thr_parent'] : $target_item['mid']); // if we got a decoded hash we must encode it again before handing to javascript @@ -180,11 +178,9 @@ class Hq extends \Zotlabs\Web\Controller { '$net' => '', '$mid' => $mid ]); - } if($load) { - $r = null; $r = q("SELECT item.id as item_id from item @@ -198,11 +194,8 @@ class Hq extends \Zotlabs\Web\Controller { if($r) { $updateable = true; } - } - elseif($update) { - $r = null; $r = q("SELECT item.parent AS item_id from item @@ -220,7 +213,6 @@ class Hq extends \Zotlabs\Web\Controller { $_SESSION['loadtime'] = datetime_convert(); } - else { $r = []; } -- cgit v1.2.3 From 4b2bd871b765e0287f329ad398a15f20cb6a6425 Mon Sep 17 00:00:00 2001 From: Mario Date: Sat, 25 Nov 2017 10:44:47 +0100 Subject: implement pubstream items in mod hq --- Zotlabs/Module/Hq.php | 47 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 11 deletions(-) (limited to 'Zotlabs/Module/Hq.php') diff --git a/Zotlabs/Module/Hq.php b/Zotlabs/Module/Hq.php index 08f4ddda5..c5b3ced3e 100644 --- a/Zotlabs/Module/Hq.php +++ b/Zotlabs/Module/Hq.php @@ -125,11 +125,12 @@ class Hq extends \Zotlabs\Web\Controller { 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) - $simple_update = ''; if($static && $simple_update) $simple_update .= " and item_thread_top = 0 and author_xchan = '" . protect_sprintf(get_observer_hash()) . "' "; + + $sys = get_sys_channel(); + $sql_extra = item_permissions_sql($sys['channel_id']); if(! $update && ! $load) { @@ -183,34 +184,58 @@ class Hq extends \Zotlabs\Web\Controller { if($load) { $r = null; - $r = q("SELECT item.id as item_id from item + $r = q("SELECT item.id AS item_id FROM item WHERE uid = %d - and mid = '%s' + AND mid = '%s' $item_normal - limit 1", + LIMIT 1", intval(local_channel()), dbesc($target_item['parent_mid']) ); + if($r) { $updateable = true; } + + if(!$r) { + $r = q("SELECT item.id AS item_id FROM item + LEFT JOIN abook ON item.author_xchan = abook.abook_xchan + WHERE mid = '%s' AND item.uid = %d $item_normal + AND (abook.abook_blocked = 0 or abook.abook_flags is null) + $sql_extra LIMIT 1", + dbesc($target_item['parent_mid']), + intval($sys['channel_id']) + ); + } } elseif($update) { $r = null; - $r = q("SELECT item.parent AS item_id from item + $r = q("SELECT item.parent AS item_id FROM item WHERE uid = %d - and parent_mid = '%s' + AND parent_mid = '%s' $item_normal_update $simple_update - limit 1", + LIMIT 1", intval(local_channel()), dbesc($target_item['parent_mid']) ); + if($r) { $updateable = true; } + if(!$r) { + $r = q("SELECT item.parent AS item_id FROM item + LEFT JOIN abook ON item.author_xchan = abook.abook_xchan + WHERE mid = '%s' AND item.uid = %d $item_normal_update $simple_update + AND (abook.abook_blocked = 0 or abook.abook_flags is null) + $sql_extra LIMIT 1", + dbesc($target_item['parent_mid']), + intval($sys['channel_id']) + ); + } + $_SESSION['loadtime'] = datetime_convert(); } else { @@ -222,11 +247,11 @@ class Hq extends \Zotlabs\Web\Controller { if($parents_str) { $items = q("SELECT item.*, item.id AS item_id FROM item - WHERE parent in ( %s ) $item_normal ", + WHERE parent IN ( %s ) $item_normal ", dbesc($parents_str) ); - xchan_query($items); + xchan_query($items,true,local_channel()); $items = fetch_post_tags($items,true); $items = conv_sort($items,'created'); } @@ -238,7 +263,7 @@ class Hq extends \Zotlabs\Web\Controller { $o .= conversation($items, 'hq', $update, 'client'); if($updateable) { - $x = q("UPDATE item SET item_unseen = 0 where item_unseen = 1 AND uid = %d and parent = %d ", + $x = q("UPDATE item SET item_unseen = 0 WHERE item_unseen = 1 AND uid = %d AND parent = %d ", intval(local_channel()), intval($r[0]['item_id']) ); -- cgit v1.2.3