PukiWikiで5段階評価を付けるプラグインを作成しました


投稿日:2016年5月5日
  • 0
  • 0



前回紹介した5段階評価プラグインの改良版

raty_v02

以前「5段階評価プラグインを通して学ぶPukiWikiのプラグインを作成する方法」というページで、PukiWikiのプラグイン作成方法を紹介しました。
その中で5段階評価のプラグインを掲載しました。

嬉しいことに利用していただいている方もいるようで、いくつか要望を頂いたので、自分が欲しい機能も加えて5段階評価プラグインを作りなおしました。

2016/5/9 v0.3 連投禁止用のクッキー処理を修正
2017/8/5 v0.3.1 カスタムスキン利用時に正しく動作しないバグを修正
2018/2/3 v0.4 複数のページを表示するプラグインで評価した際にページが削除される不具合を修正
2018/6/1 v0.4.1 ファイルの修正
2018/6/1 v0.4.2 1から5以外の引数を指定した場合エラー表示
2018/6/1 v0.5 インライン型に対応
2018/6/1 v0.6 PHP7.3に対応(NAN表示の修正)

ratyプラグインのダウンロードと準備

まずはこちらからダウンロードしてください。
raty 0.6
解凍したら、それぞれのファイルを指定のフォルダに保存してください。

image ─star-half.png
      ├star-off.png
      └star-on.png

plugin─raty.inc.php

skin  ─raty.css
      └jquery.raty.js

imageフォルダに入っている3つのスター画像はPukiWikiのimageフォルダへコピー。
同じようにpluginフォルダに入っている「raty.inc.php」はPukiWikiのpluginフォルダへ。
skinフォルダに入っている「raty.css」と「jquery.raty.js」はskinフォルダへコピーしてください。

デザインをカスタマイズしたい場合は画像ファイルを差し替えたり「raty.css」を調整してください。

以上で準備は完了です。

jQueryをまだ導入していないサイトの場合は「raty.inc.php」の38行目にあるコメントアウトを外してください。

// jQueryを使っていない場合はここを有効にする
// $head_tags[] = "<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js'></script>";

以下のように変更。

// jQueryを使っていない場合はここを有効にする
$head_tags[] = "<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js'></script>";

個人的にはjQueryはPukiWikiの「skin/pukiwiki.skin.php」で読み込んだほうが良いと思います。(プラグイン単位で追加すると、重複したり読み込み順の関係でバグが出る可能性が増えるため)


ratyプラグインの使い方

このプラグインはブロック型です。

複数回5段階評価を加えるタイプ

これが基本形です。以下のように記述して利用します。

#raty()

すると以下のような5段階評価用の画像が表示されます。

raty_v02_01

これは何度でも評価を追加できるタイプです。複数の評価を加えると以下のようになります。

raty_v02_02

PukiWiki上では以下のように引数を追加しています。

#raty([5,4,4,2])

ちなみにCookieを利用して同一ユーザーの連投は禁止しています。
連投を行うと「評価の連投は禁止しています。」と表示されます。
連投の禁止は3日間有効です。

一度のみ評価するタイプ

設置してみて意外に多いのが、人の評価に対し自分の評価を追加する行為
そのレビューに対する評価なのか、商品に対する評価なのかわかりませんが、使い方を勘違いしてクリックしてしまう人が多く見られました。
注意書きを追加したり、レビューに対する評価は別に追加したりもしましたが、残念ながら効果は見られませんでした。

そんな場合の対策として、1度評価すると、再評価ができないタイプを作りました。

1度のみ評価するタイプを使う場合は、第1引数に「once」を指定します。

#raty([once])

1度評価を加えると、星の画像をクリックしても再評価しません。
評価を加えるとPukiWiki上では以下のようになります。

#raty([once,5])

1度評価すると、再評価はできないので、自分で固定評価を付けたい時も使えます。

ページ内の5段階評価を全てカウントするタイプ

これは個別の評価を全てカウントし、全体の平均を出すタイプです。
ページ内の全てのカウントを集計します。

引数に「all」を指定すると、全体の平均を表示します。

#raty([all])

すると以下のように表示されます。

raty_v02_03

例として以下のように記述した場合

複数回評価するタイプ
#raty([5,4,4,2])

一度のみ評価するタイプ
#raty([once,5])

全体の平均を出すタイプ
#raty([all])

以下のようになります。

raty_v02_04

複数回評価するタイプの1回分の評価も、1度しか評価しないタイプの評価も、どちらも同じ1回としてカウントしています。


使用上の注意

引数を入れるためのカッコ()を省略した形では動作しません。以下はNGです。

#raty

また引数が無い状態でブランケット[]を付けると動作しません。

#raty([]) // これはNG
#raty([3,5]) // 引数がある場合は[]付きでOK

#raty(once) // 引数があるのに[]がないのはNG
#raty([once]) // 引数がある場合は[]を付ける

インライン型に対応しました。
以下のように記述してください。

&raty();

以上です。
ライセンスはPukiWikiと同じです。
自由に利用してください。

使用感やバグの報告などをいただけると嬉しいです。


現在のページを共有する



現在のページに関連する記事

PukiWikiで5段階評価を付けるプラグインを作成しました 5段階評価を付けることができるjQuery Ratyプラグインの使い方
PukiWikiで5段階評価を付けるプラグインを作成しました 目に楽しい便利な機能!jQueryでページトップヘスムーススクロール
PukiWikiで5段階評価を付けるプラグインを作成しました 5段階評価プラグインを通して学ぶPukiWikiのプラグインを作成する方法
PukiWikiで表をソートしたい PukiWikiで表をソートしたい
PukiWikiで5段階評価を付けるプラグインを作成しました jQueryでクロスサイトのiframe広告のクリックをカウントする方法
PukiWikiで5段階評価を付けるプラグインを作成しました Google Feed APIの代替手段としてjQueryだけでRSSを表示する方法
PukiWikiで5段階評価を付けるプラグインを作成しました PukiWikiをビジュアルエディタ(TinyMCE)で編集できるプラグインを作成

おすすめの記事

初心者でも安全なLAMP環境を構築する方法を解説

初心者でも安全なLAMP環境を構築する方法を解説

Excelでセルとセルの間をダブルクリックすると移動する機能を停止する方法

Excelでセルとセルの間をダブルクリックすると移動する機能を停…

Apacheのmod_rewriteモジュールの使い方を徹底的に解説

Apacheのmod_rewriteモジュールの使い方を徹底的に解説

エンティティとデコード用プラグイン「Entity Decode Button」を作成しました

エンティティとデコード用プラグイン「Entity Decode Button」…

DNS Amp攻撃の解説と、踏み台にされないためのBIND DNSの設定

DNS Amp攻撃の解説と、踏み台にされないためのBIND DNSの設定

今さら聞けない、変数や関数の命名規則と、まず覚えるべき英単語200

今さら聞けない、変数や関数の命名規則と、まず覚えるべき英単…

標準のアンインストーラーで消えないソフトを徹底的に削除する方法

標準のアンインストーラーで消えないソフトを徹底的に削除する…

Web制作の仕組みを根底から覆すかもしれないWix ADIの人工知能

Web制作の仕組みを根底から覆すかもしれないWix ADIの人工知能


いただいたコメントなど

  1. しょう のコメント:

    http://parun.syou-neko.net/
    ここでPukiWikiで5段階評価を設定しています。
    しかし、日記プログラムの[pulog_editor]に組み込んだ後、
    calendar_viewerでトップページに表示させると、
    最新の記事は評価できるのですが、2番目の記事から、
    評価しようとすると記事が削除されてしまうのです。
    詳細は上記URLを見られると分かります。
    (削除しても差分で戻すことは可能)

    具体的にプログラムを添付してみました。
    http://parun.syou-neko.net/?plugin=attach&pcmd=open&file=isshiki.zip&refer=%E3%83%91%E3%83%AB%E3%82%8B%E3%82%93%E3%81%AE%E9%83%A8%E5%B1%8B
    上記でそのプログラムをダウンロードできます。
    上記のダウンロードページは下記からも行けます。
    http://parun.syou-neko.net/?plugin=attach&pcmd=list&refer=%E3%83%91%E3%83%AB%E3%82%8B%E3%82%93%E3%81%AE%E9%83%A8%E5%B1%8B

    なかなか消えないようにできません。確認していただくことはできますでしょうか。

    • oxy のコメント:

      ご利用ありがとうございます。
      ご提示いただいた環境でテストしたところ、ページが削除されてしまう現象を確認しました。
      当該の問題を修正したバージョン0.4をアップロードしたのでご利用ください。

  2. pess のコメント:

    表組みの中に組み込みたいのですが、インライン型の作成は予定していませんか?

    • oxy のコメント:

      バージョン0.5でインライン型に対応しました。
      ざっくりコピーして作っただけなのでなにか不具合があるかもしれません。
      ご報告いただければ対応します。

  3. wikiユーザ のコメント:

    現在のダウンロードリンクに含まれているzipファイルは raty.inc.phpのみが入っているようです。
    また、評価値をパーシングが問題があるようです。具体的、10を渡すと 1,0として扱われるように見えます。

    • oxy のコメント:

      ご指摘ありがとうございます。
      本日修正したファイルをアップロードしました。
      評価の扱いに関してですが、5段階評価プラグインなので、1から5までの値を入力してください。

コメントを残す

コメントは認証制のため、すぐには反映されません。

プログラミングに関する質問は「日本語でプログラミングの悩みを解決するQ&Aサイト sukegra」をご利用ください。