2011/04/07

symfonyで掲示板作成、サイドメニュー

php講習 4/7

今日も天気がいいが、湿気を感じる。
明日は天気が悪くなるそうなので、湿度が高いのかもしれない。

1時間目
・コンポーネントの復習

・課題:メニューに返信数の多いコメントランキングを作成する
コメントテーブルに返信数のカラムを追加
ここでソート、上位5件を取得する。

・コメントテーブルにカラム追加
reply_cnt int
ALTER TABLE comment ADD COLUMN reply_cnt int;

・スキーマ生成、モデル作成
$ symfony propel-build-schema
$ symfony propel-build-model
$ symfony cc

・replyテーブルに保存したタイミングで、
コメントテーブルに問い合わせして、カウントを+1する。

・メニューに表示のスロット追加

・作業実施

2時間目
20分まで作業、少し猶予の時間。
・カウントが1以上入らないため、SQLでチェック。
select id,nickname,reply_cnt from comment ;
select id,nickname,comment_id from reply;

3時間目
・コンポーネントの復習
コメントに詳細を見るリンクを張る。

(1)コメントに詳細を見るリンクを作成
・indexSuccexx.phpのコメントに詳細のリンク設定
・モジュール作成detail/index、答え合わせでは、default/ditailだった。
$ symfony init-module front detail
・routing.ymlでIDのパスを設定

(2)default/detailでコメント詳細ページ表示
表示する内容は、indexと同じ
(長い文章があるとき、全体を表示する場合に対応)

(3)commentテーブルにaccess_cntカラム追加
$ ALTER TABLE comment ADD COLUMN access_cnt int;

・スキーマ、モデル作成

(4)詳細(detail)を見るたびにaccess_cntを+1
・detailアクション追加
・SQLで確認
select id,nickname,access_cnt from comment ;

(5)shard/accessrankingコンポーネントでアクセス数が多い5件のコメントを表示
<?php include_component("shared", "commentranking");?>
・サイドメニューに追加

5時間目
・/でアクセス、投稿画面で、詳細のリンクを確認
・/default/detail/id/1でアクセスすると
  /symfony/detail/となる。
  ルーティングルールの変更が反映していないようだ。
  symfony ccを実行しても結果が変わらない。

・コメント一覧、返信件数を表示する。
リンクを張る
routing.ymlでURLからアクセス出来る
ことを確認する

6時間目
・これまでの復習
frontにexerciseモジュール作成(アクションはindex)
stage2アクションを作成

・コメントテーブルから全データを取得
$commentsでテンプレートに渡す
パラメータの受け渡しと、取得方法は問題なく書けるようにしておいて下さい。
(10回くらい書けば覚えるらしい、漢字練習を思い出す)

・明日、午前中は代わりの講師が来ます。
その時間は、自習になるので、コメント一覧を実装、終わった人は、
リプライリスト、返信の編集をして下さい、とのことでした。

・プロジェクトディレクトリへの移動
$ cd ~/bbs2

0 件のコメント:

コメントを投稿