• 追加された行はこの色です。
  • 削除された行はこの色です。
*ifreadable.inc.php [#c37bb50c]

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

**使い方 [#d38b0949]

 &ifreadable(ページ名[, オプション]){Wiki文字列};

 #ifreadable(ページ名[, オプション]){{
 Wiki文字列
 }}

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

**例 [#q6768567]

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

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

**ダウンロード [#y52603d6]

ソースコードを以下に貼り付けておきます。
ソースコードを以下に貼り付けておきます。「ifreadable.inc.php」という名前のファイルに、適当な文字コード(大抵はEUCかな?)で保存してください。

#code(php){{
<?php

//ifreadable.inc.php
//Version 0.0.1
//作成者:どぼん!

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;
}
?>
}}

#pageinfo([[:Category/PukiWiki]],2006-06-24 (土) 03:27:03,DOBON!,2006-06-24 (土) 03:27:03,DOBON!)
**コメント [#p00a5614]

#comment

#pageinfo([[:Category/PukiWiki]],2006-06-24 (土) 03:27:03,DOBON!,2006-06-24 (土) 03:51:44,DOBON!)


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