Difference between revisions of "PhpBB integration"

From Mibbit Wiki
Jump to: navigation, search
(this page must be verified, destroyed by vandalism)
m (removed synirc)
 
(11 intermediate revisions by 5 users not shown)
Line 1: Line 1:
(this page must be verified, destroyed by vandalism)
+
{{Wikify|date=December 2009}}
  
 
This MOD for [http://www.phpbb.com/ phpBB2/phpBB3]  uses username as the nickname for the user. However a Guest nickname is used if the nickname contains characters that are not valid within IRC.
 
This MOD for [http://www.phpbb.com/ phpBB2/phpBB3]  uses username as the nickname for the user. However a Guest nickname is used if the nickname contains characters that are not valid within IRC.
  
 +
==phpBB2 Integration==
 +
===Editing templates/subSilver/overall_header.php===
  
====
+
<code><pre style="width:90%;max-height:300px;overflow:auto">FIND
<td height="25" align="center" valign="top" nowrap="nowrap"><span class="mainmenu">&amp;nbsp;<a href="{U_PROFILE}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_profile.gif" width="12" height="13" border="0" alt="{L_PROFILE}" hspace="3" />{L_PROFILE}</a>&amp;nbsp; &amp;nbsp;<a href="{U_PRIVATEMSGS}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_message.gif" width="12" height="13" border="0" alt="{PRIVATE_MESSAGE_INFO}" hspace="3" />{PRIVATE_MESSAGE_INFO}</a>&amp;nbsp; &amp;nbsp;<a href="{U_LOGIN_LOGOUT}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_login.gif" width="12" height="13" border="0" alt="{L_LOGIN_LOGOUT}" hspace="3" />{L_LOGIN_LOGOUT}</a>&amp;nbsp;</span></td>
 
 
 
INLINE, FIND
 
============
 
&amp;nbsp;<a href="{U_PROFILE}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_profile.gif" width="12" height="13" border="0" alt="{L_PROFILE}" hspace="3" />{L_PROFILE}</a>&amp;nbsp;
 
 
 
INLINE, BEFORE ADD
 
==================
 
&amp;nbsp;<a href="mibbit.php" class="mainmenu" onclick="window.open('mibbit.php','mibbit','width=500,innerwidth=500,height=400,innerheight=400,location=0,menubar=0,scrollbars=0,status=0,toolbar=0');return false">IRC</a>&amp;nbsp;
 
</pre></code>
 
 
 
 
===mibbit.php===
 
===mibbit.php===
 
This file goes to the root of your phpBB installation. Remember to change the channel and server!
 
This file goes to the root of your phpBB installation. Remember to change the channel and server!
Line 62: Line 53:
 
}
 
}
  
$uri = 'http://embed.mibbit.com/?nick='.$nickname
+
$uri = 'http://widget.mibbit.com/?nick='.$nickname
 
.'&amp;chatOutputShowTimes=true'
 
.'&amp;chatOutputShowTimes=true'
.'&amp;server=irc.freenode.net:6667' // replace server and port with matching information
+
.'&amp;server=irc.server.net:6667' // replace irc.server.net and 6667 (port) with matching information
.'&amp;channel=%23channel'; // replace channel with the name of your channel
+
.'&amp;channel=%23yourChan'; // replace yourChan with the name of your channel
  
 
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Line 146: Line 137:
 
}
 
}
  
$uri = 'http://embed.mibbit.com/?nick='.$nickname
+
$uri = 'http://widget.mibbit.com/?nick='.$nickname
        .'&chatOutputShowTimes=true'
+
         .'&server=irc.sorcery.net%3A6667' // replace server and port with matching information
         .'&server=irc.sorcery.net:6667' // replace server and port with matching information
 
        .'&chatOutputShowTimes=true'
 
        .'&needSendButton=false'
 
        .'&userListFontSize=12'
 
 
         .'&noServerTab=false'
 
         .'&noServerTab=false'
 
         .'&channel=%23chat'; // replace channel with the name of your channel. '%23' is the '#' before most irc channel names.
 
         .'&channel=%23chat'; // replace channel with the name of your channel. '%23' is the '#' before most irc channel names.
Line 167: Line 154:
 
   <body>
 
   <body>
 
     <iframe src="<?php echo $uri; ?>" frameborder="0"><h1><a href="<?php echo $uri; ?>">Open IRC channel</a></h1></iframe>
 
     <iframe src="<?php echo $uri; ?>" frameborder="0"><h1><a href="<?php echo $uri; ?>">Open IRC channel</a></h1></iframe>
  </body>
 
</html></code>
 
  
<h1><a href="<?php echo $uri; ?>">Open IRC channel</a></h1></iframe>
+
<h1><a href="<?php echo $uri; ?>">Open IRC channel</a></h1>
 
</body>
 
</body>
 
</html>
 
</html>
Line 188: Line 173:
  
 
<code><nowiki>$nickname = is_valid_nickname($userdata['irc_nickname']) ? $userdata['irc_nickname'] : $userdata['username'];</nowiki></code>
 
<code><nowiki>$nickname = is_valid_nickname($userdata['irc_nickname']) ? $userdata['irc_nickname'] : $userdata['username'];</nowiki></code>
 +
 +
[[Category:How To]]
 +
[[Category:Code]]
 +
{{DEFAULTSORT:Phpbb Integration}}

Latest revision as of 16:58, 10 March 2010


This MOD for phpBB2/phpBB3 uses username as the nickname for the user. However a Guest nickname is used if the nickname contains characters that are not valid within IRC.

phpBB2 Integration

Editing templates/subSilver/overall_header.php

FIND
===mibbit.php===
This file goes to the root of your phpBB installation. Remember to change the channel and server!

<code><pre style="width:90%;max-height:300px;overflow:auto"><?php

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//

function is_valid_nickname($nickname)
{
	if($nickname != '')
	{
		for($i = 0, $maxi = strlen($nickname); $i < $maxi; $i++)
		{
			$code = ord($nickname[$i]);
			if( !(($i > 0 && ( $code == 45 || ($code >= 48 && $code <= 57) )) || ($code >= 65 && $code <= 125)) ) break;
		}
		return ($i == $maxi);
	}
}

if($userdata['session_logged_in'])
{
	$nickname = is_valid_nickname($userdata['username']) ? $userdata['username'] : '';
}
else
{
	$nickname = '';
}

if( !is_valid_nickname($nickname) )
{
	$nickname = 'Guest_'.chr(mt_rand(65, 90)).chr(mt_rand(97, 122)).chr(mt_rand(97, 122));
}

$uri = 'http://widget.mibbit.com/?nick='.$nickname
	.'&chatOutputShowTimes=true'
	.'&server=irc.server.net:6667' // replace irc.server.net and 6667 (port) with matching information
	.'&channel=%23yourChan'; // replace yourChan with the name of your channel

?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<title>IRC</title>
		<meta http-equiv="content-type" content="text/html; charset=utf-8">
		<style type="text/css">
html,body,iframe { border: 0; height: 100%; margin: 0; overflow: hidden; padding: 0; }
iframe { height: 100%; width: 100%; }
		</style>
	</head>
	<body>
		<iframe src="<?php echo $uri; ?>" frameborder="0"><h1><a href="<?php echo $uri; ?>">Open IRC channel</a></h1></iframe>
	</body>
</html>


phpBB3 Integration

Editing styles/subsilver2/template/overall_header.php

FIND
====
<!-- IF S_USER_LOGGED_IN -->   <a href="{U_PROFILE}"><img src="{T_THEME_PATH}/images/icon_mini_profile.gif" width="12" height="13" alt="*" /> {L_PROFILE}</a><!-- ENDIF -->

INLINE, BEFORE ADD
==================
<!-- IF S_USER_LOGGED_IN -->   <a href="mibbit.php">IRC</a><!-- ENDIF -->


mibbit.php

<?php

$phpEx = 'php'; // Added to define the variable as the appropriate extension, no extension.inc file in phpBB3
define('IN_PHPBB', true);
$phpbb_root_path = '/rootpath/directory/'; // set this as the path to your phpBB installation
// include($phpbb_root_path . 'extension.inc'); // This is no longer valid. phpBB3 no longer utilizes extension.inc
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'includes/functions_user.'.$phpEx);


//
// Start session management
//
$user->session_begin();
$auth->acl($user->data);
$userdata = $user->data;

//
// End session management
//

function is_valid_nickname($nickname)
{
        if($nickname != '')
        {
                for($i = 0, $maxi = strlen($nickname); $i < $maxi; $i++)
                {
                        $code = ord($nickname[$i]);
                        if( !(($i > 0 && ( $code == 45 || ($code >= 48 && $code <= 57) )) || ($code >= 65 && $code <= 125)) ) break;
                }
                return ($i == $maxi);
        }
}

if($user->data['user_id'] != ANONYMOUS)
{
        $nickname = is_valid_nickname($user->data['username']) ? $user->data['username'] : '';
}
else
{
        $nickname = '';
}

if( !is_valid_nickname($nickname) )
{
        $nickname = 'CoTGuest_'.chr(mt_rand(65, 90)).chr(mt_rand(97, 122)).chr(mt_rand(97, 122));
}

$uri = 'http://widget.mibbit.com/?nick='.$nickname
        .'&server=irc.sorcery.net%3A6667' // replace server and port with matching information
        .'&noServerTab=false'
        .'&channel=%23chat'; // replace channel with the name of your channel. '%23' is the '#' before most irc channel names.

?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
   <head>
        <title>IRC</title>
        <meta http-equiv="content-type" content="text/html; charset=utf-8">
        <style type="text/css">
                html,body,iframe { border: 0; height: 100%; margin: 0; overflow: hidden; padding: 0; }
                iframe { height: 100%; width: 100%; }
        </style>
   </head>
   <body>
     <iframe src="<?php echo $uri; ?>" frameborder="0"><h1><a href="<?php echo $uri; ?>">Open IRC channel</a></h1></iframe>

<h1><a href="<?php echo $uri; ?>">Open IRC channel</a></h1>
	</body>
</html>

Customizing

If you add a new profile field or already have a MOD in your forum that allows you to use a valid IRC nickname, you may easily modify the nickname line:

$nickname = is_valid_nickname($userdata['username']) ? $userdata['username'] : '';

To:

$nickname = is_valid_nickname($userdata['username']) ? $userdata['username'] : $userdata['irc_nickname'];

Where 'irc_nickname' is the name of the profile field. You may also switch things around if you prefer IRC nickname over the forum username:

$nickname = is_valid_nickname($userdata['irc_nickname']) ? $userdata['irc_nickname'] : $userdata['username'];