root/dev/common/class.comments.php @ 130

Revision 130, 2.0 KB (checked in by exi, 14 years ago)

Moved comments to a small class and made it use smarty.
Fixed an error message output of the parser.

Line 
1<?php
2
3class Comments
4{
5
6    function Comments($kll_id)
7    {
8        $this->id_ = $kll_id;
9
10        $this->comments_ = array();
11        $qry = new DBQuery();
12        $qry->execute("SELECT *,id FROM kb3_comments WHERE `kll_id` = '".$kll_id."' order by posttime asc");
13        while ($row = $qry->getRow())
14        {
15            $this->comments_[] = array('time' => $row['posttime'], 'name' => $row['name'], 'comment' => stripslashes($row['comment']), 'id' => $row['id']);
16        }
17    }
18
19    function getComments()
20    {
21        global $smarty;
22
23        $smarty->assign_by_ref('comments', $this->comments_);
24        return $smarty->fetch('block_comments.tpl');
25    }
26
27    function addComment($name, $text)
28    {
29        $comment = $text;
30        $comment = $this->bbencode($comment);
31
32        $name = slashfix(strip_tags($name));
33        $qry = new DBQuery();
34        $qry->execute("INSERT INTO kb3_comments (`kll_id`,`comment`,`name`,`posttime`)
35                       VALUES ('".$this->id_."','".$comment."','".$name."','".date('Y-m-d H:i:s')."')");
36        $id = $qry->getInsertID();
37        $this->comments_[] = array('time' => date('Y-m-d H:i:s'), 'name' => $name, 'comment' => stripslashes($comment), 'id' => $id);
38    }
39
40    function delComment($c_id)
41    {
42        $qry = new DBQuery();
43        $qry->execute("DELETE FROM kb3_comments WHERE id='".$c_id."' LIMIT 1");
44    }
45
46    function bbencode($string)
47    {
48        $string = strip_tags(stripslashes($string));
49        $string = str_replace(array('[b]','[/b]','[i]','[/i]','[u]','[/u]'),
50                              array('<b>','</b>','<i>','</i>','<u>','</u>'), $string);
51        $string = preg_replace('^\[color=(.*?)](.*?)\[/color]^', '<font color="\1">\2</font>', $string);
52        $string = preg_replace('^\[kill=(.*?)](.*?)\[/kill]^', '<a href="\?a=kill_detail&kll_id=\1">\2</a>', $string);
53        $string = preg_replace('^\[pilot=(.*?)](.*?)\[/pilot]^', '<a href="\?a=pilot_detail&plt_id=\1">\2</a>', $string);
54        return nl2br(addslashes($string));
55    }
56}
57?>
Note: See TracBrowser for help on using the browser.