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 · 最終更新: by 管理者
