ホーム > 日記 > symfonyのsfApplyPlugin

symfonyのsfApplyPlugin

sfGuardPlugin依存のユーザー登録画面プラグイン
http://www.symfony-project.org/plugins/sfApplyPlugin

できること

  • apply
    1. ユーザー登録画面、ユーザー名、パスワード、メールアドレス入力
    2. 登録完了画面のURLを送信する
  • comfirm
    1. 登録完了画面、ユーザーが利用可能となる
    2. ログイン状態になる
  • reset-request
    1. ユーザー名を入力することにより登録しているメールアドレスにパスワード変更画面のURLを送信する
  • reset
    1. 新しいパスワードを入力することによりパスワードが変更される
    2. ログイン状態になる
  • settings
    1. フルネームの変更(ユーザーID、メールアドレスは変更できない)
    2. パスワード変更は上記のreset-requestを利用

利用するには?

前準備

sfGuardPluginをインストールし動作するように設定しておく

インストール

./symfony plugin-install http://plugins.symfony-project.org/sfApplyPlugin

設定

  • データベースを作成するため「config/scheme.yml」に以下を追加
    • プラグインページのymlはパースエラーしてるので注意
      propel:
        sf_guard_user_profile:
          _attributes:
            phpName: sfGuardUserProfile
          user_id:
            type: integer
            foreignTable: sf_guard_user
            foreignReference: id
            required: true
            onDelete: cascade
          email:
            type: varchar(80)
            index: yes
          fullname:
            type: varchar(80)
          validate:
            type: varchar(17)
            index: yes
      
  • DBの作成、modelの作成をする
    ./symfony propel-build-all
  • ルーティングの設定のため「apps/{app}/config/routing.yml」に以下を追加
    • sfGuardPluginの”forgot your password?”のリンクを/reset-requestにします
      apply:
        url:  /apply
        param: { module: sfApply, action: apply }
      
      reset:
        url: /reset
        param: { module: sfApply, action: reset }
      
      resetRequest:
        url: /reset-request
        param: { module: sfApply, action: resetRequest }
      
      validate:
        url: /confirm/:validate
        param: { module: sfApply, action: confirm }
      
      settings:
        url: /settings
        param: { module: sfApply, action: settings }
      
      # We implement the missing sf_guard_password feature from sfGuardPlugin
      sf_guard_password:
        url: /reset-request
        param: { module: sfApply, action: resetRequest }
      
  • プラグインを有効化のため「apps/{app}/config/settings.yml」に以下を追加
    enabled_modules:        [default, sfGuardAuth, sfApply]
  • 送信元、送信者を「apps/{app}/config/app.yml」にに追加
    all:
      sfApplyPlugin:
        from:
          email: "info@example.com"
          fullname: "送信者"
    

メール内容を修正するには?

  • 以下のファイルを新規作成する
  • 新規登録
    apps/{app}/modules/sfApply/templates/sendValidateNew.php
  • パスワード変更
    apps/{app}/modules/sfApply/templates/sendValidateReset.php

actionを修正するには?

sfApplyActionsを作成する

apps/{app}/modules/sfGuardAuth?/actions/actions.class.php
<?php
require_once sfConfig::get('sf_plugins_dir') . '/sfApplyPlugin/modules/sfApply/lib/BasesfApplyActions.class.php';

class sfApplyActions extends BasesfApplyActions
{
}
カテゴリー: 日記 タグ:
  1. コメントはまだありません。
  1. トラックバックはまだありません。