サマリ | 質問の回答を集計してランク付けするプラグイン(五択?) |
---|---|
リビジョン | 0.5 |
対応バージョン | 1.4.4 |
投稿者 | sha |
投稿日 | 2003-08-31 (SUN) 11:26:50 |
#gotaku(<config>,[disp]) <config>: 設定名 disp: これを付けるとランクを表示
:config/plugin/gotaku/<設定名> ←(1)パラメータ設定 :config/plugin/gotaku/<設定名>/sheet ←(2)設問と配点 :config/plugin/gotaku/<設定名>/result ←(3)得点表示の形式 :config/plugin/gotaku/<設定名>/list ←(4)得点ログ保存の形式 :config/plugin/gotaku/<設定名>/log ←(5)得点ログ(新規作成される)
_marking : TRUEで採点経過も表示 _ipcheck : TRUEで同じIPアドレスはログ保存しない _separator : 設問の選択肢の区切り _name,_score,_total,_percent,_ip,_date,_rank : 形式にitemを付けると[<パラメータ>]での置き換えに利用される。 オプションにlistを付けると、ランキング表示で使用される。 _percent=_score/_total*100 _refer : #gotakuが実行されたページ名に展開される。
* 設問 ** 設問 *** 設問 - 設問 -- 設問 --- 設問 + [<配点>] 選択肢 [解説] ++ [<配点>] 選択肢 [解説] +++ [<配点>] 選択肢 [解説]
[<パラメータ>]を用いて記載。名前や得点に置き換わる。 ~[<パラメータ>]は、「氏名」などの(1)の見出しに置き換わる。
テーブル形式で記載。[<パラメータ>]を用いる。
* parameters |項目名|見出し|形式|オプション|デフォルト値|h |_marking|採点表示|boolean||TRUE| |_ipcheck|IPチェック|boolean||FALSE| |_separator|分離子||| / | |_name|氏名|item|list|名無しさん| |_score|得点|item|list|| |_percent|%|item|list|| |_total|満点|item||| |_ip|IPアドレス|item||| |_date|日付|item||| |_rank|順位|item|list||
【表示例】
項目名 | 見出し | 形式 | オプション | デフォルト値 |
_marking | 採点表示 | boolean | TRUE | |
_ipcheck | IPチェック | boolean | FALSE | |
_separator | 分離子 | / | ||
_name | 氏名 | item | list | 名無しさん |
_score | 得点 | item | list | |
_percent | % | item | list | |
_total | 満点 | item | ||
_ip | IPアドレス | item | ||
_date | 日付 | item | ||
_rank | 順位 | item | list |
* ファンシーララの問題 ** 主人公の篠原みほの趣味は何? +[0]園芸 +[10]若手お笑い芸人おっかけ [そんなアニメがあったらすごい。面白いのでサービス点] +[2]ボーリング [しぶい] +[20]漫画描き [これが正解] +[5]縄跳び [女の子らしいけど不正解]
[[[_refer]]] * 採点 |CENTER:SIZE(32):|CENTER:SIZE(32):|c |~[_name]|[_name]| |COLOR(red):~[_score]|COLOR(red):[_percent]点 COLOR(black):[_score]/ [_total]|
|CENTER:||RIGHT:|||c |~[_rank]|~[_name]|~[_percent]|~[_score]|~[_date]|~[_ip]|h |[_rank]|[_name]|[_percent]|[_score]|[_date]|[_ip]|
順位 氏名 % 得点 日付 IPアドレス 1 sha 100 80 2003-08-31 (日) 09:49:50 xxx.xxx.xxx.xxx 1 sha 100 80 2003-08-31 (日) 09:51:17 xxx.xxx.xxx.xxx 3 sha 75 60 2003-08-30 (土) 17:53:09 xxx.xxx.xxx.xxx
順位 氏名 % 得点 1 sha 100 80 1 sha 100 80 3 sha 75 60
ここに添付しました。御利用下さい。
選択肢 | 投票 |
はい | 86 |
いいえ | 28 |
いただきますm(__)m
どうぞ。召し上がれ。
バッチリですね。ソースの1ヶ所だけ修正しました。142行目あたり。<form>タグの中に直接<input>などのインライン要素は配置できないので<div>で囲みました。
return <<<EOD <form enctype="multipart/form-data" action="$script" method="post"> + <div> $retval - </p> + <div> - 氏名:<input type="text" length="20" name="name" /> + 氏名:<input type="text" size="20" name="name" /> <input type="submit" value="$s_title" /> + </div> + </div> </form> EOD;
それと、選択肢を縦に並べる場合の分離子は '&br;' ではダメで、'<br />' を指定する必要があります。
結果集計表示(disp)で、表の先頭部分に空の<div><table>~</table></div>が余分に出力されてます。
! <div class="ie5"> ! <table class="style_table" cellspacing="1" border="0"> ! </table> ! </div> <div class="ie5"> <table class="style_table" cellspacing="1" border="0"> <thead> <tr> <th class="style_th">順位</th> <th class="style_th">氏名</th> <th class="style_th">得点</th> </tr> </thead> <tbody> <tr> <td class="style_td">1</td> <td class="style_td">test</td> <td class="style_td">11</td> </tr> </tbody> </table>
gotaku.inc.php.3で、reimyさん指摘個所のソースを修正しました。また、分離子としてPukiWikiの記載が使えるように対応しました(というか、当初対応していたはずなのに消えてたようです)。
さらに、dispで<table>が余分に表示されている現象については、(4)の/listのページの時点ですでに余分に表示されていますので、それがそのまま出ているというのが真相のようです。その時点で、何故余分に出ているのかは不明です。
(4)の/listの1行めを削除して下記のようにすれば正常に表示されます。
|~[_rank]|~[_name]|~[_score]|~[_date]|~[_ip]|h |[_rank]|[_name]|[_score]|[_date]|[_ip]|
ああ、なるほど。先頭行のカラムの数が違っていたんですね。「sha::config/plugin/gotaku/テスト/list」では途中で[_ip]カラムを削除したので、そのときに先頭行の対応するカラムも削除しておくのを忘れていたようです。カラム数を一致させたら大丈夫になりました。
懸案事項としては、設問シートを用意するたびに全設定ページを用意するのは大変なので、1つの設定で複数の(2)/sheetが用意できるようにすることでしょうか。#gotakuの引数に設定名のほかにsheet名を添える形式がいいかな。ただし、得点ログ(5)/logの管理などがややっこしくなるので要検討なのです。
うーん うまく置換されないなぁ なぜだろう? テストはいつものところ (笑)
申し訳ありません。私がconfig.phpの仕様を間違えていたようです。(1)のparametersの見出しは星1つ*でなければならなかったようです。それを修正したら置き換えがうまく行きました。
私はプラグインとは、PukiWikiに新しい機能や便利な機能を提供するものだと考えていましたが、このgotaku.inc.phpは新しいアプリケーションをPukiWikiに用意するというものだと位置づけられますね。これは私にとっては新しい視点でした。とても勉強になりました。ありがとうございます。
残念ながらWindowsでは使えないんですね。。。 ファイル名とフォルダ名が同じだとダメみたいです
Windowsとかには依存してないはずですよ。もちろん、バグがあるなら修正しますよ。
ところで、「ファイル名とフォルダ名が同じだとダメ」の意味が分かりません。説明をお願いします。このプラグインでは、明示的にはファイルやフォルダも使っていません。つまり、全てPukiWiki上のページとして管理されてますので。
もうしわけありません。理解しました<(_ _)>
使えましたか?それとも別の運用方法が使えることを期待していたのでしょうか?
sheetで表組を使うと、表示が崩れますね。オリジナルは問題ないんですけど。
表組を使うことは想定していませんでしたが、例えば、どんなふうにすると表示が崩れるのでしょうか?
/list のところに[_score]/[_total]としたいのですが、その場合はどうしたらいいですか?
gotaku.inc.php.4ではそのように表示したり計算したりはできません。[_score]などのアイテムは、テーブルのセルに1つだけ記載されていることを想定していますので(|[_score]|など)、修正するにも、ちとやっかいなのです。
回答ありがとうございます。仕様ということで了解しました。(ちょっとこんなことをしてみたときに、コメントをもらって試してみたらできなかったので)
すみません。今後の検討事項とさせてください。
具体的には、test/sheetで
test test2 test3の様に記述しておいて #gotaku(test) で表示すると、test/sheetでは
<pre> test test2 test3</pre>となるところが、
<pre> test</pre> <pre> test2</pre> <pre> test3</pre>となってしまい、意図した表示が得られません。対処法があるようであればお教え下さい。よろしくお願いします。
$qt[$act] =<<<EOD <input type="radio" name="qct$qct" value="ans$act" /> $match[3] EOD;を
$inlinemessage = preg_replace('/<\/?p>/','', convert_html($match[3])); $qt[$act] =<<<EOD <input type="radio" name="qct$qct" value="ans$act" /> $inlinemessage EOD;に変更して、とりあえず表示されるようになりました。-- am 2009-05-06 (水) 13:24:18