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