OpenPNE3プラグインの作り方#2
11 / 20 木曜日 2008
この記事は OpenPNE3.0.x のものです。現在の最新安定版では動作しない箇所が存在します。
開発チームの川原です。
寒くて風邪をひかないか心配な今日この頃です。
この記事は、
OpenPNE3プラグインの作り方#1
の続きです。
前回作成された 「plugins/opSamplePlugin/app/pc_frontend/modules/hello」
下には 「actions」と「templates」の2つのディレクトリが作られているはずです。
「actions」ディレクトリの中には、最初から「actions.class.php」が
用意されています。
中身はこうなっています。
…(省略)…
class helloActions extends sfActions
{
/**
* Executes index action
*
* @param sfRequest $request A request object
*/
public function executeIndex($request)
{
$this->forward(‘default’, ‘module’);
}
}
ここに、アクションを記していきます。
$this->forword('default','module');
となっているため、前回の 「Module “hello” created」
のページにフォワードしてしまいます。
return sfView::SUCCESS;
に置き換えてしまいましょう。
…(省略)…
class helloActions extends sfActions
{
/**
* Executes index action
*
* @param sfRequest $request A request object
*/
public function executeIndex($request)
{
return sfView::SUCCESS;
}
}
次に、テンプレートを編集します。
「templates」ディレクトリには、最初から「indexSuccess.php」が
用意されています。
executeIndex() で sfView::SUCCESS が返されると
このテンプレートを表示します。
中身は空白のファイルなので、もぞもぞと入力してしまいます。
とりあえず、
Hello world!
とベタベタに出してみようと思います。
前回のように
http://sns.example/hello
アクセスすると、こうなるはずです
このままでは、ログインしていなくても見ることができてしまいます。
そこで、「hello」ディレクトリの中に、新しく「config」ディレクトリを作成して、
「security.yml」というファイルを作成します。
中身はこのようにします。
all:
is_secure: on
credentials: SNSMember
YAMLなので、インデントにはタブでなくて半角スペース2つで。
その後、 symfony cc でキャッシュを削除してください。
そうすると、ログインした状態でないと
http://sns.example/hello
にアクセスできなくなります。
ログインしてアクセスすると、下のようにメニューまで付いたページになります。
これで、SNS中に新しいページを作ることができるようになりました。
次回は、プラグイン独自のデータベースモデルを追加してみます。