WordPressの投票プラグインdemocracyをちょっと改造してみる。

うちでリクエスト受付用に設置しているフォームですが、
これはdemocracyというWordPressのプラグインです。

Democracy AJAX Poll at Jalenack

インストール後にウィジェットとして追加することでサイドバーに設置したり、
あるいはページに関数書いて設置したりできます。
AJAXなのでシームレスに結果を見たり投票したりできて便利なのですが、
管理画面が英語だったり、項目追加の際の重複チェックが無かったりするので、
ちょこっと改造してみました。

↓やったこと

  1. 日本語化
  2. 項目追加機能の強化

1. democracyを日本語化する

democracyのソースファイルは一応そのままでもある程度国際化されてるので、
あとは日本語翻訳ファイルを用意すればよい…はずでしたが、
load_plugin_textdomainが宣言されてないのでdemocracy.phpに追記が必要でした。

democracy/democracy.php

10行目
+ if(function_exists('load_plugin_textdomain'))
  load_plugin_textdomain('democracy','wp-content/plugins/democracy');

まずこれを追記します。
次に言語ファイルをdemocracyのディレクトリに設置します。
moファイルとpoファイルをここに置いておきますのでDLしてください。

≫ democracy 日本語化ファイル

解凍してdemocracyディレクトリへアップロードすればOKです。

※バグかもですが、ウィジェットとして使用時に「結果を見る」などで表示を切り替えると
 日本語化されてる箇所が英語に戻ってしまったりするので、class.phpファイルの該当箇所を
 直接日本語に書き換えてしまうとよいかもしれません。

2. 項目追加機能の強化

項目を自由に追加できる設定のとき、全く同じ文言でも追加できてしまったりするので
その場合は既にある方へ投票扱いにしたかったのと、NGワード機能が欲しかったので追加しました。

democracy/class.php

258行目
+ if (!$answer) return false;

297行目
- $wpdb->query("INSERT INTO {$table_prefix}democracyA VALUES ('', {$this->id}, '{$new_answer}', 0, 1)");    
- return $wpdb->insert_id;
+
$polled = $wpdb->get_row("SELECT * FROM `wp_democracyA` WHERE answer = '".$new_answer."'");
$ng_list = @fopen(get_option('siteurl').'/wp-content/plugins/democracy/ng_list.csv',"r");
if($ng_list){
  while($d = fgets($ng_list)){
    $d = split(",",$d);
    $mcnt = 0;
    foreach($d as $t){
      $nans = strtoupper(mb_convert_kana($new_answer,"KVaC"));
      $t = strtoupper(mb_convert_kana(trim($t),"KVaC"));
      if(ereg($t,$nans)){
        $mcnt++;
      }
    }
    if($mcnt==count($d)){$ng_flag=true;}
  }
}
if($ng_flag){
  echo '<div style="color:#FF0000;text-align:center;">'.$new_answer.'は投票できません。</div>';
  return false;
}elseif($new_answer!=$polled->answer){
  $wpdb->query("INSERT INTO {$table_prefix}democracyA VALUES ('', {$this->id}, '{$new_answer}', 0, 1)");
  return $wpdb->insert_id;
}else{
  return $polled->aid;
}

NGワード設定は、democracyのディレクトリにng_list.csvというファイル名で
CSVファイルを作成して設定します。
ng_list.csvのフォーマットは以下になります。
文字コードはWordPressの設定に合わせてください。
(文字コードチェックはしてないです)

democracy/ng_list.csv

いぬ
とり
ねこ,かわいい
neko2
WANKO

NGワードに指定したい文字列を一行ずつ書いていきます。
これらの文字列を含む単語は、追加できなくなります。
2単語以上を含んだ時にNGにしたい場合は、同じ行にカンマ(,)で区切って指定します。
例えば上の指定の場合、以下のようになります。

  • いぬ → ×
  • イヌ → ×
  • わんこ → 
  • とり → ×
  • トリ → ×
  • こいぬ → ×
  • にとり → ×
  • ねこ → 
  • かわいい → 
  • ねこはかわいい → ×
  • Neko2 → ×
  • wanko → ×

どうしても追加して欲しくない単語がある場合は
これで制限することが出来ます。
ひらがな・カタカナや英字大小の区別が付いてますので、
逐次追加してください。

追記:ひらがな、カタカナ(全角半角)は区別しないようにしました。
   英数字も全角半角区別しません。英字の大小も区別しません。

なお、ng_list.csvは用意しなくても問題なく動作します。
NGワードを指定したい時だけ作成すればよいです。

以上、備忘録も兼ねて記録しておくことにしました。

そういえばうちもブログになったので

ROの公式トラックバックキャンペーンとかに参加できるよね!!(*’ω’*)
ちょうどキャンペーンが始まるらしいからやってみようかしらかしら!!c(‘ω’c三っ’ω’)っ

公式ブログで応援キャンペーン|Episode8.0 Ash Vacuum アップデート記念キャンペーン|ラグナロクオンライン

応募規約
> 性的表現やその他不適切な内容を掲載していないこと

       ⊂ ⊂ヽ、  /)/)
          c、   `っ(  ヽ
        (   v)c、  `っ
          V''V  (   v)  / ̄`⊃
               V''V   |  ⊃
                   (   v)  ハ,,ハ
                     V''V  (・ω・ )
                          ⊂⊂ ヽ
                           >   )
                          (/(/
                                 <⌒/ヽ-、___
                               /<_/____/ 

一応隠しているとはいえ、ねえ…。(゚ω゚n
ところで「あの幼女」は描いても大丈夫なんでしょうか。

抱き枕本体(160cm×45cm)が5250円、抱き枕カバーが10500円(各税込み)が販売の相場ぽい。
抱き枕のカバーの値段は9000円~12000円程度っすねぇ
涼子ねえの抱き枕は1万円くらいだった

うわわわそんなにするものなのですか!!Σ(n゚ω゚`)

抱き枕を常用してる当方としましては!
サイズは160*50が好まれるサイズで同人で出される方は
素材により変わりますが1万~1万5千位が相場です。
ところでうなさま抱き枕はまだですか!

この上うなさままで抱き枕になったらきっと大変なことになってしまう!!
しんじゃう!!

うな様とたつは様の抱き枕とな(斬首)

うなたちゅ添い寝シーツですねわかりました。

うなさまが、さげぽん票のダブルスコアどころかトリプルスコアでぶっちぎってる(゚ω゚)!?
ぁ、あと四女の抱き枕を買いに行きたいんですけど予約できますか?

なんか勢い止まらないですねなにこれ。
予約はありません!!

>サイズ的に残念なことに  大丈夫。手のひらサイズで作ってねちねち愛でるから!⊂(^ω^)⊃

手のひらサイズ…!そういうのもあるのか…!

WIZ先輩抱き枕は・・・ゴクリ

誰得!!!(n゚ω゚`)

何故かGvで同盟ギルドからも
「踏んでください」とか「1000票超えおめ」とか言われ始めました。
わたしはこれからどこへ・・・
byあやなっぽい何か

笑えばいいと思うよ。(タイムリーなネタで)

うなのつれづれ。 | フンデレラとか言われました。私はこれから何処へ
>あっ・・・はい・・・がんばります!なきません!殺るまでは!

(((((;゚д゚)))))

ちなみに抱き枕のサイズって45cm×160cmが一般的らしいですね。

なんかググったらそんなことが書いてありました。(・ω・)
昨日の絵は裏表並べてあるので、原寸は90cm×160cmです。
解像度は100dpiにしないとメモリの限界で描けなかったよ…!!

抱き枕を作る人はみんなあんなごっついサイズで描いてるのかー
すごいなーと思ってぐりぐり描いていました。
いつもより大きいから線画に手間取りました…。(・ω・)

はちま起稿 – 『ロロナのアトリエ』のロロナとベッドを共にする変態が現れる
なんということを。

えっ…作らないんですか?

えっ

もうあっちの方向に爆進してますねっ

でも作らないですよ。

(*’-‘)つい魔が差してうなさまに踏んでください!って叫んでしまったら、1001票目でした。
うなさまおめでとうございます!1k突破です・・・!
そしてもう少しでコミケ初参加&抱き枕初購入をうっかり決意してしまうところだったじゃないですかっΣ(’-‘;三;’-‘)
えぇと・・・よろしくお願いします。<?

作りませんよ!!(・ω・)

抱き枕ごちそうさま!今日も私のしましまフォルダ(宝物殿)に宝物が一つ…!
なお、買いに行きますのでよろしくww

売りませんよ!!(・ω・)

けしからん抱き枕!!!111
予約フォームはどこですか
個人的にはスカートを押さえる手を前に持ってきて手で隠す感じにしてぱんつをもっときわどく(ゲフンゲフン

予約フォームは永遠にお待ちください!

さぁさぁ、金と口座の準備もできたしぱんつも脱いだぞ。
Hurry!Hurry!Hurry!

ぱんつは穿くべき。

先生なら必ず抱き枕にしてくれる……期待して全裸で(ry

服は着るべき。

抱き枕は少数作るだけじゃ採算が取れないから100くらいは予約入らないと難しいらしいですね。
というわけで1つ予約お願いします。

他のグッズなどに比べて単価も高いですからね。
在庫出ても困るし…!

それを つくらないなんて とんでもない!

わたしのぼうけんは ここで おわってしまった。

なんという強気な抱き枕・・・ハァハァ どこに行けば買えますか?

非売品です。⊂(^ω^)⊃

本気でほしがる人がいそうー

お気持ちは大変嬉しゅうございます。(*’ω’*)

これはすごくいいよんじょですね・・・
ところで値段が書いてないようなんですが、
諭吉三人でたりますか?(´ω`*)

そういえば値段てどのくらいを設定するものなのか知らないや!!(・ω・)
ロットによるんだろうけど、三千円ぐらいなのかしら。

最近、しましま先生本気ですね|・ω・)ごちそうさまでした

夏が近いからかな!!!
いえ別に何もしないんですけど。

個人で作って愉しむのはOKですか?(wktk
これは、画像をもとに抱き枕を自作してくださいということですか!
ううん よくわからないけど きっとそう!

サイトに載せてるサイズで作ったら多分かなり残念なことになりますよ!!(n゚ω゚`)

やったー夏コミ用のグッズができたよーまで読んだ
そのあとに何か続いてたりとかない 絶対ない ないったらない

ということは絵も見てないのですね…!

表情を見ると何というツンデレですね(*’ω’*)
これはいい昼の踏んでれと夜のでれでれ抱き枕ですね
こんなのがでたら りあるになつこみいって かうしかないじゃないか!
コマンドで4女がデレた!!ご馳走様でした

抱き枕は表でツン裏でデレるという作法があると聞きまして。

この表とツンツン具合と裏の恥じらいっぷり+脱げ方のバランスが
かの黄金比がひれ伏して踏んでくださいと懇願するほどの絶妙っぷりッ!!!
しましま先生はまさに錬 金 術 師 (◆的な意味で)

変化具合もポイントですよね!ヽ^シ’ω’)ノシ

シーツをクシャってしてる方もそうだが反対の手も良いお仕事してるよね
良い子良い子しないとだよね (・ω・)

いじらしい手つきというものを考えてみました!!(*’ω’*)

ぱんつの下がり具合が・・・・・・いいぞもっとやれ

最初は下がってなかったんですが、なんか降りてきたのでつい。

すごく、ほしいです。
ぜひアサ子で!

シリーズ化しろと仰いますか…ッ!!(・ω・)

さ げ ぽ ん抱き枕の販売はいつでしょうか?

な い よ !!

しましま先生のエチ絵、正直好きですけど、最近多すぎると思います。
たまにはあってもいいとはおもいますけど・・・。
私は、先生の絵、健全絵のほうが好きかなー。

描かないなら描かないで要求されるのですが、
よく考えたら二週連続でしたね!
そろそろまたおとなしくしようとおもいます。(・ω・)

なんというツンエロ…そういえばじゃんけん全勝してなかったぁぁぁちょっと攻略してくる。しっかし今から四女がこれで追い上げをしても四女が勝つのは難しいと思います。

たしかにそれはそうかも!(・ω・)

もう、うなさまがさげぽん踏めばいいと思うよ思うよ。

奇跡のコラボレーションですね!(・ω・)

ちょっと可哀想になってきたんでさげぽんに一票入れときますね

さげぽんもがんばっています…!

「ゆりりん 3票」という途中経過がある。君はこれを見て
泣いてもいいし泣かなくてもいい。

(;ω;)ブワ

>腕の絶対領域
我らが東の方の巫女達をお忘れではあるまいな?  ハァハァ

↓れいむかわいい。
キタ━━━(゚∀゚)━━━!!!! ねんどろいど東方シリーズ「ねんどろいど 博麗霊夢」を初公開!|フィギュアメーカー・グッドスマイルカンパニー勤務 『ミカタンブログ -松戸駅から走って1分-』

ロロナのくーちゃんが4女っぽくて可愛すぎて生きてるのが辛い

くーちゃんも可愛いですね!生きるのがつらい!!