Dokuwiki で、ログインしていないユーザーから「メディア マネージャー」リンクまたは上部の他のリンクを非表示にするにはどうすればよいですか?
8 に答える
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
}
?>
あなたが探しているものとは正確には異なりますが (とにかく少し遅いかもしれません)、Media Manager
すべての (ログインしているユーザーを含む) ユーザーのリンクを無効にする方法は次のとおりです。
- 管理パネルの構成設定に移動します。
- DokuWiki アクションを無効にする(オプション名:
disableactions
)を検索します。 - [その他のアクション]で、キーワードを追加します
media
(参照はこちら)。
これにより、全員のリンクが非表示になりますが、書き込みアクセス権を持つユーザーは、ページを編集するときに対応するボタンをクリックして、メディア マネージャーを起動できます。
ユーザーがログインしていない場合、$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)
));
}
私は最近この質問を自分自身で受けましたが、選択した回答は私にとって不十分であることがわかりました. デフォルトではなく 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>";
}
?>
かなりハックですが、テンプレートがどのように実装されているかを深く掘り下げる時間はありません。