summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoruckelman <uckelman@nomic.net>2010-03-24 19:48:42 +0000
committeruckelman <uckelman@nomic.net>2010-03-24 19:48:42 +0000
commit202da8020dc63cc0f12fb782ba7deb618029ca3b (patch)
tree825509fa59d1ca6152f53ea3c5635a426e616513
parent3b888ef4cddf97d2f51953b4dd33e1d35eb02930 (diff)
Added get_topic_id().
git-svn-id: https://vassalengine.svn.sourceforge.net/svnroot/vassalengine/site-src/trunk@6630 67b53d14-2c14-4ace-a08f-0dab2b34000c
-rw-r--r--src/PhpBB3Lib.php19
-rw-r--r--test/PhpBB3LibTest.php16
2 files changed, 35 insertions, 0 deletions
diff --git a/src/PhpBB3Lib.php b/src/PhpBB3Lib.php
index 874591c..ccaa527 100644
--- a/src/PhpBB3Lib.php
+++ b/src/PhpBB3Lib.php
@@ -42,4 +42,23 @@ function get_user_name($id) {
return $names[$id];
}
+function get_topic_id($post_id) {
+ global $db;
+
+// FIXME: should get topic_id, forum_id at the same time
+ $sql = 'SELECT topic_id FROM ' . POSTS_TABLE .
+ ' WHERE post_id = "' . $db->sql_escape($post_id) . '"';
+
+ $result = $db->sql_query($sql);
+// FIXME: what to do if more than one row is returned?
+ $row = $db->sql_fetchrow($result);
+ $db->sql_freeresult($result);
+
+ if (!$row) {
+ trigger_error("Unknown post id: $post_id", E_USER_ERROR);
+ }
+
+ return $row['topic_id'];
+}
+
?>
diff --git a/test/PhpBB3LibTest.php b/test/PhpBB3LibTest.php
index 76e5bdc..22f6e0e 100644
--- a/test/PhpBB3LibTest.php
+++ b/test/PhpBB3LibTest.php
@@ -63,4 +63,20 @@ EOF;
array(2, 'admin', null )
);
}
+
+ /**
+ * @dataProvider provider_get_topic_id
+ */
+ public function test_get_topic_id($post_id, $expected, $ex) {
+ if ($ex) $this->setExpectedException($ex);
+ $run = 'get_topic_id(' . $post_id . ')';
+ $this->assertEquals($expected, $this->exec_kludge($run));
+ }
+
+ public function provider_get_topic_id() {
+ return array(
+ array(0, null, 'PHPUnit_Framework_Error'),
+ array(2, 2, null )
+ );
+ }
}