PHPで作るMTプラグイン

PHPで作るMTプラグイン

GWなかばに調べてみようかな、と書きましたMovable Type(MT)のPHPプラグイン。
習作として「投稿数ランキングプラグイン」を作って社内で利用しています。

完成までの流れを何回かにわけてご紹介したいと思います。

まず最初に目を通したのが、MTのマニュアル。
ダイナミック・パブリッシングの後半に「PHPプラグインAPI」という箇所があります。そこに独自プラグイン作成の基礎があるので熟読。

ざっとわかったところで、実際にどのように作られているのかを確認。
これらのスクリプトは下記のディレクトリに保存されています(MTマニュアルより引用)。

mt/php/
     lib/      MT標準のタグとモジュール
     extlib/   サードパーティ・パッケージ(ezSQLとSmarty)
     plugins/  サードパーティMT/PHPプラグイン

lib/の中を覗くと、block.MTEntries.phpやfunction.MTBlogName.phpなどたくさんのファイルがあります。
ひとつひとつにファイル名に対応したタグの処理が記述されています。これらの内容を理解することで、作りたいプラグインの設計が進むかと思います。

ところで、先ほどのオンラインマニュアルには載っていなかったのが、データベースからのデータ取得方法。
ソースコードを読むと、$ctx->mt->db->fetch_entries($args) などの記述がありました。
これらのメソッドはlib/ディレクトリ内にある mtdb_base.php に記述されています。これらを使ってデータベースへのアクセスが可能になります。

指定条件のエントリーデータを取得する、コメントデータを取得する、など基本的なデータ取得はここにあるメソッドを呼ぶだけで可能になります。
また、get_resultsメソッドを使えば、SQLクエリを自由に作成し、希望通りのデータを取得することが可能です。

現在利用中のプラグインでは、このget_resultsメソッドを使ってデータを取得しているのですが(mtdb_base.php内のメソッドではうまく取得できないと思ってました)、これを書きながら読んでいたfetch_entriesメソッドでできることが判明!・・・早速改訂しなくては。
てなわけで、この場を借りて作り方のまとめをしつつ、プラグインの公開も目指していこうと思います。(次回へ続く)

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ