TEDIA会員に登録したメールアドレスとパスワードを入力してください

メールアドレス:

     パスワード:


パスワードを忘れた方はパスワードの確認を行ってください。

TEDIA会員へのご登録がお済みで無い方はこちらで登録ができます


>> テクノロジーポータル TEDIA トップページへ戻る <<

Think IT Software Developer's Think IT Find-IT 失敗しないソフト選び Find-IT TEDIA テクノロジーポータル TEDIA インストールマニアックス2008 インストールマニアックス2008

TEDIA SponsorsOpen Source Web Development Tutorials - Dev Shed

CodeIgniterでブログのコメント機能を追加する
(2009/03/13公開)

これまでのアプリケーションの形

 MySQLのテーブルにユーザーのコメントを挿入する機能をこのブログ用ツールに追加する方法に直接入る前に、前回の記事で作った2つのソースファイルをここに掲載しておく。これらはこのWebアプリケーションの起動部となるものだ。前述の変更を加える前のファイルの形をよく把握しておこう。

 では、ブログ用ツールの動作を可能としてくれる、コントローラクラスとビューファイルのそれぞれの構造をご覧いただこう。


// definition for 'blogger.php' file 
(located at /system/application/controllers/ folder)

class Blogger extends Controller{
function Blogger(){
// load controller parent
parent::Controller();
// load database class and connect to MySQL
$this->load->database();
// load pagination library
$this->load->library('pagination');
// load helper
$this->load->helper('url');
}
// display all blog entries
function blogs(){
$data['title']='Blog Entries Listing';
$data['result']=$this->db->get('blogs',3,$this->uri->segment(3));
// set pagination parameters
$config['base_url']='http://127.0.0.1/codeigniter/index.php/blogger/blogs/';
$config['total_rows']=$this->db->count_all('blogs');
$config['per_page']='3';
$config['full_tag_open']='<div id="paginglinks">';
$config['full_tag_close']='</div>';
$this->pagination->initialize($config);
// create pagination links
$data['links']=$this->pagination->create_links();
// load 'blogs_view' view
$this->load->view('blogs_view',$data);
}
// display all blog comments
function comments(){
$data['title']='Blog Comments Listing';
$this->db->where('blog_id',$this->uri->segment(3));
$data['result']=$this->db->get('blogs_comments');
// load 'blogs_comment_view' view
$this->load->view('blogs_comment_view',$data);
}
}




// definition for 'blogs_view.php' file (located at /system/application/views/ folder)

<!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 foreach($result->result_array() as $blog):?>
<h2><?php echo $blog['title'];?></h2>
<p><?php echo $blog['text'];?></p>
<p><?php echo anchor('blogger/comments/'.$blog['id'],
'View Blog Comments &gt;&gt;');?></p>
<?php endforeach;?>
<?php echo $links;?>
</body>
</html>




// definition for 'blogs_comment_view.php' file (located at /system/application/views/ folder)

<!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/','&lt;&lt; Back to blog');?></p>
<?php endforeach;?>
<?php endif;?>
</body>
</html>



 ご覧いただくとおわかりのように、このコントローラクラスは該当するMySQLテーブルからブログエントリと対応するコメントとをすべて取り出す仕事をするモジュールとなっている。残る2つはビューファイルで、HTMLで記述されたページの形で、そのデータを表示するタスクを受け持つ。

 しかしながら、このブログ用ツールの機能は、現在のままでは機能が足りないと言わざるを得ないだろう。特定のエントリに対してユーザーがコメントを投稿するためのWebフォームが提供されていないからだ。この作業を実行するためには、まずコントローラ内に新たなメソッドを作る必要がある。次に、ビューファイルである「blogs_comments_view.php」の構造に変更を加えて、オンラインフォームを実装する必要がある。

 ややこしい作業に思えるかもしれないが、実はCodeIgniterを使えばそうでもない。次の部分では、これらのタスクの実行方法をお見せする。では、下のリンクをクリックし次の部分へ進もう。


前のページ     1    2    3    4    次のページ

Copyright © 2008 Ziff Davis Enterprise, Inc.
Originally appearing in the U.S. Edition of Dev Shed. All Rights Reserved.