用户
 找回密码
 入住 CI 中国社区
搜索
查看: 13660|回复: 18
收起左侧

[程序 App] [1.5.4]第一段CI代码:简单blog (下载)

[复制链接]
发表于 2007-11-28 22:25:46 | 显示全部楼层 |阅读模式
这段代码是phpchina的版主phzzy写的,原帖还附带了对本站的简单介绍,鉴于本站是CI中国主站,就不转贴phzzy的原贴了,只把代码奉上:
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!
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);
    }
}
?>
复制代码
由于phzzy原始地址 “全没了……….全被丫删了”,所以目前暂时只能从本站下载。
本站下载地址:
blog.zip (255.6 KB, 下载次数: 657)

或者访问phzzy的原始帖子,也带有附件。

///////////////////////////////////////////////////////////////
PS.20071129:经过测试发现此代码使用的CI是另外一个版本,但是同现在的版本使用同一个版本号,作者也相同,但是版权声明确是不一样的,phzzy的这个使用的版权是pMachine, Inc. ,而目前下载到的版本版权是EllisLab, Inc. ,所以使用时最好上传所有压缩包里的内容,否则会出错。

评分

参与人数 1威望 +5 收起 理由
Hex + 5 精品文章

查看全部评分

发表于 2007-11-29 10:17:47 | 显示全部楼层
好文章!加分!!
 楼主| 发表于 2007-11-29 13:01:00 | 显示全部楼层
谢谢站长!
发表于 2007-11-29 13:02:56 | 显示全部楼层
顶,好文章!
但是,代码缺乏安全性,对输入应该使用codeigniter的validation进行验证,最好不要直接取$_POST中的值。
发表于 2007-11-29 13:40:41 | 显示全部楼层
期待楼上完善!
发表于 2008-1-2 20:17:43 | 显示全部楼层
难道现在下载的CI有问题?(CodeIgniter_1.5.4),我写的代码在1.5.4里面总是提示未定义$this->db,但是用了上面blog.zip的代码后,就可以运行了。真是奇怪。
发表于 2008-1-3 09:42:17 | 显示全部楼层
当前的 CI 版本应该没什么大问题吧?你的代码里哪里提示那个错误?
发表于 2008-1-24 10:51:39 | 显示全部楼层
要能仿rails的敏捷一书 出个小教程就好了:)
发表于 2008-1-24 13:13:00 | 显示全部楼层
简单的看了下 为什么model里没东西?这个不是有和数据库交互的内容吗?
发表于 2008-3-15 23:38:44 | 显示全部楼层
好东西,晚上学习一下

本版积分规则