diff options
author | Andrew Manning <tamanning@zoho.com> | 2016-05-21 21:55:09 -0400 |
---|---|---|
committer | Andrew Manning <tamanning@zoho.com> | 2016-05-21 21:55:09 -0400 |
commit | a36bef7979aecd72751d319f85b7037991979e35 (patch) | |
tree | 30b24ac811becd3e32cbeb260e11bea66ef4445d | |
parent | 049147a9d78b981482297c3daf48c67f31754259 (diff) | |
download | volse-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.php | 15 | ||||
-rw-r--r-- | include/widgets.php | 14 | ||||
-rw-r--r-- | include/wiki.php | 12 | ||||
-rw-r--r-- | view/tpl/wiki.tpl | 4 | ||||
-rw-r--r-- | view/tpl/wikilist.tpl | 7 |
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> |