aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Manning <tamanning@zoho.com>2016-05-21 21:55:09 -0400
committerAndrew Manning <tamanning@zoho.com>2016-05-21 21:55:09 -0400
commita36bef7979aecd72751d319f85b7037991979e35 (patch)
tree30b24ac811becd3e32cbeb260e11bea66ef4445d
parent049147a9d78b981482297c3daf48c67f31754259 (diff)
downloadvolse-hubzilla-a36bef7979aecd72751d319f85b7037991979e35.tar.gz
volse-hubzilla-a36bef7979aecd72751d319f85b7037991979e35.tar.bz2
volse-hubzilla-a36bef7979aecd72751d319f85b7037991979e35.zip
List of wikis populates with links according to observer permissions.
-rw-r--r--Zotlabs/Module/Wiki.php15
-rw-r--r--include/widgets.php14
-rw-r--r--include/wiki.php12
-rw-r--r--view/tpl/wiki.tpl4
-rw-r--r--view/tpl/wikilist.tpl7
5 files changed, 39 insertions, 13 deletions
diff --git a/Zotlabs/Module/Wiki.php b/Zotlabs/Module/Wiki.php
index c4546e5ef..53a3eb26b 100644
--- a/Zotlabs/Module/Wiki.php
+++ b/Zotlabs/Module/Wiki.php
@@ -48,7 +48,22 @@ class Wiki extends \Zotlabs\Web\Controller {
'acl' => populate_acl($channel_acl),
'bang' => ''
);
+// $wikiheader = t('Wiki Sandbox');
+// $hide_editor = false;
+ if(argc()<3) {
+ $wikiheader = t('Wiki Sandbox');
+ $hide_editor = false;
+ } elseif (argc()<4) {
+ $wikiheader = 'Empty wiki: ' . rawurldecode(argv(2)); // show wiki name
+ $hide_editor = true;
+ } elseif (argc()<5) {
+ $wikiheader = rawurldecode(argv(2)) . ': ' . rawurldecode(argv(3)); // show wiki name and page
+ $hide_editor = false;
+ }
+
$o .= replace_macros(get_markup_template('wiki.tpl'),array(
+ '$wikiheader' => $wikiheader,
+ '$hideEditor' => $hide_editor,
'$channel' => $channel['channel_address'],
'$lockstate' => $x['lockstate'],
'$acl' => $x['acl'],
diff --git a/include/widgets.php b/include/widgets.php
index acbd9bcd3..cff58d225 100644
--- a/include/widgets.php
+++ b/include/widgets.php
@@ -860,13 +860,19 @@ function widget_chatroom_members() {
function widget_wiki_list($arr) {
require_once("include/wiki.php");
- $r = wiki_list(App::$profile['channel_hash']);
+ if(argc()>1) {
+ $nick = argv(1);
+ } else {
+ $channel = \App::get_channel();
+ $nick = $channel['channel_address'];
+ }
+ $wikis = wiki_list($nick, get_observer_hash());
- if($r) {
+ if($wikis) {
return replace_macros(get_markup_template('wikilist.tpl'), array(
'$header' => t('Wiki List'),
- '$read' => $r['read'],
- '$write' => $r['write']
+ '$channel' => $nick,
+ '$wikis' => $wikis['wikis']
));
}
}
diff --git a/include/wiki.php b/include/wiki.php
index 32caa98e8..7cd838f95 100644
--- a/include/wiki.php
+++ b/include/wiki.php
@@ -15,9 +15,17 @@ function wiki_delete() {
}
-function wiki_list($observer_hash) {
+function wiki_list($nick, $observer_hash) {
+ if (local_channel() || remote_channel()) {
+ $sql_extra = item_permissions_sql(get_channel_by_nick($nick)['channel_id'], $observer_hash);
+ } else {
+ $sql_extra = " AND item_private = 0 ";
+ }
+ $wikis = q("SELECT * FROM item WHERE resource_type = '%s' AND mid = parent_mid AND item_deleted = 0 $sql_extra",
+ dbesc(WIKI_ITEM_RESOURCE_TYPE)
+ );
// TODO: query db for wikis the observer can access. Return with two lists, for read and write access
- return array('write' => array('wiki1'), 'read' => array('wiki1', 'wiki2'));
+ return array('wikis' => $wikis);
}
function wiki_pages() {
diff --git a/view/tpl/wiki.tpl b/view/tpl/wiki.tpl
index f96270856..641b3256a 100644
--- a/view/tpl/wiki.tpl
+++ b/view/tpl/wiki.tpl
@@ -15,7 +15,7 @@
<button id="inline-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(false);
adjustInlineTopBarHeight();"><i class="fa fa-compress"></i></button>
</div>
- <h2>Wiki</h2>
+ <h2>{{$wikiheader}}</h2>
<div class="clear"></div>
</div>
<div id="new-wiki-form-wrapper" class="section-content-tools-wrapper" style="display:none;">
@@ -46,7 +46,7 @@
<hr>
</div>
- <div id="wiki-content-container" class="section-content-wrapper">
+ <div id="wiki-content-container" class="section-content-wrapper" {{if $hideEditor}}style="display: none;"{{/if}}>
<ul class="nav nav-tabs" id="wiki-nav-tabs">
<li class="active"><a data-toggle="tab" href="#edit-pane">Edit</a></li>
<li><a data-toggle="tab" href="#preview-pane" id="wiki-get-preview">Preview</a></li>
diff --git a/view/tpl/wikilist.tpl b/view/tpl/wikilist.tpl
index b76bb359c..d5f2d0c04 100644
--- a/view/tpl/wikilist.tpl
+++ b/view/tpl/wikilist.tpl
@@ -1,11 +1,8 @@
<div id="wiki_list" class="widget">
<h3>{{$header}}</h3>
<ul class="nav nav-pills nav-stacked">
- {{foreach $read as $r}}
- <li><a href="">{{$r}}</a></li>
- {{/foreach}}
- {{foreach $write as $r}}
- <li><a href="">{{$r}}</a></li>
+ {{foreach $wikis as $wiki}}
+ <li><a href="/wiki/{{$channel}}/{{$wiki.title}}">{{$wiki.title}}</a></li>
{{/foreach}}
</ul>
</div>