aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/widgets.php93
-rw-r--r--include/wiki.php3
2 files changed, 13 insertions, 83 deletions
diff --git a/include/widgets.php b/include/widgets.php
index 4cb8f8372..f24bb488b 100644
--- a/include/widgets.php
+++ b/include/widgets.php
@@ -898,87 +898,17 @@ 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_widget.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' => array('postVisible', t('Send notification'), '', '', array(t('No'), t('Yes')))
- ));
- }
- return '';
+ require_once("include/wiki.php");
+ $channel = channelx_by_n(App::$profile_uid);
+ $wikis = wiki_list($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) {
@@ -1573,7 +1503,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)
diff --git a/include/wiki.php b/include/wiki.php
index 30685a0bf..332d4efe0 100644
--- a/include/wiki.php
+++ b/include/wiki.php
@@ -14,12 +14,13 @@ function wiki_list($channel, $observer_hash) {
intval($channel['channel_id'])
);
if($wikis) {
- foreach($wikis as &$w) {
+ foreach($wikis as &$w) {
$w['rawName'] = get_iconfig($w, 'wiki', 'rawName');
$w['htmlName'] = get_iconfig($w, 'wiki', 'htmlName');
$w['urlName'] = get_iconfig($w, 'wiki', 'urlName');
$w['path'] = get_iconfig($w, 'wiki', 'path');
$w['mimeType'] = get_iconfig($w, 'wiki', 'mimeType');
+ $w['lock'] = (($w['allow_cid'] || $w['allow_gid'] || $w['deny_cid'] || $w['deny_gid']) ? true : false);
}
}
// TODO: query db for wikis the observer can access. Return with two lists, for read and write access