dokuwiki:hidelogin
ログインなどを消す
ログイン、最近の変更、メディアマネージャー、サイトマップ、ソースの表示、以前のリビジョンを消したい。
ログインを消す
テンプレートのPHPコードの中から、
tpl_action('login', 1, 'li');
を見つけて削除してしまえばいいのだが、これだとログアウトも消えてしまうので、
if (isset($_SERVER['REMOTE_USER'])) { tpl_action('login', 1, 'li'); }
こんな感じにすれば、ログインしているときには「ログアウト」が表示できる。
古いテンプレート
テンプレートtemplate:20conesを例にする。
最近の変更など
上と同じで、
tpl_action('recent', 1, 'li'); tpl_action('media', 1, 'li'); tpl_action('index', 1, 'li');
をみつけて、
if (isset($_SERVER['REMOTE_USER'])) { tpl_action('recent', 1, 'li'); tpl_action('media', 1, 'li'); tpl_action('index', 1, 'li'); }
モバイル対応
サーチメニューの隣のドロップダウンを表示しているところを見つける。
<div class="mobileTools"> <?php tpl_actiondropdown($lang['tools']); ?> </div>
面倒なので、ログイン中以外はドロップダウンそのものを削ってしまえ!
<div class="mobileTools"> <?php if (isset($_SERVER['REMOTE_USER'])) tpl_actiondropdown($lang['tools']); ?> </div>
ソース表示とリビジョン
ソース表示とリビジョンも削りたい。でも、ログインしている時は見たい。
$data = array( 'view' => 'main', 'items' => array( 'edit' => tpl_action('edit', 1, 'li', 1, '<span>', '</span>'), 'revert' => tpl_action('revert', 1, 'li', 1, '<span>', '</span>'), 'revisions' => tpl_action('revisions', 1, 'li', 1, '<span>', '</span>'), 'backlink' => tpl_action('backlink', 1, 'li', 1, '<span>', '</span>'), 'subscribe' => tpl_action('subscribe', 1, 'li', 1, '<span>', '</span>'), 'top' => tpl_action('top', 1, 'li', 1, '<span>', '</span>') ) );
if (isset($_SERVER['REMOTE_USER'])) { $data = array( 'view' => 'main', 'items' => array( 'edit' => tpl_action('edit', 1, 'li', 1, '<span>', '</span>'), 'revert' => tpl_action('revert', 1, 'li', 1, '<span>', '</span>'), 'revisions' => tpl_action('revisions', 1, 'li', 1, '<span>', '</span>'), 'backlink' => tpl_action('backlink', 1, 'li', 1, '<span>', '</span>'), 'subscribe' => tpl_action('subscribe', 1, 'li', 1, '<span>', '</span>'), 'top' => tpl_action('top', 1, 'li', 1, '<span>', '</span>') ) ); } else { $data = array( 'view' => 'main', 'items' => array( 'backlink' => tpl_action('backlink', 1, 'li', 1, '<span>', '</span>'), 'top' => tpl_action('top', 1, 'li', 1, '<span>', '</span>') ) ); }
dokuwikiテンプレート
テンプレートtemplate:dokuwikiはすこし違っていた。
ログインを消す
tpl_header.php, 41行目
if (!empty($_SERVER['REMOTE_USER'])) { echo '<li class="user">'; tpl_userinfo(); /* 'Logged in as ...' */ echo '</li>'; } echo (new \dokuwiki\Menu\UserMenu())->getListItems('action ');
if (!empty($_SERVER['REMOTE_USER'])) { echo '<li class="user">'; tpl_userinfo(); /* 'Logged in as ...' */ echo '</li>'; echo (new \dokuwiki\Menu\UserMenu())->getListItems('action '); }
最近の変更など
tpl_header.php, 63行目
<?php echo (new \dokuwiki\Menu\SiteMenu())->getListItems('action ', false); ?>
<?php if (isset($_SERVER['REMOTE_USER'])) echo (new \dokuwiki\Menu\SiteMenu())->getListItems('action ', false); ?>
モバイル対応
tpl_hader.php, 60行目
<?php echo (new \dokuwiki\Menu\MobileMenu())->getDropdown($lang['tools']); ?>
<?php if (isset($_SERVER['REMOTE_USER'])) echo (new \dokuwiki\Menu\MobileMenu())->getDropdown($lang['tools']); ?>
ソース表示など
main.php, 76行目
<?php echo (new \dokuwiki\Menu\PageMenu())->getListItems(); ?>
<?php if (isset($_SERVER['REMOTE_USER'])) echo (new \dokuwiki\Menu\PageMenu())->getListItems(); else echo (new \dokuwiki\Menu\RestrictedPageMenu())->getListItems(); ?>
inc/Menu/MobileMenu.php をコピーしRestrictedMobileMenu.php を作る。
<?php namespace dokuwiki\Menu; /** * Class PageMenu * * Actions manipulating the current page. Shown as a floating menu in the dokuwiki template */ class RestrictedPageMenu extends AbstractMenu { protected $view = 'page'; protected $types = array( 'Backlink', 'Top', ); }
余計なものを削ってこんな感じにする。
config:disableactions
これを使うと、表示は消せるが、自分がログインしている時も使えなくなってしまう。
plugin:denyactions
ログインしていないユーザーのいくつかの動作を禁止できるプラグイン。画面からボタンを消しても、URLに直接アクセスされた場合のための対処。
revisions,diff,editを指定。
ログインする
?do=login でオケ。
dokuwiki/hidelogin.txt · 最終更新: 2019/07/18 by 管理者