-オープンソースのSNSエンジン OpenPNEプロジェクト-

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」
のページにフォワードしてしまいます。
ws000005.PNG

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
アクセスすると、こうなるはずです

ws000007.PNG

このままでは、ログインしていなくても見ることができてしまいます。
そこで、「hello」ディレクトリの中に、新しく「config」ディレクトリを作成して、
「security.yml」というファイルを作成します。

中身はこのようにします。

all:
  is_secure: on
  credentials: SNSMember

YAMLなので、インデントにはタブでなくて半角スペース2つで。
その後、 symfony cc でキャッシュを削除してください

そうすると、ログインした状態でないと
http://sns.example/hello
にアクセスできなくなります。

ログインしてアクセスすると、下のようにメニューまで付いたページになります。
ws000008.PNG

これで、SNS中に新しいページを作ることができるようになりました。

次回は、プラグイン独自のデータベースモデルを追加してみます。

ページの先頭に戻る