replyに画像追加の続き。
ex.複数画像の続き
2時間目も同様
3時間目
☆ヘルパー
no_script_nameをONにすることでフロントコントローラーがURLに出なくなる。
4時間目
ヘルパー続き
5時間目
ヘルパーをbbs2に適用
6時間目
schema実行後に生成されるomディレクトリの子クラスに変更点を記述。
親クラスには記述しない。
来週はreply以外のデータ参照もあるそうな。
現時点ソース。カテゴリ未完成だよー;
写真複数にするときはphotoカラム追加と
/web/images/comment2とか複数必要だよー。
コントロール側 public function executeIndex() { print_r(sfConfig::get('sf_support_mail')); //commentテーブル全行表示降順 //昇順 ->addAscendingOrderByColumn(column); $c = new Criteria(); $c->addDescendingOrderByColumn(CommentPeer::CREATED_AT); $this->comments = CommentPeer::doSelect($c); return sfView::SUCCESS; } public function executeConfirm() { $this->name = $this->getRequestParameter("name"); $this->coment = $this->getRequestParameter("coment"); $this->categorie = $this->getRequestParameter("categorie"); $photo1 = $this->getRequest()->getFile('photo1'); $photo2 = $this->getRequest()->getFile('photo2'); // sleepさせてrootで/tmpを見る //sleep(10); //画像の一時ファイル判定 if($photo1["tmp_name"] != '') { //保存する画像名はセッションID生成し付与 session_regenerate_id(); //myUtil::getFileExtで拡張子判別。帰り値は._gif._png._jpg $tmpname1 = 'photo1_' . session_id() .myUtil::getFileExt( $photo1["tmp_name"] ); //web/uploads/tmpへ画像を移動する $this->getRequest()->moveFile('photo1',sfConfig::get('sf_upload_dir').'/tmp/'.$tmpname1); //templateにパスを渡している $this->photo1 = $tmpname1; } //画像の一時ファイル判定 if($photo2["tmp_name"] != '') { //保存する画像名はセッションID生成し付与 session_regenerate_id(); //myUtil::getFileExtで拡張子判別。帰り値は._gif._png._jpg $tmpname2 = 'photo2_' . session_id() .myUtil::getFileExt( $photo2["tmp_name"] ); //web/uploads/tmpへ画像を移動する $this->getRequest()->moveFile('photo2',sfConfig::get('sf_upload_dir'). '/tmp/'.$tmpname2); //templateにパスを渡している $this->photo2 = $tmpname2; } return sfView::SUCCESS; } public function executeHelp() { return sfView::SUCCESS; } public function executeResult() { //nameとmailを変数にして渡す。 $name = $this->getRequestParameter("name"); $coment = $this->getRequestParameter("coment"); $categorie = $this->getRequestParameter("categorie"); //insertのmember //インスタンス化。空のオブジェクトを生成。 $comment = new Comment(); //変数にした名前とメールを入力。idカラムは自動なので不要。 //カラムにcreated_at、update_atがあればSymfonyが自動で一緒にやってくれる。 $comment->setNickname("$name"); $comment->setContent("$coment"); $comment->setCategorie("$categorie"); //insert文発行 $comment->save(); //画像データを変数にして渡す $photo1 = $this->getRequestParameter('photo1'); $photo2 = $this->getRequestParameter('photo2'); //画像の存在判定 if($photo1 != '') { ///uploads/tmp/'.$photo1から画像を取得 $src = sfConfig::get('sf_web_dir').'/uploads/tmp/'.$photo1; //最新(投稿と同一)のidを取得(autoincrement稼動時) $saveName = $comment->getId().myUtil::getFileExt($src); //TEMPから/images/comment/".$saveNameへ保存 $dst = sfConfig::get('sf_web_dir')."/images/comment/".$saveName; rename($src, $dst); $comment->setPhoto($saveName); $comment->save(); } if($photo2 != '') { ///uploads/tmp/'.$photo2から画像を取得 $src = sfConfig::get('sf_web_dir').'/uploads/tmp/'.$photo2; //最新(投稿と同一)のidを取得(autoincrement稼動時) $saveName = $comment->getId().myUtil::getFileExt($src); //TEMPから/images/comment/".$saveNameへ保存 $dst = sfConfig::get('sf_web_dir')."/images/comments2/".$saveName; rename($src, $dst); $comment->setPhoto2($saveName); $comment->save(); } return sfView::SUCCESS; }
index <div class="line"> <?php echo form_tag("default/confirm","method=post multipart=true")?> 新規投稿<br> <?php echo textarea_tag("coment", array("rows" => "10", "cols" => "30")) ?> <br> ニックネーム<?php echo input_tag("name", array("size => 20"))?> カテゴリ <?php $categorie = sfConfig::get('sf_categorie')?> <?php echo select_tag("$categorie", options_for_select($categorie,$value));?><br> 画像1<?php echo input_file_tag("photo1") ?><br> 画像2<?php echo input_file_tag("photo2") ?><br> <?php echo submit_tag("送信する") ?><br> </form> </div> <div class="comment"> <?php foreach ($comments as $comment):?> <?php echo $comment->getNickname();?>の投稿 投稿日時<?php echo $comment->getCreatedat();?> カテゴリ:<?php echo $comment->getCategorie();?><br><br><br> <?php echo $comment->getContent();?><br><br> <?php if($comment->getPhoto()):?> <?php echo image_tag('/images/comment/' .$comment->getPhoto(),"class=imgmain") ?><br><br> <?php endif;?> <?php if($comment->getPhoto2()):?> <?php echo image_tag('/images/comment/' .$comment->getPhoto2(),"class=imgmain") ?><br><br> <?php endif;?> <?php echo link_to("返信", "/reply_add/input", array("query_string" => "id=".$comment->getId()))?> <br><br> <?php $replys = $comment->getReplys();?> <?php foreach ($replys as $reply):?> <div class="reply"> <?php echo $reply->getNickname();?>さんの投稿 返信日時<?php echo $reply->getCreatedat();?><br><br> <?php echo $reply->getContent();?><br><br> <?php if($reply->getPhoto()):?> <?php echo image_tag('/images/reply/'.$reply->getPhoto(),"class=imgmain") ?><br><br> <?php endif;?> </div> <?php endforeach;?> <?php endforeach;?> </div>
input このコメントに返信します <div> <?php echo $comment->getContent();?><br> <?php if($comment->getPhoto()):?><br> <img src="/images/comment/<?php echo $comment->getPhoto();?>"><br><br> <?php endif;?> </div> <div class="line"> </div> 返信フォーム<br> <?php echo form_tag("/reply_add/confirm", "method=post multipart=true")?> <?php echo textarea_tag("coment", array("rows" => "10", "cols" => "30")) ?><br> ニックネーム<?php echo input_tag("name", array("size => 20"))?><br> <br> 画像1<?php echo input_file_tag("photo") ?><br><br> <?php echo input_hidden_tag('id', $comment->getId()) ?> <?php echo submit_tag("確認する") ?> </form>
confirm <?php echo form_tag("/reply_add/result", "method=post multipart=true")?> 返信内容<br> <?php echo $coment;?> <?php echo input_hidden_tag('coment', $coment) ?> <br> ニックネーム<br> <?php echo $name;?> <br> 画像<br> <?php if($photo !=""):?> <img src="/uploads/tmp/<?php echo $photo?>"> <br><br> <div class="line"></div> <?php echo input_hidden_tag('photo', $photo) ?> <?php endif;?> <?php echo input_hidden_tag('name', $name) ?> <?php echo input_hidden_tag('id', $id) ?> <br> <?php echo submit_tag("完了") ?> </form>
0 件のコメント:
コメントを投稿