gotaku.inc.php

サマリ質問の回答を集計してランク付けするプラグイン(五択?)
リビジョン0.5
対応バージョン1.4.4
投稿者sha
投稿日2003-08-31 (SUN) 11:26:50

概要

  • 質問集と回答と配点を用意しておいて、ユーザの答えを採点する。その点数でランク付けする。

説明

  • 欲しいプラグイン/49の要望に対応。
  • 選択肢ごとに配点。
  • 得点でランキング表示できる。
  • IPアドレスチェック機能あり。
  • XHTML1.1 validation check済み。
  • ここで実験しています→「sha:gotaku.inc.php

使用法

  • 引数の仕様と意味
    #gotaku(<config>,[disp])
    <config>: 設定名
    disp: これを付けるとランクを表示
  • 設定ページ
    (1)(3)(4)は#trackerの設定方法と似ている。
    特に(5)には読出制限を付けるとよいでしょう。
    :config/plugin/gotaku/<設定名>        ←(1)パラメータ設定
    :config/plugin/gotaku/<設定名>/sheet  ←(2)設問と配点
    :config/plugin/gotaku/<設定名>/result ←(3)得点表示の形式
    :config/plugin/gotaku/<設定名>/list   ←(4)得点ログ保存の形式
    :config/plugin/gotaku/<設定名>/log    ←(5)得点ログ(新規作成される)
  • (1)パラメータの設定方法(全部予約語)
    _marking : TRUEで採点経過も表示
    _ipcheck : TRUEで同じIPアドレスはログ保存しない
    _separator : 設問の選択肢の区切り
    _name,_score,_total,_percent,_ip,_date,_rank :
       形式にitemを付けると[<パラメータ>]での置き換えに利用される。 
       オプションにlistを付けると、ランキング表示で使用される。
       _percent=_score/_total*100
    _refer : #gotakuが実行されたページ名に展開される。
    • _totalとは、設問内の選択肢の最大配点を全設問で合計したもの。
    • _ipcheck機能を有効にすると新たにログに保存されなくなるが、採点結果は表示される。
    • _ipcheck機能を有効にするには(4)にて[_ip]を設定し、IPアドレスをログに保存しておく必要がある。
    • _ipcheckは、現在のところ記録された全てのIPアドレスと異なる必要があるのでまれに不都合が生じるかも(既に実行した人のIPアドレスを再使用している場合にも拒絶されてしまう)。
  • (2)設問と採点の記載方法(/sheet)
    設問の直後に続く複数の選択肢をまとめてグループ化する。選択肢の直後に「[」と「]」でくくって解説やコメントを付加することができる。
    * 設問
    ** 設問
    *** 設問
    - 設問
    -- 設問
    --- 設問
    + [<配点>] 選択肢 [解説]
    ++ [<配点>] 選択肢  [解説]
    +++ [<配点>] 選択肢 [解説]
  • (3)得点表示の形式(/result)
    [<パラメータ>]を用いて記載。名前や得点に置き換わる。
    ~[<パラメータ>]は、「氏名」などの(1)の見出しに置き換わる。
  • (4)得点ログの保存形式(/list)
    テーブル形式で記載。[<パラメータ>]を用いる。
  • (5)得点ログ(/log)
    勝手に生成される。(4)に従って自動的に生成される。

使用例

  • (1)パラメータの設定例
    * parameters
    |項目名|見出し|形式|オプション|デフォルト値|h
    |_marking|採点表示|boolean||TRUE|
    |_ipcheck|IPチェック|boolean||FALSE|
    |_separator|分離子|||&nbsp;/&nbsp;|
    |_name|氏名|item|list|名無しさん|
    |_score|得点|item|list||
    |_percent|%|item|list||
    |_total|満点|item|||
    |_ip|IPアドレス|item|||
    |_date|日付|item|||
    |_rank|順位|item|list||
    • 分離子が「&nbsp;/&nbsp;」だと/を挟んで横に選択肢が並ぶが、例えば、「&br;」にすると選択肢が縦に並ぶ。

【表示例】

parameters

項目名見出し形式オプションデフォルト値
_marking採点表示booleanTRUE
_ipcheckIPチェックbooleanFALSE
_separator分離子 / 
_name氏名itemlist名無しさん
_score得点itemlist
_percentitemlist
_total満点item
_ipIPアドレスitem
_date日付item
_rank順位itemlist
  • (2)設問と採点の記載例(/sheet)
    * ファンシーララの問題
    ** 主人公の篠原みほの趣味は何?
    +[0]園芸 
    +[10]若手お笑い芸人おっかけ  [そんなアニメがあったらすごい。面白いのでサービス点]
    +[2]ボーリング   [しぶい]
    +[20]漫画描き   [これが正解]
    +[5]縄跳び  [女の子らしいけど不正解]
  • (3)得点表示の形式(/result)の例
    [[[_refer]]]
    * 採点
    |CENTER:SIZE(32):|CENTER:SIZE(32):|c
    |~[_name]|[_name]|
    |COLOR(red):~[_score]|COLOR(red):[_percent]点 COLOR(black):[_score]/ [_total]|
  • (4)得点ログの保存形式の例(/list)
    |CENTER:||RIGHT:|||c
    |~[_rank]|~[_name]|~[_percent]|~[_score]|~[_date]|~[_ip]|h
    |[_rank]|[_name]|[_percent]|[_score]|[_date]|[_ip]|
  • (5)得点ログの例
    順位氏名得点日付IPアドレス
    1sha100802003-08-31 (日) 09:49:50xxx.xxx.xxx.xxx
    1sha100802003-08-31 (日) 09:51:17xxx.xxx.xxx.xxx
    3sha75602003-08-30 (土) 17:53:09xxx.xxx.xxx.xxx
  • #gotaku(<設定名>,disp)の表示例
    順位氏名得点
    1sha10080
    1sha10080
    3sha7560

ダウンロード

ここに添付しました。御利用下さい。

  • filegotaku.inc.php.5」←提供中
    リビジョン更新日内容
    filev0.52004/09/18PukiWiki1.4.4動作確認。100点換算表示(%)。回答時の解説表示
    filev0.42003/09/03設問の表示を微妙に調整
    v0.32003/09/01debug/reimyさんの指摘に対応。他に気になった点の修正
    v0.22003/08/31debug/名前のデフォルト値が入らない
    v0.12003/08/31新規作成。debug

アンケート

  • このプラグインに満足しておりますか?
    選択肢投票
    はい86
    いいえ28
  • 「いいえ」に投票した方に質問です。
    どのような修正を加えれば、よくなると思いますか?下記のコメントに記入して下さい。

コメント

  • reimy 2003-08-31 (SUN) 19:17:20

    いただきますm(__)m

    • sha 2003-08-31 (SUN) 20:25:07

      どうぞ。召し上がれ。

  • reimy 2003-09-01 (MON) 05:02:10

    バッチリですね。ソースの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;
  • reimy 2003-09-01 (MON) 05:12:57

    それと、選択肢を縦に並べる場合の分離子は '&br;' ではダメで、'<br />' を指定する必要があります。

  • reimy 2003-09-01 (MON) 05:38:51

    結果集計表示(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>
  • sha 2003-09-01 (MON) 07:38:10

    gotaku.inc.php.3で、reimyさん指摘個所のソースを修正しました。また、分離子としてPukiWikiの記載が使えるように対応しました(というか、当初対応していたはずなのに消えてたようです)。

    さらに、dispで<table>が余分に表示されている現象については、(4)の/listのページの時点ですでに余分に表示されていますので、それがそのまま出ているというのが真相のようです。その時点で、何故余分に出ているのかは不明です。

    • reimy 2003-09-01 (MON) 07:53:44

      (4)の/listの1行めを削除して下記のようにすれば正常に表示されます。

      |~[_rank]|~[_name]|~[_score]|~[_date]|~[_ip]|h
      |[_rank]|[_name]|[_score]|[_date]|[_ip]|
    • sha 2003-09-01 (MON) 08:01:19

      ああ、なるほど。先頭行のカラムの数が違っていたんですね。「sha::config/plugin/gotaku/テスト/list」では途中で[_ip]カラムを削除したので、そのときに先頭行の対応するカラムも削除しておくのを忘れていたようです。カラム数を一致させたら大丈夫になりました。

  • sha 2003-09-01 (MON) 10:59:09

    懸案事項としては、設問シートを用意するたびに全設定ページを用意するのは大変なので、1つの設定で複数の(2)/sheetが用意できるようにすることでしょうか。#gotakuの引数に設定名のほかにsheet名を添える形式がいいかな。ただし、得点ログ(5)/logの管理などがややっこしくなるので要検討なのです。

    • reimy 2003-09-01 (MON) 16:15:36

      「設問シートを用意するたびに全設定ページを用意するのは大変」でもないです。template.inc.phpでサクサクとコピー(笑い)

    • sha 2003-09-01 (MON) 16:34:09

      …あれ!?そんな便利な技があったのですか。奥が深い…。勉強になります。

  • merlin 2003-09-01 (MON) 18:39:10

    うーん うまく置換されないなぁ なぜだろう? テストはいつものところ (笑)

    • sha 2003-09-01 (MON) 18:59:30

      申し訳ありません。私がconfig.phpの仕様を間違えていたようです。(1)のparametersの見出しは星1つ*でなければならなかったようです。それを修正したら置き換えがうまく行きました。

      • merlin 2003-09-01 (MON) 21:01:32

        了解。ちゃんと読まずに 他力本願してしまいました.... m(_._)m

      • sha 2003-09-01 (MON) 21:29:17

        いえいえ。私の上の説明で星3つ***になっていたのです。これをコピーすると誰でもその失敗に陥るという罠があったのでした。。。申し訳ありませんでした。

  • sha 2003-09-02 (TUE) 11:31:51

    私はプラグインとは、PukiWikiに新しい機能や便利な機能を提供するものだと考えていましたが、このgotaku.inc.phpは新しいアプリケーションをPukiWikiに用意するというものだと位置づけられますね。これは私にとっては新しい視点でした。とても勉強になりました。ありがとうございます。

    • reimy 2003-09-02 (TUE) 12:29:07

      PukiWiki内のアプリケーションという意味では、upkさんの行き先掲示板が先駆的でしたね。現在の:config/~による設定もupkさんのアイデアだったと思います。

  • かお? 2003-10-09 (THU) 23:32:22

    残念ながらWindowsでは使えないんですね。。。 ファイル名とフォルダ名が同じだとダメみたいです

    • sha 2003-10-10 (FRI) 00:36:22

      Windowsとかには依存してないはずですよ。もちろん、バグがあるなら修正しますよ。

      ところで、「ファイル名とフォルダ名が同じだとダメ」の意味が分かりません。説明をお願いします。このプラグインでは、明示的にはファイルやフォルダも使っていません。つまり、全てPukiWiki上のページとして管理されてますので。

  • かお? 2003-10-10 (FRI) 00:40:37

    もうしわけありません。理解しました<(_ _)>

    • sha 2003-10-10 (FRI) 02:02:58

      使えましたか?それとも別の運用方法が使えることを期待していたのでしょうか?

  • upk 2003-10-26 (SUN) 00:15:43

    sheetで表組を使うと、表示が崩れますね。オリジナルは問題ないんですけど。

    • sha 2003-10-27 (MON) 00:42:16

      表組を使うことは想定していませんでしたが、例えば、どんなふうにすると表示が崩れるのでしょうか?

  • みこ 2004-01-29 (THU) 16:43:20

    /list のところに[_score]/[_total]としたいのですが、その場合はどうしたらいいですか?

    • sha 2004-02-02 (MON) 01:12:30

      gotaku.inc.php.4ではそのように表示したり計算したりはできません。[_score]などのアイテムは、テーブルのセルに1つだけ記載されていることを想定していますので(|[_score]|など)、修正するにも、ちとやっかいなのです。

      • みこ 2004-02-02 (MON) 17:25:37

        回答ありがとうございます。仕様ということで了解しました。(ちょっとこんなことをしてみたときに、コメントをもらって試してみたらできなかったので)

      • sha 2004-02-03 (TUE) 02:06:02

        すみません。今後の検討事項とさせてください。

      • 割り算とか任意の演算をしようと思うから大変なんですね。はじめから100点満点表示を用意するという方法なら比較的容易に実装できそうです。 -- sha 2004-09-01 (水) 12:43:19
      • なるほど、それはいいかもしれませんね&smile; -- みこ 2004-09-01 (水) 16:27:53
  • 長らくお待たせを致しました。v0.5にて、PukiWiki1.4.4動作確認、回答時の解説表示、みこさん要望の100点満点表示に対応しました。ご利用ください。 -- sha 2004-09-18 (土) 14:29:55
  • こんにちは、gotaku.inc.php 楽しく使わせてもらっています。上記にある「sheetで表組みを使うと表示が崩れる」という件に関して整形済みテキストでも同じような現象に遭遇して困っています。 -- lah? 2004-10-07 (木) 16:15:04

    具体的には、test/sheetで

    test
    test2
    test3
    の様に記述しておいて #gotaku(test) で表示すると、test/sheetでは
    <pre> test
     test2
     test3</pre>
    となるところが、
    <pre> test</pre>
    <pre> test2</pre>
    <pre> test3</pre>
    となってしまい、意図した表示が得られません。対処法があるようであればお教え下さい。よろしくお願いします。
  • はじめまして。楽しく使わせていただいてます。チェックボックスも併用したいのですが、機能を追加することは可能でしょうか? -- chikichiki? 2007-01-04 (木) 23:33:57
  • 面白いですね。プラグインの提供者には頭がさがります。追加要望になりますが、回答者全員の得点合計と平均が出せれば欲しいプラグイン/124を実現できそうなのですがいかがでしょうか。 -- gulay? 2007-05-05 (土) 22:49:18
  • このプラグインは、開発終了となっています。作者による改定は期待できません。 -- 2007-11-08 (木) 19:56:53
    • 情報のソースが見当たりませんが、どちらにありますか -- 2007-11-08 (木) 22:55:21
  • 選択肢の中で &mimetex(); のようなプラグインを使えるようにするのは難しいでしょうか? -- am? 2009-05-05 (火) 16:01:42
    • 正しいハックかわかりませんが、plugin_gotaku_get_questions関数の
      			$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
    • convert_html() だと1文字目に* があると見出しとして展開されたり、2文字目までが// だとコメント扱いされて文字が表示されなかったり、などブロック要素の整形ルールも適用されてしまいますよ。(「そんな選択肢、誰が使うんだよ」というツッコミは無しで・・・)
      make_link() ならインライン要素の整形ルールのみが適用されまよ。 -- 2009-05-07 (木) 13:48:11

添付ファイル: filegotaku.inc.php.5 2077件 [詳細] filegotaku.inc.php.4 1651件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-03-08 (月) 16:52:44
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2018 PukiWiki Development Team. Powered by PHP 5.6.38-0+deb8u1. HTML convert time: 0.233 sec.

OSDN