+ -
当前位置:首页 → 问答吧 → Code Igniter Framework 实例 ( 最简单的BLOG )

Code Igniter Framework 实例 ( 最简单的BLOG )

时间:2006-09-06

来源:互联网

此框架的官方站:
http://www.codeigniter.com/

现在偶正在翻译它的文档
http://www.phzzy.org/manual/codeigniter/toc.html
有兴趣的朋友加偶QQ一起翻译哈
原来是用 ZF 的,但因为不支持 PHP4,所以放弃了,寒

过几天我自己那破站换BLOG程序时再把演示放上来

下载地址:
http://www.phzzy.org/up/codeigniter/blog_example.zip
或附件

懒得写注释了,都用很明显的英文命名了。呵
除开下面控制器部分,其余的都是视图部分的代码,简单的HTML和一点点PHP循环

控制器代码
复制PHP内容到剪贴板
PHP代码:

<?php

class Blog extends Controller
{
// construction
    function Blog()
    {
        parent::Controller();

        $this->load->helper('url');
        $this->load->helper('date');
        $this->load->script('ubb');
    }

// public functions

    function index()
    {
        $this->viewtopic();
    }

    function viewtopic()
    {
        $topic_list = $this->_topic_list();
        
        $data['body'] = $topic_list;
        $this->load->view('main' , $data);
    }
    
    function viewblog()
    {
        $blog = $this->_show_blog();
        $comment_list = $this->_show_comment_list();
        $comment_form = $this->_show_comment_form();
        
        $data['body'] = $blog . "\n\n" . $comment_list . "\n\n" . $comment_form;
        $this->load->view('main' , $data);
    }
    
    function comment()
    {
        $blog_id = $_POST['blog_id'] + 0;
        if( $blog_id <= 0 )
        {
            show_error('Error');
        }
        
        switch($this->uri->segment(3))
        {
            case 'insert':
                $this->_comment_insert();
                break;
            case 'delete':
                //do delete the comment
                break;
            case 'edit':
                //do edit the comment
                break;
            default:
                redirect(base_url());
                break;
        }
    }


// private functions

    function _topic_list()
    {
        $catalog_id = $this->uri->segment(3) + 0;
        if( $catalog_id < 0 )
        {
            redirect();
        }
        
        $sql_add = '';
        if( $catalog_id > 0 )
        {
            $sql_add = ' WHERE b.`catalog_id` = ' . $catalog_id;
        }
        
        $topic['title'] = 'My Blog';
        
        $sql = "SELECT b.* , c.`name` as `catalog_name` FROM `blogs` AS `b` LEFT JOIN `catalogs` AS `c` ON c.`id` = b.`catalog_id`{$sql_add} ORDER BY `id` DESC";
        $topic['blog_array'] = $this->db->query($sql);
        
        return $this->load->view('viewtopic' , $topic , true);
    }
    
    function _show_blog()
    {
        $blog_id = $this->uri->segment(3) + 0;
        if( $blog_id <= 0 )
        {
            redirect();
        }
        
        $sql = "SELECT b.* , c.`name` as `catalog_name` FROM `blogs` AS `b` LEFT JOIN `catalogs` AS `c` ON c.`id` = b.`catalog_id` WHERE b.`id` = {$blog_id} LIMIT 1";
        $topic['blog_array'] = $this->db->query($sql);
        
        return $this->load->view('viewblog' , $topic , true);
    }
    
    function _show_comment_list()
    {
        $blog_id = $this->uri->segment(3) + 0;
        if( $blog_id <= 0 )
        {
            redirect();
        }
        
        $sql = "SELECT * FROM `comments` WHERE `blog_id` = {$blog_id} ORDER BY `id` DESC";
        $comment['comment_array'] = $this->db->query($sql);
        
        return $this->load->view('comment_list' , $comment , true);
    }
    
    function _show_comment_form()
    {
        $this->load->helper('form');
        
        return $this->load->view('comment_form' , '' , true);
    }
    
    function _comment_insert()
    {
        $blog_id = $_POST['blog_id'];
        $username = $_POST['username'];
        $comment = $_POST['comment'];
        $time = now();
        
        if(empty($comment) || empty($username))
        {
            show_error('Some field is blank!<br />Please <a href="javascript:history.back();">return</a>..');
        }
        
        $sql = "INSERT INTO `comments` (`blog_id` , `username` , `comment` , `time`) VALUES({$blog_id} , '{$username}' , '{$comment}' , {$time})";
        $this->db->query($sql);
        
        $sql = "UPDATE `blogs` SET `comment_times` = `comment_times` + 1 WHERE `id` = {$blog_id} LIMIT 1";
        $this->db->query($sql);
        
        redirect('blog/viewblog/' . $blog_id);
    }
}
?>

没有做后台,用 phpmyadmin 或自己加个后台就可以了。。呵~
CI也自带了一个不安全的后台:)
地址
index.php/catalog/db/
index.php/dbblog/db/

我只建了两个表的管理,没建 comment 表的

[ 本帖最后由 Phzzy 于 2006-9-6 15:06 编辑 ]

作者: Phzzy   发布时间: 2006-09-06

顶起哈..

作者: EastSon   发布时间: 2006-09-06

呵呵

顶你

作者: szy_session1987   发布时间: 2006-09-06

Yum... zai CodeIgniter luntan li he wo da zhaohu d, nandao jiu shi LZ?

Ou zhengzai zengqiang ta de kaifa huanjing...

http://my.opera.com/yarco/blog/show.dml/448530

作者: fengyun   发布时间: 2006-09-07

引用:
原帖由 yarco4 于 2006-9-7 10:45 发表
Yum... zai CodeIgniter luntan li he wo da zhaohu d, nandao jiu shi LZ?

Ou zhengzai zengqiang ta de kaifa huanjing...

http://my.opera.com/yarco/blog/show.dml/448530
恩哈,是滴,呵呵
:):D

[ 本帖最后由 Phzzy 于 2006-9-7 13:21 编辑 ]

作者: yarco4   发布时间: 2006-09-07

!!

作者: Phzzy   发布时间: 2006-09-09

嘿嘿,不错。。

作者: 帅的不能再输啦   发布时间: 2006-09-11

想了解更多关于 CodeIgniter 的实例,那就来 CodeIgniter 中国看看吧!

作者: kevinchenkai   发布时间: 2008-02-18