「WordPressで学ぶPHP(4)通信編」を発売しました。
本書は、「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造編」「WordPressで学ぶPHP(3)関数編」の続編にあたり、Webブラウザとサーバー(PHP)との通信と、PHPから他のサーバーに通信することについて解説します。
ダイナミック・パブリッシング&DynamicMTML用のプラグイン(ファンクションタグ)のひな形(その2)
昨日に続き、ダイナミック・パブリッシング&DynamicMTML用のプラグイン(ファンクションタグ)のひな形の作り方を解説します。
1.Perlのプラグインのコード
Perlのプラグインのコードは、以下のような書き方になります。
package モジュール名; use strict; sub サブルーチン名 { my ($ctx, $args) = @_; テンプレートタグの値を求める処理 return テンプレートタグの値; } 1;
モジュール名とサブルーチン名は、config.yamlファイルの「function」の部分で定義した名前に合わせます。
そして、サブルーチンの中で、テンプレートタグの値を求める処理を行い、return文でその結果を戻り値として返します。
例えば、昨日のconfig.yamlのように、以下の条件でテンプレートタグを作るとします。
テンプレートタグ名 | MTHelloMTWorld |
---|---|
モジュール名 | HelloMTWorld::Plugin |
サブルーチン名 | hello_mt_world |
テンプレートタグの値 | 「Hello MT World.」の文字列 |
この場合だと、Perlのプラグインのコードは以下のようになります。
package HelloMTWorld::Plugin; use strict; sub hello_mt_world { my ($ctx, $args) = @_; return 'Hello MT World.'; } 1;
また、モジュールのファイルは、libディレクトリの中に入れます。
モジュール名の一番最後の「::」のあとが、モジュールのファイル名になります。ファイルの拡張子は「.pm」です。
また、ファイル名の前の部分がディレクトリ名になります。
今取り上げている例だと、モジュール名がHelloMTWorld::Pluginです。
したがって、libディレクトリの中にHelloMTWorldディレクトリを作り、その中にPlugin.pmというファイル名で保存します。
2.PHPのプラグインのコード
PHPのプラグインのコードは、以下のような書き方になります。
<?php function smarty_function_テンプレートタグ名($args, &$ctx) { テンプレートタグの値を求める処理 return テンプレートタグの値; } ?>
「テンプレートタグ名」の部分に、テンプレートタグ名をすべて小文字にした名前を入れます。
また、テンプレートタグ名の先頭の「mt」も必要です。
たとえば、今取り上げている例だと、「MTHelloMTWorld」というテンプレートタグを追加して、「Hello MT World.」の文字列を出力するようにしています。
この場合だと、PHPのプラグインのコードは以下のようになります。
<?php function smarty_function_mthellomtworld ($args, &$ctx) { return 'Hello MT World.'; } ?>
作成したPHPのファイルには、「function.テンプレートタグ名.php」という名前をつけて、プラグインのphpディレクトリに保存します。
テンプレートタグ名はすべて小文字で書き、また先頭の「mt」も付けます。
今取り上げている例だと、ファイル名を「function.mthellomtworld.php」にします。
3.サンプルファイル
ここまでで紹介したひな形のファイルは、こちらからダウンロードすることができます。