good.inc.php(オリジナル)

  • まろやかCGIさんの Good or Bad をPukiwikiに導入する。
  • コメント表示部分をformで囲まないように変更する必要があるので、pcommentの返信(reply)機能は使えなくなる。

PukiWiki上の記述例

- goodのみ &good(sandbox001);
- good+bad &goodbad(sandbox002);
- good+bad+comment &goodbadc(sandbox003);

ダウンロード

  • Good or Bad シェアウェア
  • good.inc.zip Pukiwikiでgobを使うためのプラグイン。Good or Bad管理画面では全機能有効にしておいて、CSSで押せるボタンを変える。
    • good.inc.php Goodのみ表示
    • goodbad.inc.php GoodとBad
    • goodbadc.inc.php GoodとBadとコメント
  • images パズドラ攻略Wikiで使っているボタン画像
  • gob.css

手順

  • Good or Badの「設置方法」参照して設置する
    • CORESERVERの場合 gob/ [777] 、session/ [777] にしないと動かないかも。
  • plugin/ に good.inc.php goodbad.inc.php goodbadc.inc.php をアップロード
    • これで手動でならボタンを呼び出すことができるようになる

コメント時に自動でgood.inc.phpを呼び出す

  • pcomment.inc.php
    • コメント部分をフォームタグの外に出す
      	if ($dir) {
      		return '<div>' .
      			'<p>' . $recent . ' ' . $link . '</p>' . "\n" .
      +				$comments . "\n" .
      			$form_start .
      -				$comments . "\n" .
      				$form .
      			$form_end .
      			'</div>' . "\n";
      	} else {
      		return '<div>' .
      +				$comments. "\n" .
      			$form_start .
      				$form .
      -				$comments. "\n" .
      			$form_end .
      			'<p>' . $recent . ' ' . $link . '</p>' . "\n" .
      			'</div>' . "\n";
      	}
    • コメントをする度に新しいidでボタンが表示されるようにする
      日時+ランダムな文字列+IPアドレスの一部を使い、同じ人が同じ日時にコメントしたとしてもidが被らない(はず)。
      「お名前」部分を乗っ取っているので、あまり良くないかも・・・
      // ----
      + 
      + $ip_address = $_SERVER['REMOTE_ADDR'];
      + 
      + $cip = preg_replace("/(\d+)\.(\d+)\.(\d+)\.(\d+)/","$4",$ip_address);
      + 
      + $str_md5 = substr(md5($ip_address), 0, 30);
      + 
      + $id_md5 = md5($str_md5 /*. 任意の文字列 */);
      + $id = substr(base64_encode($id_md5), 0, 3);
      + 
      + $id_display = '[id:' . $id . $cip . ']';
      + 
      + // ----
      + 
      + $good_date = substr(md5(date(YmdHis)), 0, 6);
      + 
      + define('PLUGIN_PCOMMENT_FORMAT_NAME',	'&color(#999){$name' .$id_display . '&good('. $good_date .'-'. $id . $cip .');' .'};');
      - define('PLUGIN_PCOMMENT_FORMAT_NAME',	'[[$name]]');
      

課題

  • 出力結果がclassの違いでしかないので、できればgood.inc.phpにまとめたい…。
  • リクエスト数が多すぎる
    • コメント一覧を開いただけで大量リクエストになってしまうので、下記のようにして一覧では表示されないように対策。
      - var gobObj = $('div.gob');
      + var gobObj = $('.pcomment div.gob');

コメント

コメントはありません。 コメント/plugin/good.inc.php?

コメント:

最終更新: 2016-08-22 (月) 00:52:29