From 0f3a577bed4d828472469675e90fcab032e33f44 Mon Sep 17 00:00:00 2001 From: xue <> Date: Fri, 2 Jun 2006 18:27:02 +0000 Subject: merge from 3.0 branch till 1133. --- .../protected/comments/QuickStartComments.php | 175 +++++++++++++++++++++ 1 file changed, 175 insertions(+) create mode 100644 demos/quickstart/protected/comments/QuickStartComments.php (limited to 'demos/quickstart/protected/comments/QuickStartComments.php') diff --git a/demos/quickstart/protected/comments/QuickStartComments.php b/demos/quickstart/protected/comments/QuickStartComments.php new file mode 100644 index 00000000..c138bd94 --- /dev/null +++ b/demos/quickstart/protected/comments/QuickStartComments.php @@ -0,0 +1,175 @@ + + * @version : $ Sat May 27 16:49:19 AZOST 2006 $ + * @package Demos.QuickStart.comments + * @since 3.0 + */ +class QuickStartComments +{ + /** + * @var string sqlite database source. + */ + private $_database; + /** + * @var sqlite connection. + */ + private $_connection; + + /** + * Sets the sqlite comment database file. + */ + public function __construct() + { + $this->_database = realpath(dirname(__FILE__).'/comments.db'); + } + + /** + * Closed the database connection. + */ + public function __destruct() + { + if(!is_null($this->_connection)) + sqlite_close($this->_connection); + } + + /** + * @return resource sqlite database connection. + */ + protected function getConnection() + { + if(is_null($this->_connection)) + $this->_connection = sqlite_open($this->_database); + return $this->_connection; + } + + /** + * Quote database input data. + */ + protected function quote($value) + { + return sqlite_escape_string($value); + } + + /** + * Executes an sqlite query. + * @param string SQL + * @return mixed query results. + */ + protected function query($sql) + { + return sqlite_query($this->getConnection(), $sql); + } + + /** + * Returns a row from the sqlite result. + * @param resource sqlite result + * @return array database record. + */ + protected function fetch($resource) + { + if($resource !== false) + return sqlite_fetch_array($resource); + else + return false; + } + + /** + * Fetch all the records for given SQL query. + * @param string SQL query. + * @return array result set. + */ + protected function fetchAll($sql) + { + $rs = $this->query($sql); + $rows = array(); + while($row = $this->fetch($rs)) + $rows[] = $row; + return $rows; + } + + /** + * Returns all the comments for a given page. + * @param string specific page comments + * @return array list of comments + */ + public function getComments($pageID) + { + $page = $this->quote($pageID); + $sql = "SELECT * FROM comments WHERE page=\"$page\" AND approved = 1 ORDER BY date_added ASC"; + return $this->fetchAll($sql); + } + + /** + * Adds a new comment for moderation. + * @param string ID of the page to comment belongs + * @param string email address of the commenter + * @param string comment contents + */ + public function addNewComment($pageID, $email, $comment) + { + $page = $this->quote($pageID); + $email = $this->quote($email); + $comment = $this->quote($comment); + $date_added = time(); + $sql = <<query($sql); + } + + /** + * Update an existing comment. + * @param string comment ID + * @param string page ID + * @param string email address + * @param string updated comment. + */ + public function updateComment($commentID, $page, $email, $content) + { + $ID = intval($commentID); + $email = $this->quote($email); + $comment = $this->quote($content); + $page = $this->quote($page); + $sql = <<query($sql); + } + + /** + * Delete a comment. + * @param string comment ID + */ + public function deleteComment($commentID) + { + $ID = intval($commentID); + $this->query("DELETE FROM comments WHERE id=$ID"); + } + + /** + * @return array all the quequed comments. + */ + public function getQuequedComments() + { + return $this->fetchAll("SELECT * FROM comments WHERE approved != 1"); + } + + /** + * Approve a quequed comment. + * @param string comment ID. + */ + public function approveComment($commentID) + { + $ID = intval($commentID); + $this->query("UPDATE comments SET approved = 1 WHERE id=$ID"); + } +} + +?> \ No newline at end of file -- cgit v1.2.3