gotaku.inc.php

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

概要

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

説明

  • 欲しいプラグイン/49?の要望に対応。
  • 選択肢ごとに配点。
  • 得点でランキング表示できる。
  • IPアドレスチェック機能あり。
  • ここで実験しています→「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,_ip,_date,_rank :
       形式にitemを付けると[<パラメータ>]での置き換えに利用される。 
       オプションにlistを付けると、ランキング表示で使用される。
    _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||
    |_total|満点|item|||
    |_ip|IPアドレス|item|||
    |_date|日付|item|||
    |_rank|順位|item|list||
    • 分離子が「&nbsp;/&nbsp;」だと/を挟んで横に選択肢が並ぶが、例えば、「&br;」にすると選択肢が縦に並ぶ。

【表示例】

parameters

項目名見出し形式オプションデフォルト値
_marking採点表示booleanTRUE
_ipcheckIPチェックbooleanFALSE
_separator分離子 / 
_name氏名itemlist名無しさん
_score得点itemlist
_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):[_score]点 COLOR(black):/ [_total]点|
  • (4)得点ログの保存形式の例(/list)
    |CENTER:||RIGHT:|||c
    |~[_rank]|~[_name]|~[_score]|~[_date]|~[_ip]|h
    |[_rank]|[_name]|[_score]|[_date]|[_ip]|
  • (5)得点ログの例
    順位氏名得点日付IPアドレス
    1sha812003-08-31 (日) 09:49:50xxx.xxx.xxx.xxx
    1sha812003-08-31 (日) 09:51:17xxx.xxx.xxx.xxx
    3sha732003-08-30 (土) 17:53:09xxx.xxx.xxx.xxx
  • #gotaku(<設定名>,disp)の表示例
    順位氏名得点
    1sha81
    1sha81
    3sha73

ダウンロード

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

  • 「&ref(): ERROR: File not found: "gotaku.inc.php.3" at page "バックアップ/gotaku.inc.php";」←提供中
    リビジョン内容
    v0.3debug/reimy?さんの指摘に対応。他に気になった点の修正
    v0.2debug/名前のデフォルト値が入らない
    v0.1新規作成。debug

アンケート

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

コメント

  • 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]カラムを削除したので、そのときに先頭行も削除しておくのを忘れていたようです。

##comment


トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-06-07 (日) 11:55:50 (2060d)