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 件のコメント:
コメントを投稿