2012年4月4日水曜日

2012年04月04日 講義041日目

2012年04月04日
講義041日目
------------------------------1H------------------------------
★管理画面
●コメント一覧ページを作成する
・generatePager関数を実行するために、
admin/comment_list.php
のsql文部分を書き換える
DbWrapper::dbChoice();

$sql = "SELECT count(*) FROM comment";
$result = mysql_query($sql);
$row = mysql_fetch_row($result);
//generatePager関数を実行すると、pagerを形作るのに必要な要素が配列で帰ってくる
$pager = myUtil::generatePager(10,$row[0],$_GET["page"],"","/bbs/admin/");
$smarty->assign("pager", $pager);

$sql ="SELECT * FROM comment ORDER BY created_at DESC LIMIT ".$pager["num_s"].",".$pager["num_e"];
------------------------------2H------------------------------
★管理画面
●テンプレートからテンプレートを呼び出す
comment.tplを書き換える
    <div class="pager">
{include file="pager.tpl" pager=$pager}
    </div>
●コメント削除実装
member_delete.phpと
member_delete.tplを参考に
comment_delete.phpと
comment_delete.tplを編集
・コメントの削除と同時にコメントにひも付いたreplyレコードも消去するロジックを組み込んでみる
DbWrapper::dbChoice();

//クエリを送信する
$id = $_GET["id"];
$sql = "SELECT count(*) FROM reply WHERE comment_id = '".$id."'";
$result = mysql_query($sql);
$row = mysql_fetch_row($result);

if($row[0] >0){
    $sql = "DELETE comment,reply
            FROM comment,reply
            WHERE comment.id =reply.comment_id
            AND comment.id ='".$id."'";
}else{
    $sql = "DELETE FROM comment WHERE id ='".$id."'";
}
mysql_query($sql);
------------------------------3H------------------------------
★管理画面
●コメント編集機能を追加する
・/bbs/tmp作成
・/bbs/admin/comment_edit_input.php
編集のためにimgフォルダの画像をtmpフォルダにコピーする
・copy()
第一引数の値を第二引数にコピーする関数
------------------------------4H------------------------------
★管理画面
●コメント編集機能の追加
・/bbs/admin/templates/comment_edit_input.tpl
------------------------------5H------------------------------
★管理画面
●コメント編集確認画面
・/bbs/admin/templates/comment_confirm.tpl
・/bbs/admin/comment_confirm.php
//アップロードされたファイルがある場合(新規or更新)
if(is_uploaded_file($_FILE["photo"]["tmp_name"])){
        session_regenerate_id();
        $tmpname ="photo_" .
                  session_id() .
                  myUtil::getFileExt($FILES["photo"]["tmp_name"]);
        $smarty->assign("tmpname". $tmpname);
        copy($FILES["photo"]["tmp_name"], "../tmp/".$tmpname);
        $_SESSION["tmpphoto"] = "../tmp/".$tmpname;
//画像が存在しない、あるいは変更がない場合
}else{
        $smarty->assign("tmpname", $tmpname);
}
------------------------------6H------------------------------
★管理画面
●コメント編集完了画面
・/bbs/admin/comment_edit_result.php
・/bbs/admin/templates/comment_edit_result.tpl
-----------------------------memo------------------------------
タイプミスがやべー

0 件のコメント:

コメントを投稿