2012年5月18日金曜日

2012年05月18日 講義068日目

2012年05月18日
講義068日目
------------------------------1H------------------------------
★symfonyを使ってサイトを作成する
・各項目のリストを表示できるようにする
------------------------------2H------------------------------
・データベースのカラム名などを変更
symfony propel-build-schema
symfony propel-build-model
symfony cc
でschema.ymlのDBの内容を更新する
・マイアカウントモジュールをbackendに作成
backendのテンプレートが見えてしまう問題
frontに作るべきだったか?
admin_ynがyの時だけメニューが表示されるロジックを追加


☆あとでやること、気が付いたこと
・officeのカテゴリーが表示されるようにする
app.ymlに追加
・予約システムの見直し
ログインしてるアカウント(それともメニューに組み込むか?)に
自分が予約してる一覧が欲しい
・管理者ページでなくても予約とその解除が可能になるようにしなければならない?
・プロジェクト別にソートできるようなカラムを予約テーブルと使用中テーブルに作るといいかも
・メンバーが進行中のプロジェクトも一覧に必要か?
・プロジェクト別のメニューもあると使えるかも?(散漫になる可能性もあるけど)
・バリデーション
・url直打ち対策
・フォームを使う
------------------------------3H------------------------------
★symfonyを使ってサイトを作成する
●発表
・スケジュール管理、祝日決定のロジック作るのがめんどくさそう
google calenderと連動できればいいなーとか
・フラグの立て方を学ばねばならんなという感想
・フォルダ構成などはフレームワークの意図によって配置したほうが効率がいい
------------------------------4H------------------------------
★symfonyを使ってサイトを作成する
●発表
・symfonyの機能でカラム名をupdate_atにすると自動で更新時間を更新してくれる
・検索を実装したいという感想
・削除フラグで管理するべき
------------------------------5H------------------------------
★symfonyを使ってサイトを作成する
●発表
・jsファイルの読み込みはパーシャルにまとめてそれを読み込めばソースがすっきりする
------------------------------6H------------------------------
★symfony
●shonanbbsの拡張
・掲示板トップページにバリデーション
内容/名前が空のときは弾くように変更
①モジュール下のvalidateディレクトリの下に、
送信先のアクション名でymlファイルを作成
バリデーションのルール(必須、項目、数字のみ、等)を記述
fields:
  content:
    required:
      msg: 内容を入力してください。
  nickname:
    required:
      msg: 名前を入力してください。
②actions.class.phpにバリデーションに引っかかった際に、動作するアクションを作成する
handleErrorという名前から始まるメソッド
    public function handleErrorSubmit()
    {
        $this->request->setParameter("id",$this->getRequestParameter("comment_id"));
        $this->request->setParameter("nickname",$this->getRequestParameter("nickname"));
        $this->request->setParameter("content",$this->getRequestParameter("content"));

        $this->forward("default","index");
    }
③テンプレートにエラーメッセージを出すようにする
indexSuccess.phpの一行目に
<?php use_helper("Validation")?>
<?php echo form_error("nickname")?>
<?php echo form_error("content")?>
をエラーメッセージを出したい場所に記述する
①のためにapps/front/default/validate/submit.ymlを作成
②のためにapps/front/default/actions/actions.class.php内にhandleErrorSubmitメソッドを作成


・cssでクラスを指定してやればエラーの表示を操れる
.form_error {
    color: red;
}
・front/default/indexにバリデーションで引っかかったら取得する値を指定しておく
        //バリデーションに引っかかったら取得
        $this->nickname = $nickname = $this->getRequestParameter("nickname");
        $this->content = $content = $this->getRequestParameter("content");
・indexSuccess.phpを
内容<br>
<?php echo textarea_tag("content", $content ,array("rows"=>10, "cols"=>55))?><br>
<br>
<?php echo form_error("content")?>
名前<br>
<?php echo input_tag("nickname", $nickname ,array("size" => 20)) ?><br>
<?php echo form_error("nickname")?>
こんな感じに
input_tagの第二引数を""からfront/default/indexで取得した変数に変更
-----------------------------memo------------------------------
アマゾンのAPIを使ったサイト
画像を多用するサイトはサムネイルの扱いに注意

0 件のコメント:

コメントを投稿