possible fixes for can_comment_on_post(), provide wiki_list on wiki sidebar

This commit is contained in:
zotlabs 2018-08-15 17:00:37 -07:00
parent f4f610f1a3
commit f230c07ba5
4 changed files with 33 additions and 15 deletions

View File

@ -196,7 +196,6 @@ class ThreadStream {
$item->set_commentable(false);
}
require_once('include/channel.php');
$item->set_conversation($this);
$this->threads[] = $item;

View File

@ -6,13 +6,17 @@ class Wiki_list {
function widget($arr) {
if(argc() < 3) {
return;
}
$channel = channelx_by_n(\App::$profile_uid);
$wikis = \Zotlabs\Lib\NativeWiki::listwikis($channel,get_observer_hash());
if($wikis) {
return replace_macros(get_markup_template('wikilist_widget.tpl'), array(
'$header' => t('Wiki List'),
'$header' => t('Wikis'),
'$channel' => $channel['channel_address'],
'$wikis' => $wikis['wikis']
));

View File

@ -234,10 +234,11 @@ function can_comment_on_post($observer_xchan, $item) {
// logger('Comment_policy: ' . $item['comment_policy'], LOGGER_DEBUG);
$x = [
'observer_hash' => $observer_xchan,
'item' => $item,
'allowed' => 'unset'
'observer_hash' => $observer_xchan,
'item' => $item,
'allowed' => 'unset'
];
/**
* @hooks can_comment_on_post
* Called when deciding whether or not to present a comment box for a post.
@ -245,26 +246,34 @@ function can_comment_on_post($observer_xchan, $item) {
* * \e array \b item
* * \e boolean \b allowed - return value
*/
call_hooks('can_comment_on_post', $x);
if($x['allowed'] !== 'unset')
if($x['allowed'] !== 'unset') {
return $x['allowed'];
}
if(! $observer_xchan)
if(! $observer_xchan) {
return false;
}
if($item['comment_policy'] === 'none')
if($item['comment_policy'] === 'none') {
return false;
}
if(comments_are_now_closed($item))
if(comments_are_now_closed($item)) {
return false;
}
if($observer_xchan === $item['author_xchan'] || $observer_xchan === $item['owner_xchan'])
if($observer_xchan === $item['author_xchan'] || $observer_xchan === $item['owner_xchan']) {
return true;
}
switch($item['comment_policy']) {
case 'self':
if($observer_xchan === $item['author_xchan'] || $observer_xchan === $item['owner_xchan'])
if($observer_xchan === $item['author_xchan'] || $observer_xchan === $item['owner_xchan']) {
return true;
}
break;
case 'public':
case 'authenticated':
@ -276,17 +285,22 @@ function can_comment_on_post($observer_xchan, $item) {
case 'any connections':
case 'contacts':
case '':
if(array_key_exists('owner',$item) && get_abconfig($item['uid'],$item['owner']['abook_xchan'],'their_perms','post_comments')) {
return true;
if(local_channel() && get_abconfig(local_channel(),$item['owner_xchan'],'their_perms','post_comments')) {
return true;
}
if(intval($item['item_wall']) && perm_is_allowed($item['uid'],$observer_xchan,'post_comments')) {
return true;
}
break;
default:
break;
}
if(strstr($item['comment_policy'],'network:') && strstr($item['comment_policy'],'red'))
if(strstr($item['comment_policy'],'network:') && strstr($item['comment_policy'],'red')) {
return true;
if(strstr($item['comment_policy'],'site:') && strstr($item['comment_policy'],App::get_hostname()))
}
if(strstr($item['comment_policy'],'site:') && strstr($item['comment_policy'],App::get_hostname())) {
return true;
}
return false;
}

View File

@ -1,5 +1,6 @@
[region=aside]
[widget=vcard][/widget]
[widget=wiki_list][/widget]
[widget=wiki_pages][/widget]
[/region]
[region=right_aside]