ifreadable.inc.php

指定されたページを閲覧する権限がある場合のみ表示されるようにする。オプションにより、編集権限を加えたり、結果を逆転させることができる。

使い方

&ifreadable(ページ名[, オプション]){Wiki文字列};
#ifreadable(ページ名[, オプション]){{
Wiki文字列
}}
ページ名
閲覧権限を調べるページ名を指定する。
オプション
次のオプションを使用できる。
editable編集権限も調べる。
noreadable閲覧権限を調べない。
not結果を逆転する。つまり、閲覧権限がないときに、「Wiki文字列」が表示されるようになる。
Wiki文字列
「ページ名」で指定されたページの閲覧権限があるときに表示するWiki文字列。

次のようにすると、指定したページが閲覧できる時とできない時で表示法を変更することができる。

&ifreadable(テストページ){[[テストページ]]を閲覧できます。};
&ifreadable(テストページ,not){テストページを閲覧できません。};

ダウンロード

ソースコードを以下に貼り付けておきます。

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
<?php
 
//作成者:どぼん!
 
function plugin_ifreadable_convert()
{
    $args = func_get_args();
    $str = array_pop($args);
 
    if (plugin_ifreadable_check($args))
        return convert_html(str_replace("\r", "\r\n", $str));
    else
        return '';
}
 
function plugin_ifreadable_inline()
{
    $args = func_get_args();
    $str = array_pop($args);
 
    if (plugin_ifreadable_check($args))
        return $str;
    else
        return '';
}
function plugin_ifreadable_check($args)
{
    $not_option = in_array('not', $args);
    
    return plugin_ifreadable_check_readable($args) xor $not_option;
}
 
function plugin_ifreadable_check_readable($args)
{
    $page = array_shift($args);
    if (empty($page))
        return false;
    
    $check_readable = !in_array('noreadable', $args);
    $check_editable = in_array('editable', $args);
    
    if ($check_readable && !check_readable($page, false, false))
        return  false;
    
    if ($check_editable && !check_editable($page, false, false))
        return  false;
    
    return true;
}
?>

ページ情報
[ トップ ]   [ 新規 | 子ページ作成 | 一覧 | 単語検索 | 最終更新 | ヘルプ ]