aboutsummaryrefslogtreecommitdiffstats
path: root/include/widgets.php
diff options
context:
space:
mode:
Diffstat (limited to 'include/widgets.php')
-rw-r--r--include/widgets.php151
1 files changed, 51 insertions, 100 deletions
diff --git a/include/widgets.php b/include/widgets.php
index 3dc555b46..799310908 100644
--- a/include/widgets.php
+++ b/include/widgets.php
@@ -104,7 +104,8 @@ function widget_appselect($arr) {
'$authed' => ((local_channel()) ? true : false),
'$personal' => t('Personal'),
'$new' => t('New App'),
- '$edit' => t('Edit App')
+ '$edit' => t('Edit Apps'),
+ '$cat' => ((array_key_exists('cat',$_REQUEST)) ? $_REQUEST['cat'] : '')
));
}
@@ -441,11 +442,13 @@ function widget_appcategories($arr) {
if(! local_channel())
return '';
- $cat = ((x($_REQUEST,'cat')) ? htmlspecialchars($_REQUEST['cat'],ENT_COMPAT,'UTF-8') : '');
- $srchurl = App::$query_string;
+ $selected = ((x($_REQUEST,'cat')) ? htmlspecialchars($_REQUEST['cat'],ENT_COMPAT,'UTF-8') : '');
+
$srchurl = rtrim(preg_replace('/cat\=[^\&].*?(\&|$)/is','',$srchurl),'&');
$srchurl = str_replace(array('?f=','&f='),array('',''),$srchurl);
+ $srchurl = z_root() . '/apps';
+
$terms = array();
$r = q("select distinct(term.term)
@@ -778,7 +781,7 @@ function widget_conversations($arr) {
'$messages' => $messages
));
- $o .= alt_pager($a,count($r));
+ //$o .= alt_pager($a,count($r));
}
@@ -899,92 +902,25 @@ function widget_chatroom_members() {
function widget_wiki_list($arr) {
- require_once("include/wiki.php");
- $channel = null;
- if (argc() < 2 && local_channel()) {
- // This should not occur because /wiki should redirect to /wiki/channel ...
- $channel = \App::get_channel();
- } else {
- $channel = channelx_by_nick(argv(1)); // Channel being viewed by observer
- }
- if (!$channel) {
- return '';
- }
- // init() should have forced the URL to redirect to /wiki/channel so assume argc() > 1
- $nick = argv(1);
- $owner = channelx_by_nick($nick); // The channel who owns the wikis being viewed
- // Determine if the observer is the channel owner so the ACL dialog can be populated
- if (local_channel() === intval($owner['channel_id'])) {
-
- // Obtain the default permission settings of the channel
- $owner_acl = array(
- 'allow_cid' => $owner['channel_allow_cid'],
- 'allow_gid' => $owner['channel_allow_gid'],
- 'deny_cid' => $owner['channel_deny_cid'],
- 'deny_gid' => $owner['channel_deny_gid']
- );
- // Initialize the ACL to the channel default permissions
- $x = array(
- 'lockstate' => (( $owner['channel_allow_cid'] ||
- $owner['channel_allow_gid'] ||
- $owner['channel_deny_cid'] ||
- $owner['channel_deny_gid']) ? 'lock' : 'unlock'
- ),
- 'acl' => populate_acl($owner_acl),
- 'allow_cid' => acl2json($owner_acl['allow_cid']),
- 'allow_gid' => acl2json($owner_acl['allow_gid']),
- 'deny_cid' => acl2json($owner_acl['deny_cid']),
- 'deny_gid' => acl2json($owner_acl['deny_gid']),
- 'bang' => ''
- );
- } else {
- // Not the channel owner
- $owner_acl = $x = array();
- }
- if(argc()>1) {
- $activeWikiURLname = argv(2);
- } else {
- $activeWikiURLname = '';
- }
- logger($activeWikiURLname, LOGGER_DEBUG);
- $wikis = wiki_list($channel, get_observer_hash());
- foreach($wikis['wikis'] as &$w) {
- if($w['urlName'] === $activeWikiURLname) {
- $w['active'] = true;
- } else {
- $w['active'] = false;
- }
- }
- if ($wikis) {
- return replace_macros(get_markup_template('wikilist.tpl'), array(
- '$header' => t('Wiki List'),
- '$channel' => $channel['channel_address'],
- '$wikis' => $wikis['wikis'],
- // If the observer is the local channel owner, show the wiki controls
- '$owner' => ((local_channel() && local_channel() === intval(\App::$profile['uid'])) ? true : false),
- '$edit' => t('Edit'),
- '$download' => t('Download'),
- '$view' => t('View'),
- '$addnew' => t('Create new wiki'),
- '$create' => t('Create'),
- '$wikiName' => array('wikiName', t('Wiki name'), '', ''),
- '$lockstate' => $x['lockstate'],
- '$acl' => $x['acl'],
- '$allow_cid' => $x['allow_cid'],
- '$allow_gid' => $x['allow_gid'],
- '$deny_cid' => $x['deny_cid'],
- '$deny_gid' => $x['deny_gid'],
- '$bang' => $x['bang'],
- '$notify' => t('Send notification')
- ));
- }
- 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'),
+ '$channel' => $channel['channel_address'],
+ '$wikis' => $wikis['wikis']
+ ));
+ }
+ return '';
}
function widget_wiki_pages($arr) {
- require_once("include/wiki.php");
$channelname = ((array_key_exists('channel',$arr)) ? $arr['channel'] : '');
+ $c = channelx_by_nick($channelname);
+
$wikiname = '';
if (array_key_exists('refresh', $arr)) {
$not_refresh = (($arr['refresh']=== true) ? false : true);
@@ -992,11 +928,12 @@ function widget_wiki_pages($arr) {
$not_refresh = true;
}
$pages = array();
- if (!array_key_exists('resource_id', $arr)) {
+ if (! array_key_exists('resource_id', $arr)) {
$hide = true;
} else {
- $p = wiki_page_list($arr['resource_id']);
- if ($p['pages']) {
+ $p = Zotlabs\Lib\NativeWikiPage::page_list($c['channel_id'],get_observer_hash(),$arr['resource_id']);
+
+ if($p['pages']) {
$pages = $p['pages'];
$w = $p['wiki'];
// Wiki item record is $w['wiki']
@@ -1010,6 +947,7 @@ function widget_wiki_pages($arr) {
return replace_macros(get_markup_template('wiki_page_list.tpl'), array(
'$hide' => $hide,
+ '$resource_id' => $arr['resource_id'],
'$not_refresh' => $not_refresh,
'$header' => t('Wiki Pages'),
'$channel' => $channelname,
@@ -1017,18 +955,23 @@ function widget_wiki_pages($arr) {
'$pages' => $pages,
'$canadd' => $can_create,
'$addnew' => t('Add new page'),
+ '$pageName' => array('pageName', t('Page name')),
));
}
function widget_wiki_page_history($arr) {
- require_once("include/wiki.php");
+
$pageUrlName = ((array_key_exists('pageUrlName', $arr)) ? $arr['pageUrlName'] : '');
$resource_id = ((array_key_exists('resource_id', $arr)) ? $arr['resource_id'] : '');
- $pageHistory = wiki_page_history(array('resource_id' => $resource_id, 'pageUrlName' => $pageUrlName));
- return replace_macros(get_markup_template('wiki_page_history.tpl'), array(
- '$pageHistory' => $pageHistory['history']
+ $pageHistory = Zotlabs\Lib\NativeWikiPage::page_history(array('channel_id' => App::$profile_uid, 'observer_hash' => get_observer_hash(), 'resource_id' => $resource_id, 'pageUrlName' => $pageUrlName));
+ return replace_macros(get_markup_template('nwiki_page_history.tpl'), array(
+ '$pageHistory' => $pageHistory['history'],
+ '$permsWrite' => $arr['permsWrite'],
+ '$name_lbl' => t('Name'),
+ '$msg_label' => t('Message','wiki_history')
));
+
}
function widget_bookmarkedchats($arr) {
@@ -1472,14 +1415,23 @@ function widget_forums($arr) {
$perms_sql = item_permissions_sql(local_channel()) . item_normal();
- /**
- * We used to try and find public forums with custom permissions by checking to see if
- * send_stream was false and tag_deliver was true. However with the newer extensible
- * permissions infrastructure this makes for a very complicated query. Now we're only
- * checking channels that report themselves specifically as pubforums
- */
+ $xf = false;
+
+ $x1 = q("select xchan from abconfig where chan = %d and cat = 'their_perms' and k = 'send_stream' and v = '0'",
+ intval(local_channel())
+ );
+ if($x1) {
+ $xc = ids_to_querystr($x1,'xchan',true);
+ $x2 = q("select xchan from abconfig where chan = %d and cat = 'their_perms' and k = 'tag_deliver' and v = '1' and xchan in (" . $xc . ") ",
+ intval(local_channel())
+ );
+ if($x2)
+ $xf = ids_to_querystr($x2,'xchan',true);
+ }
+
+ $sql_extra = (($xf) ? " and ( xchan_hash in (" . $xf . ") or xchan_pubforum = 1 ) " : " and xchan_pubforum = 1 ");
- $r1 = q("select abook_id, xchan_hash, xchan_name, xchan_url, xchan_photo_s from abook left join xchan on abook_xchan = xchan_hash where xchan_pubforum = 1 and xchan_deleted = 0 and abook_channel = %d order by xchan_name $limit ",
+ $r1 = q("select abook_id, xchan_hash, xchan_name, xchan_url, xchan_photo_s from abook left join xchan on abook_xchan = xchan_hash where xchan_deleted = 0 and abook_channel = %d $sql_extra order by xchan_name $limit ",
intval(local_channel())
);
if(! $r1)
@@ -1563,7 +1515,6 @@ function widget_tasklist($arr) {
function widget_helpindex($arr) {
$o .= '<div class="widget">';
- $o .= '<h3>' . t('Documentation') . '</h3>';
$level_0 = get_help_content('sitetoc');
if(! $level_0)