Open Source Web Development Tutorials - Dev Shed
CodeIgniterでブログのコメント機能を追加する
(2009/03/13公開)
ビューファイル「blogs_comment_view.php」を変更する
先ほどあげた「blogs_comments_view.php」ファイルを変更するだけで、ユーザーが特定のブログエントリに対してコメントを投稿するための簡単なWebフォームを組み込むことができる。
今回は、CodeIgniterのヘルパー関数である「form」を使って、フォームの「action」属性を動的に作成し、コメントがつけられるエントリのIDを保存するための隠しフィールドも作ることにする。
これらの説明がややこしいと感じられるなら、次のサンプルコードを見て、疑問を取り去っていくことにしよう。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title><?php echo $title;?></title>
</head>
<body>
<h1><?php echo $title;?></h1>
<?php if($result->num_rows()>0):?>
<?php foreach($result->result_array() as $comment):?>
<p><strong>Author: </strong><?php echo $comment['author'];?></p>
<p><strong>Comment:</strong></p>
<p><?php echo $comment['text'];?></p>
<p><?php echo anchor('blogger/blogs/','<< Back to blog');?></p>
<?php endforeach;?>
<?php endif;?>
<?php echo form_open('blogger/insert_comment');?>
<?php echo form_hidden('blog_id',$this->uri->segment(3));?>
<p>Author:</p>
<p><input type="text" name="author" class="textbox" /></p>
<p>Enter your comments below:</p>
<p><textarea name="text" rows="10" cols="20"></textarea></p>
<p><input type="submit" value="Submit Comment" /></p>
</form>
</body>
</html>
このとおり。これで、ビューファイルにはユーザーがコメントをブログエントリに対して送信するための、基本的なフォームが備わった。また、CodeIgniterの「uri」クラスがデフォルトのコントローラによって自動的に読み込まれ、それによりエントリのID値が呼び出されていることも注目できよう。
最後に、HTMLフォームが実装された後のビューファイルがブラウザに表示されたときの形がわかるスクリーンキャプチャを掲載しておく。
この記事の結論部分に行く前に、変更後のビューファイルをCodeIgniterの/system/application/views/ フォルダに保存しておこう。それにより、対応するコントローラクラスから読み込むことができるようになる。
ファイルを保存したなら、改良バージョンのブログ用ツールをテストしてみよう。ブラウザに下のURLを入力していただきたい。
http://localhost/codeigniter/index.php/blogger/blogs/
コメント用のWebページにつながるリンクをクリックし、オンラインフォームを使って新たなエントリを入力してみよう。すべて正しく設定されているなら、このブログ用ツールの優秀な動作に感動されるはずだ。
終わりに
本連載の第4回である今回、CodeIgniterで簡単なブログ用アプリケーションの開発は終了したと言えるだろう。ただし、もちろん読者独自の改善点や機能を必要にあわせて組み込むこともできる。このプログラムは柔軟な構造をしているので、改造を加えるのはそれほど難しくないだろう。
次回はこのブログ用ツールのビジュアル面を向上させることにしよう。今のままでは、少し未発達な感があるからだ。次回の話題をご紹介したので、ぜひお見逃しなく。
Copyright © 2008 Ziff Davis Enterprise, Inc.
Originally appearing in the U.S. Edition of Dev Shed. All Rights Reserved.









