サマリ | お絵描き(ドロー)プログラムのプラグイン |
---|---|
リビジョン | 1.0 |
対応バージョン | 1.4.7 |
投稿者 | takashi yamanoue |
投稿日 | 2009-04-11 (土) 08:29:37 |
文書と同様に、絵も共有したいと思うことがよくあります。pukiwiki では、ビットマップの画像を作成するペイントプログラムのプラグイン paint はあるのですが、線や多角形などの画素を配置して絵を作成するドロープログラムのプラグインは見当たりませんでした。そこで、dsr(または solar-cats)に備わっているドロープログラムをpukiwiki で利用できるようにしました。
<?php // PukiWiki - Yet another WikiWikiWeb clone // // netdraw.inc.php // t.yamanoue, 2009 // // Acknowledgement // This plugin is based on the paint.inc.php // Copyright (C) 2002-2005,2007 PukiWiki Developers Team // Copyright (C) ? -2002 panda // /* * Usage * #netdraw * パラメータ // 文字コード (EUC_JP, UTF-8, ...) 例 #netdraw(EUC_JP) */ function plugin_netdraw_convert() { if (PKWK_READONLY) return ''; // Show nothing //戻り値 $ret = ''; //引数 $args = func_get_args(); $charset="UTF-8"; if(count($args)==1){ $charset= array_shift($args); } $uri=get_script_uri() ; $ret = <<<EOD <div> <applet codebase="./dsr/classes" code="application/draw/PukiwikiApplet.class" archive="lib/commons-codec-1.3.jar,lib/commons-httpclient-3.1.jar,lib/commons-logging-1.1.1.jar" width="100" height="100"> <param name="action" value="$uri" /> <param name="param1" value="plugin=netdraw" /> <param name="return.URL" value="uri" /> <param name="charset" value="$charset" /> </applet> </div> EOD; return $ret; } ?>
<?php // PukiWiki - Yet another WikiWikiWeb clone // // netdraw.inc.php // t.yamanoue, 2009 // // Acknowledgement // This plugin is based on the paint.inc.php // Copyright (C) 2002-2005,2007 PukiWiki Developers Team // Copyright (C) ? -2002 panda // /* * Usage * #netdraw * パラメータ なし */ function plugin_netdraw_convert() { if (PKWK_READONLY) return ''; // Show nothing //戻り値 $ret = ''; $charset=CONTENT_CHARSET; $uri=get_script_uri() ; $ret = <<<EOD <div> <applet codebase="./dsr/classes" code="application/draw/PukiwikiApplet.class" archive="lib/commons-codec-1.3.jar,lib/commons-httpclient-3.1.jar,lib/commons-logging-1.1.1.jar" width="100" height="100"> <param name="action" value="$uri" /> <param name="param1" value="plugin=netdraw" /> <param name="charset" value="$charset" /> </applet> </div> EOD; return $ret; } ?>
http://sample.domain/pukiwiki/というPukiWikiに「testdraw」というページを作成し、そこに「#netdraw」と記述します。ページの作成が完了すると「お絵描きプログラム」が起動するので、そこに何かしら描画し「save」ボタンを押します。 本来であれば、これで描いた絵が「絵を表わす関数」としてページに保存されるのですが、「rewritemap.inc.php」でページURLを「 index.php?testdraw から testdraw.html 」に変更しているのでNetDrawのアプレットが編集ページを開けない様で書いた絵が保存されません。
http://sample.domain/pukiwiki/index.php?cmd=edit&page=testdrawにNetDrawのアプレットはアクセスしたいのでしょうが、
http://sample.domain/pukiwiki/testdraw.html?cmd=edit&page=nullと、アクセスしてしまっているようです。これを普通にeditコマンドを呼びだす形、
http://sample.domain/pukiwiki/?cmd=edit&page=testdrawにするにはどう様にしたら良いでしょう?-- けんじ 2010-07-13 (火) 13:37:58