2011年4月4日月曜日

4/1覚書

1時間目
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 件のコメント:

コメントを投稿