summaryrefslogtreecommitdiff
path: root/src/PhpBB3.php
diff options
context:
space:
mode:
authoruckelman <uckelman@nomic.net>2010-04-11 13:55:10 +0000
committeruckelman <uckelman@nomic.net>2010-04-11 13:55:10 +0000
commit386872f4367e9dedb5664839d451f956626d6a80 (patch)
tree43bbc8e5c842686e77de5365d077535e84cd224b /src/PhpBB3.php
parenteec95b8ff65316efd6b294898cf752fbfeb81e79 (diff)
Refactoring to make PhpBB object.
git-svn-id: https://vassalengine.svn.sourceforge.net/svnroot/vassalengine/site-src/trunk@6645 67b53d14-2c14-4ace-a08f-0dab2b34000c
Diffstat (limited to 'src/PhpBB3.php')
-rw-r--r--src/PhpBB3.php74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/PhpBB3.php b/src/PhpBB3.php
new file mode 100644
index 0000000..d8b9ba4
--- /dev/null
+++ b/src/PhpBB3.php
@@ -0,0 +1,74 @@
+<?php
+
+# phpBB setup
+define('IN_PHPBB', true);
+require_once(__DIR__ . '/PhpBB3Conf.php');
+$phpEx = substr(strrchr(__FILE__, '.'), 1);
+require_once($phpbb_root_path . 'common.' . $phpEx);
+require_once($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
+require_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
+
+class PhpBB3 {
+ public function __construct() {
+ }
+
+ public function getUserId($from) {
+ global $db;
+
+ $sql = 'SELECT user_id FROM ' . USERS_TABLE .
+ ' WHERE user_email = "' . $db->sql_escape($from) . '"';
+
+ $row = $this->get_exactly_one_row($sql);
+ return $row['user_id'];
+ }
+
+ public function getUserName($id) {
+ # NB: user_get_id_name is pass-by-reference; we copy $id to prevent
+ # it from being modified, as we might need it for error messages
+ $ids = array($id);
+ $err = user_get_id_name($ids, $names);
+ if ($err) {
+ trigger_error("Could not resolve user id $id: $err", E_USER_ERROR);
+ }
+
+ if (!array_key_exists($id, $names)) {
+ trigger_error("Unknown user id: $id", E_USER_ERROR);
+ }
+
+ return $names[$id];
+ }
+
+ public function getTopicAndForumIds($post_id) {
+ global $db;
+
+ $sql = 'SELECT topic_id, forum_id FROM ' . POSTS_TABLE .
+ ' WHERE post_id = "' . $db->sql_escape($post_id) . '"';
+
+ $row = get_exactly_one_row($sql);
+ return $row;
+ }
+
+ protected function get_exactly_one_row($sql) {
+ global $db;
+
+ $result = $db->sql_query($sql);
+
+ $rows = $db->sql_fetchrowset($result);
+ $db->sql_freeresult($result);
+
+ switch (count($rows)) {
+ case 0:
+ trigger_error("No rows returned: $sql", E_USER_ERROR);
+ break;
+
+ case 1:
+ return $rows[0];
+
+ default:
+ trigger_error("Too many rows returned: $sql", E_USER_ERROR);
+ break;
+ }
+ }
+}
+
+?>