サマリ | 表示コンテンツ切り替えプラグイン |
---|---|
リビジョン | 0.9 |
対応バージョン | 1.4.7 |
投稿者 | jidaikobo |
投稿日 | 2007-02-11 (日) 17:42:03 |
こんな言語切り替えはどうかなと思って作ってみました。言語切り替え以外にもコメントだけ分けるとかもできると思います。ご意見いただけると幸いです。書式は下記の通りです。
#switchcontents(属性値){{ コンテンツをここに書く }}
v 0.9 からは厳密には PukiWiki のプラグインの仕様に則っていません。skin ファイルを直に編集します。 skin ファイルの冒頭箇所*1に下記スクリプト片を貼付けます。
include_once( PLUGIN_DIR . 'switchcontents.inc.php' ) ; list( $title,$page,$body,$swc_ctrl ) = switchcontents( $title,$page,$body ) ; $body = $swc_ctrl . $body ;
すると、コンテンツ内に switchcontents プラグインがあると、処理をするようになります。 $swc_ctrl には、スイッチ用のコントロールが入っているので、上記スクリプト片の、三行目をコメントアウトして、$swc_ctrl をたとえばメニュー部分などにおくこともできると思います。
include_once( PLUGIN_DIR . 'switchcontents.inc.php' ) ; list( $title,$page,$body,$swc_ctrl ) = switchcontents( $title,$page,$body ) ; //$body = $swc_ctrl . $body ;
ここにコンテンツの切り替え用の名称を入れます。たとえば english などです。
切り替えられるコンテンツのタイトルです。要注意なのは、コンテンツを切り替えた状態で「編集」しようとすると、新規ページになることです。
*テストページ これはテストページ #switchcontents(switch='english',title='Test page'){{ *Test page this is Test page. }}
#switchcontents(switch='english',title='Test page'){{ *Test page this is Test page. [[targetpage]]. <- このリンクは targetpage 中の english コンテンツを目指します。 }}
目標ページに目標スイッチがなくても無視されるだけです。 なお、目標ページに目標スイッチがあるけど、リンク時は別のスイッチ、あるいはオリジナルにリンクしたいときは、下記のようにそれを明示しないといけません。
#switchcontents(switch='english',title='Test page'){{ *Test page this is Test page. [[targetpage:http://example.com/index.php?cmd=read&page=targetpage]]. }}
UTF-8 版のみです。EUC には各自変換してお使いください。
いちおう勉強してセキュリティにも配慮しているつもりですが、穴などあったら教えてもらえると幸いです。
2007年2月11日 | 人柱版公開 | ver 0.8 |
2007年2月23日 | Safari では、location 先を $script まで明示せずにクエリストリングスから書くときちんとリダイレクトしてくれなかったので修正。 | ver 0.8.1 |
2007年2月27日 | 編集 → プレビュー時にもリダイレクトが発生してしまって、プレビューできなかったのを修正。 | ver 0.8.2 |
2007年9月16日 | いろいろ改造 | ver 0.9.0 |
function plugin_keitai_redirect_convert() { global $agent, $script; //ユーザーエージェントが携帯だったら if( $agent[ 'profile' ] == 'keitai' ) { $option = array_pop( func_get_args() ); $redirection = 'Location:'.$script."?".rawurlencode($option); header( $redirection ); } }