らぎめも

らぎらぎのノート

ユーザ用ツール

サイト用ツール


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

ja:config:disableactions

これを使うと、表示は消せるが、自分がログインしている時も使えなくなってしまう。

plugin:denyactions

ログインしていないユーザーのいくつかの動作を禁止できるプラグイン。画面からボタンを消しても、URLに直接アクセスされた場合のための対処。

plugin:denyactions

revisions,diff,editを指定。

ログインする

?do=login でオケ。

dokuwiki/hidelogin.txt · 最終更新: 2019/07/18 by 管理者

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki