2012年5月25日金曜日

2012年05月25日 講義071日目

2012年05月25日
講義071日目
------------------------------1H------------------------------
★職場体験
------------------------------2H------------------------------
★symfony
●お問い合わせフォーム作成
・contactテーブルにデータが入り、メールが飛ぶこと
ページフローを使う
symfony propel-generate-create front contact Contact
・frontのrouting.ymlを編集
contact_add:
  url:   /contact
  param: { module: contact, action: flow }
ページフローを使う時のrouting.ymlの設定はactionをflowにしておく
------------------------------3H------------------------------
★symfony
●プラグインの入れ替え
・sfPageFlowPluginをフォルダごと消去
新たに入れなおしたいバージョンをダウンロードし、入れ替える
プラグインはフォルダに存在するだけで機能してしまう
使わないプラグインは消去しておく
・newsが消えてない場合
tail /var/spool/mail/root
view /var/spool/mail/root
などで参照し、原因を探る
apacheのログを参照
  tail /etc/httpd/logs/error_log
------------------------------4H------------------------------
★symfony
●お問い合わせ
・生成されたフォームを手動で好みにカスタマイズする
・displayForm.phpを編集
タグを好みに編集したりする
テーブルの<td>部分の表示を変更
send_flgのフォームは使わないので消去
  (フラグ入力は、決め打ちにするので<tr>ごと消去)
・displayConfirm.php
各項目を日本語に
  send_flgを消去
・action.class.php
public function executeSetup()
入力画面
public function executeValidate()
エラーチェックをかけて確認画面
public function executeSubmit()
登録

ページフローではアクションとテンプレートの名前が一致しない(sfpageflowの都合)
config/pageflow.ymlにその設定が生成されている
動作をカスタマイズするために編集可能

・public function executeValidate()に対応するvalidateを作る
/contact/validete/validate.ymlの作成
・エラーチェックを書いていく
mailaddress
name
content
・作ったファイルにmailaddressの形式であるかをチェックするsfEmailValidatorをかける
fields:
  mailaddress:
    required:
      msg: メールアドレスを入力してください。
    sfEmailValidator:
      strict:       true
      email_error:  このメールアドレスは無効です。
  name:
    required:
      msg: お名前を入力してください。
  content:
    required:
      msg: 内容を入力してください。

------------------------------5H------------------------------
★symfony
●お問い合わせ
・public function executeValidate()
フラグ入力を決め打ちにする
$contact->setSendFlg($this->getRequestParameter('send_flg'));

$contact->setSendFlg("n");

●メール送信
mb_send_mail("メールアドレス","title","message");
☆注意点
①文字化けに対処(utf-8じゃない)
②送り主の指定
指定しておく方がいい
フィルターに引っかかる可能性が高いから
        mb_send_mail("メールアドレス","title",
        "TO: {$contact->getName()}様
        お問い合わせありがとうございます。
        メールアドレス:{$contact->getMailaddress()}
        お問い合わせ内容:{$contact->getContent()}"
        ,"From:サーバ管理者"
        ,"");
------------------------------6H------------------------------
★symfony
●管理者画面メンバーの登録フローの作成
・member/addのrothing.ymlの編集
member_add
  url:   /member/add
  param: { module: member_add, action: flow }
action: initialize

action: flow
・バリデーションの作成など
  後日、管理者権限を持つ者のみが変更、追加できるようにします
  決め打ちで"n"が入るようにexecuteValidateで指定し、フォームでは無視
  パスワードは隠すようにする
  nickname,mailaddress,passwordは必須項目
  mailaddressにはsfEmailValidator
  パスワードは2桁以上20桁未満制限
  可能なら
    既に存在するメールアドレスの登録は弾くように
    カスタムバリデータを作る
    削除フラグは後日ラジオボタンでON/OFFを切り替えられるようにする(現時点では"n"決め打ちでOK)
    管理者権限はそのままでOK
-----------------------------memo------------------------------
viでコピーする時に入力モードに入ってからじゃないと、ちゃんとコピーできてない確立が高いから気をつける

0 件のコメント:

コメントを投稿