6

Dokuwiki で、ログインしていないユーザーから「メディア マネージャー」リンクまたは上部の他のリンクを非表示にするにはどうすればよいですか?

4

8 に答える 8

4

1 つの方法は、次のようにテンプレートを変更することです: /lib/tpl/dokuwiki/tpl_header.php で:

            <?php
                if ($INFO['isadmin']) {
                    tpl_action('recent', 1, 'li'); //recent changes
                    tpl_action('media', 1, 'li'); //media manager
                    tpl_action('index', 1, 'li'); //sitemap
                }
            ?>
于 2013-03-23T17:49:39.013 に答える
3

あなたが探しているものとは正確には異なりますが (とにかく少し遅いかもしれません)、Media Managerすべての (ログインしているユーザーを含む) ユーザーのリンクを無効にする方法は次のとおりです。

  • 管理パネルの構成設定に移動します。
  • DokuWiki アクションを無効にする(オプション名: disableactions)を検索します。
  • [その他のアクション]で、キーワードを追加しますmedia(参照はこちら)。

これにより、全員のリンクが非表示になりますが、書き込みアクセス権を持つユーザーは、ページを編集するときに対応するボタンをクリックして、メディア マネージャーを起動できます。

于 2014-11-30T23:36:22.963 に答える
2

ユーザーがログインしていない場合、$INFO["userinfo"] は空です

/lib/tpl/dokuwiki/tpl_header.php で置き換えます

tpl_toolsevent('sitetools', array(
                    tpl_action('recent', true, 'li', true),
                    tpl_action('media', true, 'li', true),
                    tpl_action('index', true, 'li', true)
                ));

             if(!empty($INFO["userinfo"]))  {
                tpl_toolsevent('sitetools', array(
                    tpl_action('recent', true, 'li', true),
                    tpl_action('media', true, 'li', true),
                    tpl_action('index', true, 'li', true)
                ));
             }
于 2016-05-26T11:58:38.203 に答える
0

私は最近この質問を自分自身で受けましたが、選択した回答は私にとって不十分であることがわかりました. デフォルトではなく Codowik テンプレートを使用しているため、うまくいかなかったと確信しています。これは、シヴァンの答えを使用して思いついたものです。

これを編集/lib/tpl/codowik/tpl_header.phpして上部に追加しました:

<?php
  if (!$INFO['isadmin']) {
    echo "<script>
        var newStyle = document.createElement('Style');
        newStyle.innerHTML = '#codowiki_search_ul a {display: none;}';
        document.head.appendChild(newStyle);
      </script>";
  }
?>

かなりハックですが、テンプレートがどのように実装されているかを深く掘り下げる時間はありません。

于 2016-05-17T19:52:15.563 に答える