-
Notifications
You must be signed in to change notification settings - Fork 26
phpBB3 library
Category:Library::Community | Category:Library::phpBB | Category:Library::phpBB
[h2]Changelog[/h2] Version 1.0 (05.08.2009): Initial release
[h2]Download[/h2] File:phpbb_library_1.0.zip
[h2]Discussion and support[/h2] [url=http://codeigniter.com/forums/viewthread/125350/]phpBB3 library at codeigniter.com forums[/url]
[h2]Code[/h2] [code]<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
-
CodeIgniter phpBB3 Library
-
CodeIgniter phpBB3 bridge (access phpBB3 user sessions and other functions inside your CodeIgniter applications).
-
@author Tomaž Muraus
-
@version 1.0
-
@link http://www.tomaz-muraus.info */ class Phpbb_library { public $CI; protected $_user;
/**
-
Constructor. */ public function __construct() { if (!isset($this->CI)) { $this->CI =& get_instance(); }
// Set the variables scope global $phpbb_root_path, $phpEx, $user, $auth, $cache, $db, $config, $template, $table_prefix;
define('IN_PHPBB', TRUE); define('FORUM_ROOT_PATH', '/path/to/your/phpbb3/installation/');
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : FORUM_ROOT_PATH; $phpEx = substr(strrchr(FILE, '.'), 1);
// Include needed files include($phpbb_root_path . 'common.' . $phpEx); include($phpbb_root_path . 'config.' . $phpEx); include($phpbb_root_path . 'includes/functions_user.' . $phpEx); include($phpbb_root_path . 'includes/functions_display.' . $phpEx); include($phpbb_root_path . 'includes/functions_privmsgs.' . $phpEx); include($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
// Initialize phpBB user session $user->session_begin(); $auth->acl($user->data); $user->setup();
// Save user data into $_user variable $this->_user = $user; }
/**
- Returns information from the user data array.
- @param string $key Item key.
- @return string/boolean User information on success, FALSE otherwise. */ public function getUserInfo($key) { if (array_key_exists($key, $this->_user->data)) { return $this->_user->data[$key]; } else { return FALSE; } }
/**
- Returns user status.
- @return boolean TRUE is user is logged in, FALSE otherwise. */ public function isLoggedIn() { return $this->_user->data['is_registered']; }
/**
- Checks if the currently logged-in user is an administrator.
- @return boolean TRUE if the currently logged-in user is an administrator, FALSE otherwise. */ public function isAdministrator() { if ($this->isGroupMember('administrators')) { return TRUE; } else { return FALSE; } }
/**
- Checks if the currently logged-in user is a moderator.
- @return boolean TRUE if the currently logged-in user is a moderator, FALSE otherwise. */ public function isModerator() { if ($this->isGroupMember('moderators')) { return TRUE; } else { return FALSE; } }
/**
-
Checks if a user is a member of the given user group.
-
@param string $group Group name in lowercase.
-
@return boolean TRUE if user is a group member, FALSE otherwise. */ public function isGroupMember($group) { $groups = array_map(strtolower, $this->getUserGroupMembership());
if (in_array($group, $groups)) { return TRUE; } else { return FALSE; } }
/**
-
Returns information for a given user.
-
@param int $userId User ID.
-
@return array/boolean Array with user information on success, FALSE otherwise. */ public function getUserById($userId) { global $table_prefix;
$this->CI->db->select('*'); $this->CI->db->from($table_prefix . 'users'); $this->CI->db->where('user_id', $userId); $this->CI->db->limit(1);
$query = $this->CI->db->get();
if ($query->num_rows() == 1) { return $query->row_array(); } else { return FALSE; } }
/**
-
Returns information for a given user.
-
@param string $username User name.
-
@return array/boolean Array with user information on success, FALSE otherwise. */ public function getUserByName($username) { global $table_prefix;
$this->CI->db->select('*'); $this->CI->db->from($table_prefix . 'users'); $this->CI->db->where('username', $username); $this->CI->db->limit(1);
$query = $this->CI->db->get();
if ($query->num_rows() == 1) { return $query->row_array(); } else { return FALSE; } }
/**
-
Returns all user groups.
-
@return array User groups. */ public function getUserGroupMembership() { global $table_prefix;
$userId = $this->_user->data['user_id'];
$this->CI->db->select('g.group_name'); $this->CI->db->from($table_prefix . 'groups g'); $this->CI->db->from($table_prefix . 'user_group u'); $this->CI->db->where('u.user_id', $userId); $this->CI->db->where('u.group_id', 'g.group_id', FALSE);
$query = $this->CI->db->get();
foreach ($query->result_array() as $group) { $groups[] = $group['group_name']; }
return $groups; }
/**
-
Send user a private message.
-
@param int $senderId The sender's user ID.
-
@param string $senderIp The sender's IP address.
-
@param string $senderUsername The sender's username.
-
@param int $recipientId Recipient ID.
-
@param string $subject Message subject.
-
@param string $message Message body.
-
@param boolean $enableSignature Attach user signature?
-
@param boolean $enableBBcode Enable BB code?
-
@param boolean $enableSmilies Enable smiles?
-
@param boolean $enableUrls Enable URLs (automatically wrap URLs in tag)? */ public function sendPrivateMessage($senderId, $senderIp = '127.0.0.1', $senderUsername, $recipientId, $subject, $message, $enableSignature = FALSE, $enableBBcode = TRUE, $enableSmilies = TRUE, $enableUrls = TRUE) { $uid = $bitfield = $options = '';
generate_text_for_storage($message, $uid, $bitfield, $options, $enableBBcode, $enableUrls, $enableSmilies);
$data = array ( 'from_user_id' => $senderId, 'from_user_ip' => $senderIp, 'from_username' => $senderUsername, 'enable_sig' => $enableSignature, 'enable_bbcode' => $enableBBcode, 'enable_smilies' => $enableSmilies, 'enable_urls' => $enableUrls, 'icon_id' => 0, 'bbcode_bitfield' => $bitfield, 'bbcode_uid' => $uid, 'message' => $message, 'address_list' => array('u' => array($recipientId => 'to')) );
submit_pm('post', $subject, $data, FALSE); }
/**
- Add user to group.
- @param int $userId User ID.
- @param int $groupId The user group ID to add user to.
- @param boolean $default If true, will set this group as the default group for the user being added.
- @param boolean $leader If true, user will be a leader of the group.
- @param boolean $pending If true, user needs to be approved before being shown in the group member list.
- @return boolean/string FALSE on success, language string for the relevant error otherwise. */ public function addUserToGroup($userId, $groupId, $default = FALSE, $leader = FALSE, $pending = FALSE) { return group_user_add($groupId, $userId, FALSE, FALSE, $default, $leader, $pending); }
/**
-
Create a new topic (topic will be posted with the currently logged-in user as an author).
-
@param int $forumId The forum ID.
-
@param string $subject Topic subject.
-
@param string $message Topic body.
-
@param boolean $enableSignature Attach user signature?
-
@param boolean $enableBBcode Enable BB code?
-
@param boolean $enableSmilies Enable smiles?
-
@param boolean $enableUrls Enable URLs (automatically wrap URLs in tag)?
-
@return string Topic URL on success, forum URL otherwise. */ public function createNewTopic($forumId, $subject, $message, $enableSignature = FALSE, $enableBBcode = TRUE, $enableSmilies = TRUE, $enableUrls = TRUE) { $poll = $uid = $bitfield = $options = '';
generate_text_for_storage($subject, $uid, $bitfield, $options, false, false, false); generate_text_for_storage($message, $uid, $bitfield, $options, $enableBBcode, $enableUrls, $enableSmilies);
$data = array ( 'forum_id' => $forumId, 'icon_id' => FALSE,
'enable_bbcode' => $enableBBcode, 'enable_smilies' => $enableSmilies, 'enable_urls' => $enableUrls, 'enable_sig' => $enableSignature, 'message' => $message, 'message_md5' => md5($message), 'bbcode_bitfield' => $bitfield, 'bbcode_uid' => $uid, 'post_edit_locked' => 0, 'topic_title' => $subject, 'notify_set' => FALSE, 'notify' => FALSE, 'post_time' => 0, 'forum_name' => '', 'enable_indexing' => TRUE );return submit_post('post', $subject, '', POST_NORMAL, $poll, $data); } }
-
/* End of file phpbb_library.php / / Location: ./application/libraries/phpbb_library.php */[/code]