[xoops-cvslog 114] CVS update: xoops2jp/html/modules/newbb/class

アーカイブの一覧に戻る

onokazu onoka****@users*****
2005年 6月 11日 (土) 11:32:46 JST


Index: xoops2jp/html/modules/newbb/class/class.forumposts.php
diff -u xoops2jp/html/modules/newbb/class/class.forumposts.php:1.2 xoops2jp/html/modules/newbb/class/class.forumposts.php:1.3
--- xoops2jp/html/modules/newbb/class/class.forumposts.php:1.2	Fri Mar 18 21:52:25 2005
+++ xoops2jp/html/modules/newbb/class/class.forumposts.php	Sat Jun 11 11:32:45 2005
@@ -1,5 +1,5 @@
 <?php
-// $Id: class.forumposts.php,v 1.2 2005/03/18 12:52:25 onokazu Exp $
+// $Id: class.forumposts.php,v 1.3 2005/06/11 02:32:45 onokazu Exp $
 //  ------------------------------------------------------------------------ //
 //                XOOPS - PHP Content Management System                      //
 //                    Copyright (c) 2000 XOOPS.org                           //
@@ -33,401 +33,401 @@
 
 class ForumPosts
 {
-	var $post_id;
-	var $topic_id;
-	var $forum_id;
-	var $post_time;
-	var $poster_ip;
-	var $order;
-	var $subject;
-	var $post_text;
-	var $pid;
-	var $nohtml = 0;
-	var $nosmiley = 0;
-	var $uid;
-	var $icon;
-	var $attachsig;
-	var $prefix;
-	var $db;
-	var $istopic = false;
-	var $islocked = false;
-
-	function ForumPosts($id=null)
-	{
-		$this->db =& Database::getInstance();
-		if ( is_array($id) ) {
-			$this->makePost($id);
-		} elseif ( isset($id) ) {
-			$this->getPost(intval($id));
-		}
-	}
-
-	function setTopicId($value){
-		$this->topic_id = $value;
-	}
-
-	function getTopicId() {
-		return isset($this->topic_id) ? $this->topic_id : 0;
-	}
-
-	function setOrder($value){
-		$this->order = $value;
-	}
-
-	// 2004-1-12 GIJOE <gij****@peak*****> Added routine to move to the correct
-	// starting position within a topic thread
-	function &getAllPosts($topic_id, $order="ASC", $perpage=0, &$start, $post_id=0){	
-		$db =& Database::getInstance();
-		if( $order == "DESC" ) {
-			$operator_for_position = '>' ;
-		} else {
-			$order = "ASC" ;
-			$operator_for_position = '<' ;
-		}
-		if ($perpage <= 0) {
-			 $perpage = 10;
-		}
-		if (empty($start)) {
-			$start = 0;
-		}
-		if (!empty($post_id)) {
-			$result = $db->query("SELECT COUNT(post_id) FROM ".$db->prefix('bb_posts')." WHERE topic_id=$topic_id AND post_id $operator_for_position $post_id");
-			list($position) = $db->fetchRow($result);
-			$start = intval($position / $perpage) * $perpage;
-		}
-		$sql = 'SELECT p.*, t.post_text FROM '.$db->prefix('bb_posts').' p, '.$db->prefix('bb_posts_text')." t WHERE p.topic_id=$topic_id AND p.post_id = t.post_id ORDER BY p.post_id $order";
-		$result = $db->query($sql,$perpage,$start);
-		$ret = array();
-		while ($myrow = $db->fetchArray($result)) {
-			$ret[] = new ForumPosts($myrow);
-		}
-		return $ret;
-	}
-
-	function setParent($value){
-		$this->pid=$value;
-	}
-
-	function setSubject($value){
-		$this->subject=$value;
-	}
-
-	function setText($value){
-		$this->post_text=$value;
-	}
-
-	function setUid($value){
-		$this->uid=$value;
-	}
-
-	function setForum($value){
-		$this->forum_id=$value;
-	}
-
-	function setIp($value){
-		$this->poster_ip=$value;
-	}
-
-	function setNohtml($value=0){
-		$this->nohtml=$value;
-	}
-
-	function setNosmiley($value=0){
-		$this->nosmiley=$value;
-	}
-
-	function setIcon($value){
-		$this->icon=$value;
-	}
-
-	function setAttachsig($value){
-		$this->attachsig=$value;
-	}
-
-	function store() {
-		$myts =& MyTextSanitizer::getInstance();
-		$subject =$myts->censorString($this->subject);
-		$post_text =$myts->censorString($this->post_text);
-		$subject = $myts->makeTboxData4Save($subject);
-		$post_text = $myts->makeTareaData4Save($post_text);
-		if ( empty($this->post_id) ) {
-			if ( empty($this->topic_id) ) {
-				$this->topic_id = $this->db->genId($this->db->prefix("bb_topics")."_topic_id_seq");
-				$datetime = time();
-				$sql = "INSERT INTO ".$this->db->prefix("bb_topics")." (topic_id, topic_title, topic_poster, forum_id, topic_time) VALUES (".$this->topic_id.",'$subject', ".$this->uid.", ".$this->forum_id.", $datetime)";
-   				if ( !$result = $this->db->query($sql) ) {
-					return false;
-   				}
-				if ( $this->topic_id == 0 ) {
-					$this->topic_id = $this->db->getInsertId();
-				}
-			}
-			if ( !isset($this->nohtml) || $this->nohtml != 1 ) {
-				$this->nohtml = 0;
-			}
-			if ( !isset($this->nosmiley) || $this->nosmiley != 1 ) {
-				$this->nosmiley = 0;
-			}
-			if ( !isset($this->attachsig) || $this->attachsig != 1 ) {
-				$this->attachsig = 0;
-			}
-			$this->post_id = $this->db->genId($this->db->prefix("bb_posts")."_post_id_seq");
-			$datetime = time();
-			$sql = sprintf("INSERT INTO %s (post_id, pid, topic_id, forum_id, post_time, uid, poster_ip, subject, nohtml, nosmiley, icon, attachsig) VALUES (%u, %u, %u, %u, %u, %u, '%s', '%s', %u, %u, '%s', %u)", $this->db->prefix("bb_posts"), $this->post_id, $this->pid, $this->topic_id, $this->forum_id, $datetime, $this->uid, $this->poster_ip, $subject, $this->nohtml, $this->nosmiley, $this->icon, $this->attachsig);
-			if ( !$result = $this->db->query($sql) ) {
-				return false;
-   			} else {
-				if ( $this->post_id == 0 ) {
-					$this->post_id = $this->db->getInsertId();
-				}
-				$sql = sprintf("INSERT INTO %s (post_id, post_text) VALUES (%u, '%s')", $this->db->prefix("bb_posts_text"), $this->post_id, $post_text);
-   				if ( !$result = $this->db->query($sql) ) {
-					$sql = sprintf("DELETE FROM %s WHERE post_id = %u", $this->db->prefix("bb_posts"), $this->post_id);
-					$this->db->query($sql);
-   					return false;
-   				}
-   			}
-			if ( $this->pid == 0 ) {
-				$sql = sprintf("UPDATE %s SET topic_last_post_id = %u, topic_time = %u WHERE topic_id = %u", $this->db->prefix("bb_topics"), $this->post_id, $datetime, $this->topic_id);
-   				if ( !$result = $this->db->query($sql) ) {
-   				}
-				$sql = sprintf("UPDATE %s SET forum_posts = forum_posts+1, forum_topics = forum_topics+1, forum_last_post_id = %u WHERE forum_id = %u", $this->db->prefix("bb_forums"), $this->post_id, $this->forum_id);
-				$result = $this->db->query($sql);
-   				if ( !$result ) {
-   				}
-			} else {
-				$sql = "UPDATE ".$this->db->prefix("bb_topics")." SET topic_replies=topic_replies+1, topic_last_post_id = ".$this->post_id.", topic_time = $datetime WHERE topic_id =".$this->topic_id."";
-   				if ( !$result = $this->db->query($sql) ) {
-   				}
-				$sql = "UPDATE ".$this->db->prefix("bb_forums")." SET forum_posts = forum_posts+1, forum_last_post_id = ".$this->post_id." WHERE forum_id = ".$this->forum_id."";
-				$result = $this->db->query($sql);
-   				if ( !$result ) {
-   				}
-			}
-		}else{
-			if ( $this->istopic() ) {
-				$sql = "UPDATE ".$this->db->prefix("bb_topics")." SET topic_title = '$subject' WHERE topic_id = ".$this->topic_id."";
-			 	if ( !$result = $this->db->query($sql) ) {
-			 		return false;
-			 	}
-			}
-			if ( !isset($this->nohtml) || $this->nohtml != 1 ) {
-				$this->nohtml = 0;
-			}
-			if ( !isset($this->nosmiley) || $this->nosmiley != 1 ) {
-				$this->nosmiley = 0;
-			}
-			if ( !isset($this->attachsig) || $this->attachsig != 1 ) {
-				$this->attachsig = 0;
-			}
-			$sql = "UPDATE ".$this->db->prefix("bb_posts")." SET subject='".$subject."', nohtml=".$this->nohtml.", nosmiley=".$this->nosmiley.", icon='".$this->icon."', attachsig=".$this->attachsig." WHERE post_id=".$this->post_id."";
-			$result = $this->db->query($sql);
-			if ( !$result ) {
-				return false;
-			} else {
-				$sql = "UPDATE ".$this->db->prefix("bb_posts_text")." SET post_text = '".$post_text."' WHERE post_id =".$this->post_id."";
-				$result = $this->db->query($sql);
-				if ( !$result ) {
-					return false;
-				}
-			}
-		}
-		return $this->post_id;
-	}
-
-	function getPost($id) {
-		$sql = 'SELECT p.*, t.post_text, tp.topic_status FROM '.$this->db->prefix('bb_posts').' p LEFT JOIN '.$this->db->prefix('bb_posts_text').' t ON p.post_id=t.post_id LEFT JOIN '.$this->db->prefix('bb_topics').' tp ON tp.topic_id=p.topic_id WHERE p.post_id='.$id;
-		$array = $this->db->fetchArray($this->db->query($sql));
-		$this->post_id = $array['post_id'];
-		$this->pid = $array['pid'];
-		$this->topic_id = $array['topic_id'];
-		$this->forum_id = $array['forum_id'];
-		$this->post_time = $array['post_time'];
-		$this->uid = $array['uid'];
-		$this->poster_ip = $array['poster_ip'];
-		$this->subject = $array['subject'];
-		$this->nohtml = $array['nohtml'];
-		$this->nosmiley = $array['nosmiley'];
-		$this->icon = $array['icon'];
-		$this->attachsig = $array['attachsig'];
-		$this->post_text = $array['post_text'];
-		if ($array['pid'] == 0) {
-			$this->istopic = true;
-		}
-		if ($array['topic_status'] == 1) {
-			$this->islocked = true;
-		}
-	}
-
-	function makePost($array){
-		foreach($array as $key=>$value){
-			$this->$key = $value;
-		}
-	}
-
-	function delete() {
-		$sql = sprintf("DELETE FROM %s WHERE post_id = %u", $this->db->prefix("bb_posts"), $this->post_id);
-		if ( !$result = $this->db->query($sql) ) {
-			return false;
-		}
-		$sql = sprintf("DELETE FROM %s WHERE post_id = %u", $this->db->prefix("bb_posts_text"), $this->post_id);
-		if ( !$result = $this->db->query($sql) ) {
-			echo "Could not remove posts text for Post ID:".$this->post_id.".<br />";
-		}
-		if ( !empty($this->uid) ) {
-			$sql = sprintf("UPDATE %s SET posts=posts-1 WHERE uid = %u", $this->db->prefix("users"), $this->uid);
-			if ( !$result = $this->db->query($sql) ) {
-			//	echo "Could not update user posts.";
-			}
-		}
-		if ($this->istopic()) {
-			$sql = sprintf("DELETE FROM %s WHERE topic_id = %u", $this->db->prefix("bb_topics"), $this->topic_id);
-			if ( !$result = $this->db->query($sql) ) {
-				echo "Could not delete topic.";
-			}
-		}
-		$mytree = new XoopsTree($this->db->prefix("bb_posts"), "post_id", "pid");
-		$arr = $mytree->getAllChild($this->post_id);
-		$size = count($arr);
-		if ( $size > 0 ) {
-			for ( $i = 0; $i < $size; $i++ ) {
-				$sql = sprintf("DELETE FROM %s WHERE post_id = %u", $this->db->prefix("bb_posts"), $arr[$i]['post_id']);
-				if ( !$result = $this->db->query($sql) ) {
-					echo "Could not delete post ".$arr[$i]['post_id']."";
-				}
-				$sql = sprintf("DELETE FROM %s WHERE post_id = %u", $this->db->prefix("bb_posts_text"), $arr[$i]['post_id']);
-				if ( !$result = $this->db->query($sql) ) {
-					echo "Could not delete post text ".$arr[$i]['post_id']."";
-				}
-				if ( !empty($arr[$i]['uid']) ) {
-					$sql = "UPDATE ".$this->db->prefix("users")." SET posts=posts-1 WHERE uid=".$arr[$i]['uid']."";
-					if ( !$result = $this->db->query($sql) ) {
-					//	echo "Could not update user posts.";
-					}
-				}
-			}
-		}
-	}
-
-	function subject($format="Show") {
-		$myts =& MyTextSanitizer::getInstance();
-		$smiley = 1;
-		if ( $this->nosmiley() ) {
-			$smiley = 0;
-		}
-		switch ( $format ) {
-			case "Show":
-				$subject= $myts->makeTboxData4Show($this->subject,$smiley);
-				break;
-			case "Edit":
-				$subject = $myts->makeTboxData4Edit($this->subject);
-				break;
-			case "Preview":
-				$subject = $myts->makeTboxData4Preview($this->subject,$smiley);
-				break;
-			case "InForm":
-				$subject = $myts->makeTboxData4PreviewInForm($this->subject);
-				break;
-		}
-		return $subject;
-	}
-
-	function text($format="Show"){
-		$myts =& MyTextSanitizer::getInstance();
-		$smiley = 1;
-		$html = 1;
-		$bbcodes = 1;
-		if ( $this->nohtml() ) {
-			$html = 0;
-		}
-		if ( $this->nosmiley() ) {
-			$smiley = 0;
-		}
-		switch ( $format ) {
-			case "Show":
-				$text = $myts->makeTareaData4Show($this->post_text,$html,$smiley,$bbcodes);
-				break;
-			case "Edit":
-				$text = $myts->makeTareaData4Edit($this->post_text);
-				break;
-			case "Preview":
-				$text = $myts->makeTareaData4Preview($this->post_text,$html,$smiley,$bbcodes);
-				break;
-			case "InForm":
-				$text = $myts->makeTareaData4PreviewInForm($this->post_text);
-				break;
-			case "Quotes":
-				$text = $myts->makeTareaData4InsideQuotes($this->post_text);
-				break;
-		}
-		return $text;
-	}
-
-	function postid() {
-		return $this->post_id;
-	}
-
-	function posttime(){
-		return $this->post_time;
-	}
-
-	function uid(){
-		return $this->uid;
-	}
-
-	function uname(){
-		return XoopsUser::getUnameFromId($this->uid);
-	}
-
-	function posterip(){
-		return $this->poster_ip;
-	}
-
-	function parent(){
-		return $this->pid;
-	}
-
-	function topic(){
-		return $this->topic_id;
-	}
-
-	function nohtml(){
-		return $this->nohtml;
-	}
-
-	function nosmiley(){
-		return $this->nosmiley;
-	}
-
-	function icon(){
-		return $this->icon;
-	}
-
-	function forum(){
-		return $this->forum_id;
-	}
-
-	function attachsig(){
-		return $this->attachsig;
-	}
-
-	function prefix(){
-		return $this->prefix;
-	}
-
-	function istopic() {
-		if ($this->istopic) {
-			return true;
-		}
-		return false;
-	}
-
-	function islocked() {
-		if ($this->islocked) {
-			return true;
-		}
-		return false;
-	}
+    var $post_id;
+    var $topic_id;
+    var $forum_id;
+    var $post_time;
+    var $poster_ip;
+    var $order;
+    var $subject;
+    var $post_text;
+    var $pid;
+    var $nohtml = 0;
+    var $nosmiley = 0;
+    var $uid;
+    var $icon;
+    var $attachsig;
+    var $prefix;
+    var $db;
+    var $istopic = false;
+    var $islocked = false;
+
+    function ForumPosts($id=null)
+    {
+        $this->db =& Database::getInstance();
+        if ( is_array($id) ) {
+            $this->makePost($id);
+        } elseif ( isset($id) ) {
+            $this->getPost(intval($id));
+        }
+    }
+
+    function setTopicId($value){
+        $this->topic_id = $value;
+    }
+
+    function getTopicId() {
+        return isset($this->topic_id) ? $this->topic_id : 0;
+    }
+
+    function setOrder($value){
+        $this->order = $value;
+    }
+
+    // 2004-1-12 GIJOE <gij****@peak*****> Added routine to move to the correct
+    // starting position within a topic thread
+    function &getAllPosts($topic_id, $order="ASC", $perpage=0, &$start, $post_id=0){
+        $db =& Database::getInstance();
+        if( $order == "DESC" ) {
+            $operator_for_position = '>' ;
+        } else {
+            $order = "ASC" ;
+            $operator_for_position = '<' ;
+        }
+        if ($perpage <= 0) {
+             $perpage = 10;
+        }
+        if (empty($start)) {
+            $start = 0;
+        }
+        if (!empty($post_id)) {
+            $result = $db->query("SELECT COUNT(post_id) FROM ".$db->prefix('bb_posts')." WHERE topic_id=$topic_id AND post_id $operator_for_position $post_id");
+            list($position) = $db->fetchRow($result);
+            $start = intval($position / $perpage) * $perpage;
+        }
+        $sql = 'SELECT p.*, t.post_text FROM '.$db->prefix('bb_posts').' p, '.$db->prefix('bb_posts_text')." t WHERE p.topic_id=$topic_id AND p.post_id = t.post_id ORDER BY p.post_id $order";
+        $result = $db->query($sql,$perpage,$start);
+        $ret = array();
+        while ($myrow = $db->fetchArray($result)) {
+            $ret[] = new ForumPosts($myrow);
+        }
+        return $ret;
+    }
+
+    function setParent($value){
+        $this->pid=$value;
+    }
+
+    function setSubject($value){
+        $this->subject=$value;
+    }
+
+    function setText($value){
+        $this->post_text=$value;
+    }
+
+    function setUid($value){
+        $this->uid=$value;
+    }
+
+    function setForum($value){
+        $this->forum_id=$value;
+    }
+
+    function setIp($value){
+        $this->poster_ip=$value;
+    }
+
+    function setNohtml($value=0){
+        $this->nohtml=$value;
+    }
+
+    function setNosmiley($value=0){
+        $this->nosmiley=$value;
+    }
+
+    function setIcon($value){
+        $this->icon=$value;
+    }
+
+    function setAttachsig($value){
+        $this->attachsig=$value;
+    }
+
+    function store() {
+        $myts =& MyTextSanitizer::getInstance();
+        $subject =$myts->censorString($this->subject);
+        $post_text =$myts->censorString($this->post_text);
+        $subject = $myts->makeTboxData4Save($subject);
+        $post_text = $myts->makeTareaData4Save($post_text);
+        if ( empty($this->post_id) ) {
+            if ( empty($this->topic_id) ) {
+                $this->topic_id = $this->db->genId($this->db->prefix("bb_topics")."_topic_id_seq");
+                $datetime = time();
+                $sql = "INSERT INTO ".$this->db->prefix("bb_topics")." (topic_id, topic_title, topic_poster, forum_id, topic_time) VALUES (".$this->topic_id.",'$subject', ".$this->uid.", ".$this->forum_id.", $datetime)";
+                if ( !$result = $this->db->query($sql) ) {
+                    return false;
+                }
+                if ( $this->topic_id == 0 ) {
+                    $this->topic_id = $this->db->getInsertId();
+                }
+            }
+            if ( !isset($this->nohtml) || $this->nohtml != 1 ) {
+                $this->nohtml = 0;
+            }
+            if ( !isset($this->nosmiley) || $this->nosmiley != 1 ) {
+                $this->nosmiley = 0;
+            }
+            if ( !isset($this->attachsig) || $this->attachsig != 1 ) {
+                $this->attachsig = 0;
+            }
+            $this->post_id = $this->db->genId($this->db->prefix("bb_posts")."_post_id_seq");
+            $datetime = time();
+            $sql = sprintf("INSERT INTO %s (post_id, pid, topic_id, forum_id, post_time, uid, poster_ip, subject, nohtml, nosmiley, icon, attachsig) VALUES (%u, %u, %u, %u, %u, %u, '%s', '%s', %u, %u, '%s', %u)", $this->db->prefix("bb_posts"), $this->post_id, $this->pid, $this->topic_id, $this->forum_id, $datetime, $this->uid, $this->poster_ip, $subject, $this->nohtml, $this->nosmiley, $this->icon, $this->attachsig);
+            if ( !$result = $this->db->query($sql) ) {
+                return false;
+            } else {
+                if ( $this->post_id == 0 ) {
+                    $this->post_id = $this->db->getInsertId();
+                }
+                $sql = sprintf("INSERT INTO %s (post_id, post_text) VALUES (%u, '%s')", $this->db->prefix("bb_posts_text"), $this->post_id, $post_text);
+                if ( !$result = $this->db->query($sql) ) {
+                    $sql = sprintf("DELETE FROM %s WHERE post_id = %u", $this->db->prefix("bb_posts"), $this->post_id);
+                    $this->db->query($sql);
+                    return false;
+                }
+            }
+            if ( $this->pid == 0 ) {
+                $sql = sprintf("UPDATE %s SET topic_last_post_id = %u, topic_time = %u WHERE topic_id = %u", $this->db->prefix("bb_topics"), $this->post_id, $datetime, $this->topic_id);
+                if ( !$result = $this->db->query($sql) ) {
+                }
+                $sql = sprintf("UPDATE %s SET forum_posts = forum_posts+1, forum_topics = forum_topics+1, forum_last_post_id = %u WHERE forum_id = %u", $this->db->prefix("bb_forums"), $this->post_id, $this->forum_id);
+                $result = $this->db->query($sql);
+                if ( !$result ) {
+                }
+            } else {
+                $sql = "UPDATE ".$this->db->prefix("bb_topics")." SET topic_replies=topic_replies+1, topic_last_post_id = ".$this->post_id.", topic_time = $datetime WHERE topic_id =".$this->topic_id."";
+                if ( !$result = $this->db->query($sql) ) {
+                }
+                $sql = "UPDATE ".$this->db->prefix("bb_forums")." SET forum_posts = forum_posts+1, forum_last_post_id = ".$this->post_id." WHERE forum_id = ".$this->forum_id."";
+                $result = $this->db->query($sql);
+                if ( !$result ) {
+                }
+            }
+        }else{
+            if ( $this->istopic() ) {
+                $sql = "UPDATE ".$this->db->prefix("bb_topics")." SET topic_title = '$subject' WHERE topic_id = ".$this->topic_id."";
+                if ( !$result = $this->db->query($sql) ) {
+                    return false;
+                }
+            }
+            if ( !isset($this->nohtml) || $this->nohtml != 1 ) {
+                $this->nohtml = 0;
+            }
+            if ( !isset($this->nosmiley) || $this->nosmiley != 1 ) {
+                $this->nosmiley = 0;
+            }
+            if ( !isset($this->attachsig) || $this->attachsig != 1 ) {
+                $this->attachsig = 0;
+            }
+            $sql = "UPDATE ".$this->db->prefix("bb_posts")." SET subject='".$subject."', nohtml=".$this->nohtml.", nosmiley=".$this->nosmiley.", icon='".$this->icon."', attachsig=".$this->attachsig." WHERE post_id=".$this->post_id."";
+            $result = $this->db->query($sql);
+            if ( !$result ) {
+                return false;
+            } else {
+                $sql = "UPDATE ".$this->db->prefix("bb_posts_text")." SET post_text = '".$post_text."' WHERE post_id =".$this->post_id."";
+                $result = $this->db->query($sql);
+                if ( !$result ) {
+                    return false;
+                }
+            }
+        }
+        return $this->post_id;
+    }
+
+    function getPost($id) {
+        $sql = 'SELECT p.*, t.post_text, tp.topic_status FROM '.$this->db->prefix('bb_posts').' p LEFT JOIN '.$this->db->prefix('bb_posts_text').' t ON p.post_id=t.post_id LEFT JOIN '.$this->db->prefix('bb_topics').' tp ON tp.topic_id=p.topic_id WHERE p.post_id='.$id;
+        $array = $this->db->fetchArray($this->db->query($sql));
+        $this->post_id = $array['post_id'];
+        $this->pid = $array['pid'];
+        $this->topic_id = $array['topic_id'];
+        $this->forum_id = $array['forum_id'];
+        $this->post_time = $array['post_time'];
+        $this->uid = $array['uid'];
+        $this->poster_ip = $array['poster_ip'];
+        $this->subject = $array['subject'];
+        $this->nohtml = $array['nohtml'];
+        $this->nosmiley = $array['nosmiley'];
+        $this->icon = $array['icon'];
+        $this->attachsig = $array['attachsig'];
+        $this->post_text = $array['post_text'];
+        if ($array['pid'] == 0) {
+            $this->istopic = true;
+        }
+        if ($array['topic_status'] == 1) {
+            $this->islocked = true;
+        }
+    }
+
+    function makePost($array){
+        foreach($array as $key=>$value){
+            $this->$key = $value;
+        }
+    }
+
+    function delete() {
+        $sql = sprintf("DELETE FROM %s WHERE post_id = %u", $this->db->prefix("bb_posts"), $this->post_id);
+        if ( !$result = $this->db->query($sql) ) {
+            return false;
+        }
+        $sql = sprintf("DELETE FROM %s WHERE post_id = %u", $this->db->prefix("bb_posts_text"), $this->post_id);
+        if ( !$result = $this->db->query($sql) ) {
+            echo "Could not remove posts text for Post ID:".$this->post_id.".<br />";
+        }
+        if ( !empty($this->uid) ) {
+            $sql = sprintf("UPDATE %s SET posts=posts-1 WHERE uid = %u", $this->db->prefix("users"), $this->uid);
+            if ( !$result = $this->db->query($sql) ) {
+            //  echo "Could not update user posts.";
+            }
+        }
+        if ($this->istopic()) {
+            $sql = sprintf("DELETE FROM %s WHERE topic_id = %u", $this->db->prefix("bb_topics"), $this->topic_id);
+            if ( !$result = $this->db->query($sql) ) {
+                echo "Could not delete topic.";
+            }
+        }
+        $mytree = new XoopsTree($this->db->prefix("bb_posts"), "post_id", "pid");
+        $arr = $mytree->getAllChild($this->post_id);
+        $size = count($arr);
+        if ( $size > 0 ) {
+            for ( $i = 0; $i < $size; $i++ ) {
+                $sql = sprintf("DELETE FROM %s WHERE post_id = %u", $this->db->prefix("bb_posts"), $arr[$i]['post_id']);
+                if ( !$result = $this->db->query($sql) ) {
+                    echo "Could not delete post ".$arr[$i]['post_id']."";
+                }
+                $sql = sprintf("DELETE FROM %s WHERE post_id = %u", $this->db->prefix("bb_posts_text"), $arr[$i]['post_id']);
+                if ( !$result = $this->db->query($sql) ) {
+                    echo "Could not delete post text ".$arr[$i]['post_id']."";
+                }
+                if ( !empty($arr[$i]['uid']) ) {
+                    $sql = "UPDATE ".$this->db->prefix("users")." SET posts=posts-1 WHERE uid=".$arr[$i]['uid']."";
+                    if ( !$result = $this->db->query($sql) ) {
+                    //  echo "Could not update user posts.";
+                    }
+                }
+            }
+        }
+    }
+
+    function subject($format="Show") {
+        $myts =& MyTextSanitizer::getInstance();
+        $smiley = 1;
+        if ( $this->nosmiley() ) {
+            $smiley = 0;
+        }
+        switch ( $format ) {
+            case "Show":
+                $subject= $myts->makeTboxData4Show($this->subject,$smiley);
+                break;
+            case "Edit":
+                $subject = $myts->makeTboxData4Edit($this->subject);
+                break;
+            case "Preview":
+                $subject = $myts->makeTboxData4Preview($this->subject,$smiley);
+                break;
+            case "InForm":
+                $subject = $myts->makeTboxData4PreviewInForm($this->subject);
+                break;
+        }
+        return $subject;
+    }
+
+    function text($format="Show"){
+        $myts =& MyTextSanitizer::getInstance();
+        $smiley = 1;
+        $html = 1;
+        $bbcodes = 1;
+        if ( $this->nohtml() ) {
+            $html = 0;
+        }
+        if ( $this->nosmiley() ) {
+            $smiley = 0;
+        }
+        switch ( $format ) {
+            case "Show":
+                $text = $myts->makeTareaData4Show($this->post_text,$html,$smiley,$bbcodes);
+                break;
+            case "Edit":
+                $text = $myts->makeTareaData4Edit($this->post_text);
+                break;
+            case "Preview":
+                $text = $myts->makeTareaData4Preview($this->post_text,$html,$smiley,$bbcodes);
+                break;
+            case "InForm":
+                $text = $myts->makeTareaData4PreviewInForm($this->post_text);
+                break;
+            case "Quotes":
+                $text = $myts->makeTareaData4InsideQuotes($this->post_text);
+                break;
+        }
+        return $text;
+    }
+
+    function postid() {
+        return $this->post_id;
+    }
+
+    function posttime(){
+        return $this->post_time;
+    }
+
+    function uid(){
+        return $this->uid;
+    }
+
+    function uname(){
+        return XoopsUser::getUnameFromId($this->uid);
+    }
+
+    function posterip(){
+        return $this->poster_ip;
+    }
+
+    function parent(){
+        return $this->pid;
+    }
+
+    function topic(){
+        return $this->topic_id;
+    }
+
+    function nohtml(){
+        return $this->nohtml;
+    }
+
+    function nosmiley(){
+        return $this->nosmiley;
+    }
+
+    function icon(){
+        return $this->icon;
+    }
+
+    function forum(){
+        return $this->forum_id;
+    }
+
+    function attachsig(){
+        return $this->attachsig;
+    }
+
+    function prefix(){
+        return $this->prefix;
+    }
+
+    function istopic() {
+        if ($this->istopic) {
+            return true;
+        }
+        return false;
+    }
+
+    function islocked() {
+        if ($this->islocked) {
+            return true;
+        }
+        return false;
+    }
 }
 
 ?>
\ No newline at end of file


xoops-cvslog メーリングリストの案内
アーカイブの一覧に戻る