Beispiel #1
0
 public function post($aSubject, $aMessage)
 {
     $Connector = $this->getConnector();
     $Timestamp = time();
     $FormattedMessage = HTMLToBBCode($aMessage);
     try {
         do {
             $Connector->beginTransaction();
             $UserQuery = $Connector->prepare('SELECT username FROM `' . MYBB_TABLE_PREFIX . 'users` WHERE uid=:UserId LIMIT 1');
             $UserQuery->BindValue(':UserId', MYBB_POSTAS, PDO::PARAM_INT);
             $UserData = $UserQuery->fetchFirst();
             // Create thread
             $ThreadQuery = $Connector->prepare('INSERT INTO `' . MYBB_TABLE_PREFIX . 'threads` ' . '(fid, uid, subject, username, dateline, lastpost, lastposter, lastposteruid, visible) VALUES ' . '(:ForumId, :UserId, :Subject, :Username, :Now, :Now, :Username, :UserId, 1)');
             $ThreadQuery->BindValue(':ForumId', MYBB_POSTTO, PDO::PARAM_INT);
             $ThreadQuery->BindValue(':UserId', MYBB_POSTAS, PDO::PARAM_INT);
             $ThreadQuery->BindValue(':Now', $Timestamp, PDO::PARAM_INT);
             $ThreadQuery->BindValue(':Username', $UserData['username'], PDO::PARAM_STR);
             $ThreadQuery->BindValue(':Subject', $aSubject, PDO::PARAM_STR);
             $ThreadQuery->execute(true);
             $ThreadId = $Connector->lastInsertId();
             // Create post
             $PostQuery = $Connector->prepare('INSERT INTO `' . MYBB_TABLE_PREFIX . 'posts` ' . '(tid, fid, uid, username, dateline, subject, message, visible) VALUES ' . '(:ThreadId, :ForumId, :UserId, :Username, :Now, :Subject, :Text, 1)');
             $PostQuery->BindValue(':ThreadId', $ThreadId, PDO::PARAM_INT);
             $PostQuery->BindValue(':ForumId', MYBB_POSTTO, PDO::PARAM_INT);
             $PostQuery->BindValue(':UserId', MYBB_POSTAS, PDO::PARAM_INT);
             $PostQuery->BindValue(':Now', $Timestamp, PDO::PARAM_INT);
             $PostQuery->BindValue(':Username', $UserData['username'], PDO::PARAM_STR);
             $PostQuery->BindValue(':Subject', $aSubject, PDO::PARAM_STR);
             $PostQuery->BindValue(':Text', $FormattedMessage, PDO::PARAM_STR);
             $PostQuery->execute(true);
             $PostId = $Connector->lastInsertId();
             // Update forum
             $ForumUpdate = $Connector->prepare('UPDATE `' . MYBB_TABLE_PREFIX . 'forums` ' . 'SET posts=posts+1, threads=threads+1, lastpost=:Now, ' . 'lastposteruid=:UserId, lastposttid=:ThreadId, lastposter=:Username, lastpostsubject=:Subject ' . 'WHERE fid=:ForumId LIMIT 1');
             $ForumUpdate->BindValue(':ForumId', MYBB_POSTTO, PDO::PARAM_INT);
             $ForumUpdate->BindValue(':ThreadId', $ThreadId, PDO::PARAM_INT);
             $ForumUpdate->BindValue(':Now', $Timestamp, PDO::PARAM_INT);
             $ForumUpdate->BindValue(':UserId', MYBB_POSTAS, PDO::PARAM_INT);
             $ForumUpdate->BindValue(':Username', $UserData['username'], PDO::PARAM_STR);
             $ForumUpdate->BindValue(':Subject', $aSubject, PDO::PARAM_STR);
             $ForumUpdate->execute(true);
             // Finish thread
             $ThreadFinishQuery = $Connector->prepare('UPDATE `' . MYBB_TABLE_PREFIX . 'threads` ' . 'SET firstpost = :PostId ' . 'WHERE tid = :ThreadId LIMIT 1');
             $ThreadFinishQuery->BindValue(':ThreadId', $ThreadId, PDO::PARAM_INT);
             $ThreadFinishQuery->BindValue(':PostId', $PostId, PDO::PARAM_INT);
             $ThreadFinishQuery->execute(true);
         } while (!$Connector->commit());
     } catch (PDOException $Exception) {
         $Connector->rollBack();
         throw $Exception;
     }
 }
Beispiel #2
0
 public function post($aSubject, $aMessage)
 {
     $Connector = $this->getConnector();
     $Timestamp = time();
     // Fetch user
     try {
         do {
             $Connector->beginTransaction();
             $UserQuery = $Connector->prepare('SELECT username FROM `wcf' . WBB_TABLE_PREFIX . '_user` ' . 'WHERE userID=:UserId LIMIT 1');
             $UserQuery->BindValue(':UserId', WBB_POSTAS, PDO::PARAM_INT);
             $UserData = $UserQuery->fetchFirst();
             // Create topic
             $ThreadQuery = $Connector->prepare('INSERT INTO `wbb' . WBB_TABLE_PREFIX . '_thread` ' . '(boardId, userId, topic, time, username, lastPostTime, lastPoster, lastPosterID) VALUES ' . '(:BoardId, :UserId, :Subject, :Now, :Username, :Now, :Username, :UserId)');
             $ThreadQuery->BindValue(':BoardId', WBB_POSTTO, PDO::PARAM_INT);
             $ThreadQuery->BindValue(':UserId', WBB_POSTAS, PDO::PARAM_INT);
             $ThreadQuery->BindValue(':Subject', xmlToUTF8($aSubject), PDO::PARAM_STR);
             $ThreadQuery->BindValue(':Now', $Timestamp, PDO::PARAM_INT);
             $ThreadQuery->BindValue(':Username', $UserData['username'], PDO::PARAM_STR);
             $ThreadQuery->execute(true);
             $ThreadId = $Connector->lastInsertId();
             // Create post
             $FormattedMessage = HTMLToBBCode($aMessage);
             $PostQuery = $Connector->prepare('INSERT INTO `wbb' . WBB_TABLE_PREFIX . '_post` ' . '(threadId, time, username, userId, message) VALUES ' . '(:ThreadId, :Now, :Username, :UserId, :Text)');
             $PostQuery->BindValue(':ThreadId', $ThreadId, PDO::PARAM_INT);
             $PostQuery->BindValue(':Now', $Timestamp, PDO::PARAM_INT);
             $PostQuery->BindValue(':Username', $UserData['username'], PDO::PARAM_STR);
             $PostQuery->BindValue(':UserId', WBB_POSTAS, PDO::PARAM_INT);
             $PostQuery->BindValue(':Text', $FormattedMessage, PDO::PARAM_STR);
             $PostQuery->execute(true);
             $PostId = $Connector->lastInsertId();
             // Finish topic
             $TopicFinishQuery = $Connector->prepare('UPDATE `wbb' . WBB_TABLE_PREFIX . '_thread` ' . 'SET firstPostID = :PostId, lastPostID = :PostId ' . 'WHERE threadID = :ThreadId LIMIT 1');
             $TopicFinishQuery->BindValue(':PostId', $PostId, PDO::PARAM_INT);
             $TopicFinishQuery->BindValue(':ThreadId', $ThreadId, PDO::PARAM_INT);
             $TopicFinishQuery->execute(true);
             // Update board
             $BoardQuery = $Connector->prepare('UPDATE `wbb' . WBB_TABLE_PREFIX . '_board_last_post` ' . 'SET threadID = :ThreadId ' . 'WHERE boardId = :BoardId LIMIT 1');
             $BoardQuery->BindValue(':ThreadId', $ThreadId, PDO::PARAM_INT);
             $BoardQuery->BindValue(':BoardId', WBB_POSTTO, PDO::PARAM_INT);
             $BoardQuery->execute(true);
         } while (!$Connector->commit());
     } catch (PDOException $Exception) {
         $Connector->rollBack();
         throw $Exception;
     }
 }
Beispiel #3
0
 public function post($aSubject, $aMessage)
 {
     $Connector = $this->getConnector();
     $Timestamp = time();
     $FormattedMessage = HTMLToBBCode($aMessage);
     // Fetch user
     try {
         do {
             $Connector->beginTransaction();
             $UserQuery = $Connector->prepare('SELECT username FROM `' . VB3_TABLE_PREFIX . 'user` WHERE userid=:UserId LIMIT 1');
             $UserQuery->BindValue(':UserId', VB3_POSTAS, PDO::PARAM_INT);
             $UserData = $UserQuery->fetchFirst();
             // Create thread
             $ThreadQuery = $Connector->prepare('INSERT INTO `' . VB3_TABLE_PREFIX . 'thread` ' . '(forumid, postuserid, title, postusername, dateline, lastpost, lastposter, open, visible) VALUES ' . '(:ForumId, :UserId, :Subject, :Username, :Now, :Now, :Username, 1, 1)');
             $ThreadQuery->BindValue(':ForumId', VB3_POSTTO, PDO::PARAM_INT);
             $ThreadQuery->BindValue(':UserId', VB3_POSTAS, PDO::PARAM_INT);
             $ThreadQuery->BindValue(':Now', $Timestamp, PDO::PARAM_INT);
             $ThreadQuery->BindValue(':Username', $UserData['username'], PDO::PARAM_STR);
             $ThreadQuery->BindValue(':Subject', $aSubject, PDO::PARAM_STR);
             $ThreadQuery->execute(true);
             $ThreadId = $Connector->lastInsertId();
             // Create post
             $PostQuery = $Connector->prepare('INSERT INTO `' . VB3_TABLE_PREFIX . 'post` ' . '(threadid, userid, username, dateline, title, pagetext, allowsmilie, visible) VALUES ' . '(:ThreadId, :UserId, :Username, :Now, :Subject, :Text, 1, 1)');
             $PostQuery->BindValue(':ThreadId', $ThreadId, PDO::PARAM_INT);
             $PostQuery->BindValue(':UserId', VB3_POSTAS, PDO::PARAM_INT);
             $PostQuery->BindValue(':Now', $Timestamp, PDO::PARAM_INT);
             $PostQuery->BindValue(':Username', $UserData['username'], PDO::PARAM_STR);
             $PostQuery->BindValue(':Subject', $aSubject, PDO::PARAM_STR);
             $PostQuery->BindValue(':Text', $FormattedMessage, PDO::PARAM_STR);
             $PostQuery->execute(true);
             $PostId = $Connector->lastInsertId();
             // Create parsed post
             $PostQuery = $Connector->prepare('INSERT INTO `' . VB3_TABLE_PREFIX . 'postparsed` ' . '(postid, dateline, styleid, languageid, pagetext_html) VALUES ' . '(:PostId, :Now, 1, 1, :Text)');
             $PostQuery->BindValue(':PostId', $PostId, PDO::PARAM_INT);
             $PostQuery->BindValue(':Now', $Timestamp, PDO::PARAM_INT);
             $PostQuery->BindValue(':Text', $aMessage, PDO::PARAM_STR);
             $PostQuery->execute(true);
             // Finish thread
             $ThreadFinishQuery = $Connector->prepare('UPDATE `' . VB3_TABLE_PREFIX . 'thread` ' . 'SET firstpostid = :PostId, lastpostid = :PostId ' . 'WHERE threadid = :ThreadId LIMIT 1');
             $ThreadFinishQuery->BindValue(':ThreadId', $ThreadId, PDO::PARAM_INT);
             $ThreadFinishQuery->BindValue(':PostId', $PostId, PDO::PARAM_INT);
             $ThreadFinishQuery->execute(true);
         } while (!$Connector->commit());
     } catch (PDOException $Exception) {
         $Connector->rollBack();
         throw $Exception;
     }
 }