*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; } ?> }} **コメント [#p00a5614] #comment #pageinfo([[:Category/PukiWiki]],2006-06-24 (土) 03:27:03,DOBON!,2006-06-24 (土) 03:51:44,DOBON!) |