• カテゴリー 『 freo 』 の記事

概要の説明はこちら
freoの更新ping プラグイン(機能拡張版)を公開

Freo本家のプラグインのページにならって、記述してみます。

ダウンロード

以下のリンクからプラグインをダウンロードできます。
Ver 1.0.0.2 ダウンロード
更新履歴(2013/11/21 更新)
ver 1.0.0.2 2013/11/21 確認画面から戻るボタンで値を保持するよう変更

導入方法
準備

オリジナルの休日のバイク旅行記さんのサイトと同様に、XML_RPC をインストールします。
このあたり、環境によってまったく違うと思うので、わからない場合は
ネットで”freo ping”あたりで検索してみてください。
参考までにうちは、自前のFreeBSDマシンですので、pearはportsで
インストールしました。

# cd /usr/ports/devel/pear
# make
# make install
# pear install XML_RPC

ファイルのアップロード

sendping/ 内の configs/ と libs/ と templates/ files/ を、freo設置ディレクトリ内にアスキーモードで上書きアップロードします。

パーミッションの設定

対象 パーミッション
configs/plugins/sendping.ini 606 に設定
files/plugins/sendping.log 606 に設定
テンプレートの編集

一例ですが、templates/internals/admin/entry_form.htmlの2箇所に以下のコードを追加してください
(追加用のコードは、templates/internals/admin/entry_form_add.htmlにあります)

107行目あたりにある
 <p>
  <input type="submit" name="preview" value="確認する" />
  <input type="submit" value="登録する" />
 </p>
の下に追加用コード
 <dl>
  <dt>更新ping</dt>
   <dd>
     <select name="plugin_sendping[enable]">
       <option value="Off" {if $plugin_sendping.enable == Off} selected="selected"{/if}>送信しない</option>
       <option value="On"  {if $plugin_sendping.enable == On}  selected="selected"{/if}>送信する</option>
     </select>
   </dd>
 </dl>
を追加
378行目あたりにある
  <legend>エントリー削除フォーム</legend>
  <input type="hidden" name="freo[token]" value="{$token}" />
  <input type="hidden" name="id" value="{$freo.query.id}" />
  <p><input type="submit" value="削除する" /></p>
の下に追加用コード
  <dl>
   <dt>更新ping</dt>
    <dd>
     <select name="plugin_sendping[enable]">
       <option value="Off" {if $plugin_sendping.enable == Off} selected="selected"{/if}>送信しない</option>
       <option value="On"  {if $plugin_sendping.enable == On}  selected="selected"{/if}>送信する</option>
     </select>
    </dd>
  </dl>
を追加
完了

管理者ページにログイン後、管理メニューから「システム」→「設定管理」→「プラグインの設定」→「PING送信」を選択すると、各種設定を行えます。

設定

「送信」
エントリー登録画面での選択ボックスの初期値を決定します。
エントリー管理画面からの削除のように選択ボックスが存在しない箇所では、この設定で動作が決まります。
「Server URL」
更新pingを受け付けるサーバのリストを指定してください。
改行区切りでいくつでも指定できますが、あまり多すぎるとエントリーの登録や更新に時間がかかるので、多くても10個くらいがよろしいかと。
サーバーのURLはネットで検索すると見つかります。
サーバーを登録したら記事を編集して、pingを送信後、ログを確認してください。
エラーになるサーバーはリストから外した方がいいです。

機能
pingの送信

エントリーの登録や修正、削除において、登録ボタンの下の更新pingの選択をしてください。
「送信する」を選択した場合は、設定されたサーバに更新pingを送信します。

ログの出力

送信が失敗したサーバについては、files/plugins/sendping.log に、URLが追記されます。

削除方法

このプラグインは、以下の手順で削除できます。

ファイルの編集

テンプレートに追加したコードを削除します。

ファイルの削除

以下のファイルを削除します。
configs/plugins/sendping.ini
libs/freo/plugins/begin.sendping.php
libs/freo/plugins/config.sendping.php
libs/freo/plugins/end.sendping.php
files/plugins/sendping.log

免責事項

このプログラムを利用して生じた如何なる損害にも、管理者はその責を負いません。
サポートもできません。

サイトのブログのお話。
以前使っていたブログのWebDiaryProにあった更新pingの送信機能がfreoには実装されてません。
そもそも、更新pingについての効果はいまいちわからないんだけど、実際に更新pingをうってみると、確かにその後、短期間にクロールされることはログからわかる。
検索エンジンの最適化で、以前ほどは重要性はなくなったとはいえ、何らかの効果はあるんだろうなぁ~
ということでfreoでも何とかならないか。

本家のプラグインにはないのですが、厚意で公開されている方がいらっしゃいました。
こちらのサイト(休日のバイク旅行記)
さっそく、ありがたく使わせていただきましたm(__)m

このプラグインで更新Pingがうてるようになったのですが、基本的な機能のみ。
もちろん、基本機能のみでも十分使えるのですが、ちょっと気がかりなことも。
エントリのちょっとした再編集でも毎回ping送信するので、登録や修正にも時間かかるし、ping多くなりすぎでspamになってしまうかも。
WebDiaryProでは登録や修正のたびに、pingの有効、無効を選択できたので、そういう機能がほしいなぁ~。
あと、サーバーの登録がコードに直書きなので、変更がちょっと面倒。

ちょっと探した限りではこのようなものは見つからなかったので、自力で機能アップしてみました。

こんな感じの機能追加

  • エントリーの登録、削除において、Pingの送信有効/無効が選択可能
  • pingサーバーの登録を、システム->設定管理から入力可能に
  • エラー応答の場合はログに記録
  • サイトのタイトルとURLを自動的に取得

エントリー登録画面
20131011105708.jpg


設定画面
20131011105815.jpg

正直、PHPは知らないし、freoのプラグインの仕様も本家の説明を軽く読んだ程度なのですが、とりあえず、ちゃんと動作はしてる様子。

なので、休日のバイク旅行記さんに感謝もこめて、せっかくですので公開します。
サポートとかはできないけど、よろしければお試しくださいね。

具体的なダウンロードと導入はこちらから