-
Notifications
You must be signed in to change notification settings - Fork 0
/
dev-guide-make-filterplugin.html
83 lines (78 loc) · 3.04 KB
/
dev-guide-make-filterplugin.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Ethnamドキュメント</title>
<link href="css/style.css" media="all" rel="stylesheet" />
<link href="css/github.css" media="all" rel="stylesheet" />
</head>
<body>
<p><a href=".">目次</a></p>
<div class="blob instapaper_body">
<article class="markdown-body entry-content">
<h1>フィルタプラグインの作成</h1>
<p>ここでは、Ethna 向けの フィルタプラグインの作成方法を説明します。Ethna が持つフィルタチェイン機能については、こちらを参照して下さい。</p>
<ul>
<li>フィルタプラグインの作成
<ul>
<li>フィルタプラグインの実体 </li>
<li>フィルタプラグインを作成する </li>
<li>Ethna 2.5.0 以前 </li>
<li>処理を記述する </li>
<li>フィルタプラグインを登録する </li>
</ul></li>
</ul>
<p>| 書いた人 | mumumu | 2009-06-21 | 新規作成 |</p>
<h3>フィルタプラグインの実体</h3>
<p>フィルタプラグインはEthnaのフィルタ機能を実行するものですので、中身は実際のフィルタと変わりません。但し、プラグインですので、クラス名とファイルの置き場所は、Ethnaのプラグインの規則に従う必要があります。</p>
<h3>フィルタプラグインを作成する</h3>
<h4>Ethna 2.5.0 以前</h4>
<p>Ethna 2.5.0 より以前のバージョンでは自動生成機能はありませんので、app/Plugin/Filter/ExecutionTime.php をコピーして手動で作成して下さい。</p>
<h3>処理を記述する</h3>
<p>以下のように、4つのメソッドが定義されていますので、任意の処理を記述してください。</p>
<pre><code><?php
// vim: foldmethod=marker
/**
* [APPID]_Plugin_Filter_Hoge
*
* @author your name <yourname@example.com>
* @license http://www.opensource.org/licenses/bsd-license.php The BSD License
* @package Ethna_Plugin
*/
// {{{ [APPID]_Plugin_Filter_Hoge
/**
* Filter Plugin Class Hoge.
*
* @author yourname <yourname@example.com>
* @access public
* @package Ethna_Plugin
*/
class [APPID]_Plugin_Filter_Hoge extends Ethna_Plugin_Filter
{
function preFilter()
{
}
function preActionFilter($action_name)
{
}
function postActionFilter($action_name, $forward_name)
{
}
function postFilter()
{
}
}
// }}}
?></code></pre>
<h3>フィルタプラグインを登録する</h3>
<p>フィルタプラグインを実際に使うには、作成して実装するだけでなく、コントローラーにフィルタチェインの一部として登録する必要があります。</p>
<p>フィルタプラグインを登録するには、[Appid]_Controller の $filter メンバに登録すれば、そのプラグインがフィルタチェインのひとつとして登録されます。</p>
<pre><code>var $filter = array(
+ 'Ethna_Plugin_Filter_Hoge',
);</code></pre> </article>
</div>
<div class="site-footer">
@2015 <a href="https://twitter.com/DQNEO">DQNEO</a>
</div>
</body>
</html>