[Hack] Chat integrado con vBulletin 3.5

dbembibre Seguir

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
30 Sep 2004
Mensajes
453
No es un hack mío auque lo he tenido que modificar para que funcione.

Ventajas
-Se integra con los permisos del foro
-No está alojado en tu servidor


*Tiempo de inegración: 30 minutos

1- Vete a esta dirección web https://www.userplane.com/buy/
Elije las siguientes opciones "Plugin"->Selecciona vBulletin->Presiona Choose
Elije Free (Gratis) y sigue el resto de opciones es un proceso de registro normal


Una vez tengas todo funcionando, ya estás listo para integrarlo.

Crea este archivo PHP y llámalo chat.php

PHP:
<?php

############################################################### VBULLETIN CONFIG
define('THIS_SCRIPT','webchat_instant');
$globaltemplates = array('GENERIC_SHELL');
$phrasegroups = array();
$specialtemplates = array();
$actiontemplates = array();
require_once('./global.php');

# Userplane Instant Webchat Addon version 1.2.0 for vBulletin 3.0.x + 3.5.x
# All associated content copyright 2005, by the author
# Added: 2005-08-04 - http://www.vbulletin.org/forum/member.php?u=56130

# once edited, this file have to be installed in your vBulletin directory.

################################################################ SETUP USERPLANE

# edit this line and enter the domainID you received to setup your installation
$wcii['domainID']		= 'el dominio con el que te registras (normalmente tu nombre de usuario)';

# edit this line by listing the usergroups you want to give access to.
# the defaults are Admins(6), Moderators(7) and Registered users(2).
# you have to enter the usergroup IDs, seperated with a comma.
# nota: to give access to ALL users, just keep the settings empty like this:
# $wcii['usergroups']		= '';
# remember, Guests are usergroup == 1;
$wcii['usergroups']		= '2,6,7';

# edit this setting (TRUE/FALSE) if you want to use Login Form from userplane(TRUE),
# with no possibility of using the real username of the members.
# this feature is slower, may bring some timeouts, but will load more features in the future.
$wcii['serverside']		= FALSE;

# edit this setting (TRUE/FALSE) if you want the members
# to be forced to use their own username to access the Chat.
# Guests will be forced to choose a username anyway - if you enable guests to access the chat!
# this feature is not activated if you use the serverside option.
$wcii['force_username']	= TRUE;

# edit this line to change the title of your webchat page.
$wcii['text_title']		= 'The Chatroom';

# edit these lines if you want to change the texts displayed in the page itself.
$wcii['text_launch']	= 'Launch the Chatroom';

$wcii['text_noaccess']	= 'Sorry, you don\'t have the permission to access the Webchat at this moment.  You have to register and subscribe to one of our plans or request to join a usergroup to be able to chat.';

$wcii['text_welcome']	= 'Welcome to our Chatroom.  This place is your access to our webchat.  Please enter your username, or a nick you wish to use online - The administrators may have forced the system to use your real username, so you may not be able to edit yours.  Click to "'.$wcii['text_launch'].'" will open a popup window that will give you access to our chatroom.';

################################################################## NO MORE EDITS

# codes in next 3 lines makes the script compatible with vBulletin 3.0 AND 3.5
$sessionid = isset($vbulletin) ? $vbulletin->session->vars['sessionurl'] : $session['sessionurl'];
$userinfo = isset($vbulletin) ? $vbulletin->userinfo : $bbuserinfo;
$isadmin = isset($vbulletin) ? ($vbulletin->userinfo['permissions']['adminpermissions'] & $vbulletin->bf_ugp_adminpermissions['cancontrolpanel']) : ($bbuserinfo['permissions']['adminpermissions'] & CANCONTROLPANEL);
$adminlink = ($isadmin) ? ' &raquo; <a href="http://www.userplane.com/chatlite/" target="_userplane" title="http://www.userplane.com/chatlite/">  Userplane Admin </a>' : '';

$canaccess = ($wcii['usergroups'] == '' OR userplane_can_x_access_wc($wcii['usergroups'], $userinfo)) ? TRUE : FALSE;

if(!$canaccess AND !$isadmin)
{
	eval(standard_error($wcii['text_noaccess'], FALSE, FALSE));
}

$HTML .= '<script type="text/javascript">
	function eraseValue( field ){ field.value = \'\'; }

	function openWebchatWindow( myForm )
	{
		uName =  myForm.username.value;
		companyID =  myForm.companyID.value;
		validName = false;
		if ( uName != \'\' && uName != \' Your name...\')
		{
			validName = true;
		}
		if (validName)
		{
			var cleanedUpName = cleanupUsername( uName )
			if( cleanedUpName == \'\' )
			{
				alert("You can only enter characters and numbers");
			}
			else
			{
				var xOffSet = (screen.width - 225) / 2;
				var yOffSet = (screen.height - 500) / 2;
				var features = \'width=738,height=550",toolbar=0,directories=0,menubar=0,status=0,location=0,scrollbars=0,resizable=1\';
				var winName = "Userplane_Chatlite_" + replaceAlpha( companyID );
				var theURL = \'http://apps.userplane.com/chatlite/chat.cfm?name=\' + cleanedUpName + \'&domainID=\' + companyID;
				myWin = window.open(theURL,winName,features);
			}
		}
		else
		{
			alert("You must enter a username.");
		}
		return false;
	}

	function replaceAlpha( strIn )
	{
		var strOut = "";
		for( var i = 0 ; i < strIn.length ; i++ )
		{
			var cChar = strIn.charAt(i);
			if( ( cChar >= \'A\' && cChar <= \'Z\' )
				|| ( cChar >= \'a\' && cChar <= \'z\' )
				|| ( cChar >= \'0\' && cChar <= \'9\' ) )
			{
				strOut += cChar;
			}
			else
			{
				strOut += "_";
			}
		}
		return strOut;
	}

	function cleanupUsername( strIn )
	{
		var strOut = "";
		for( var i = 0 ; i < strIn.length ; i++ )
		{
			var cChar = strIn.charAt(i);
			if( ( cChar >= \'A\' && cChar <= \'Z\' )
				|| ( cChar >= \'a\' && cChar <= \'z\' )
				|| ( cChar >= \'0\' && cChar <= \'9\' )
				|| cChar == \' \' )
			{
				strOut += cChar;
			}
		}
		return strOut;
	}
	</script> 
<!-- main page contents -->
<form action="" method="get" name="" target="_blank" onsubmit="return openWebchatWindow(this);">
	<input type="hidden" name="companyID" value="'.$wcii['domainID'].'" />
	<table class="tborder" cellpadding="'.$stylevar['cellpadding'].'" cellspacing="'.$stylevar['cellspacing'].'" border="0" width="100%" align="center">
		<tr>
			<td class="tcat" colspan="2">
				'.$wcii['text_title'].$adminlink.' 
			</td>
		</tr>
		<tr>
			<td class="panelsurround" align="center">
				<div class="panel">
					<div style="width:480px" align="left">
						<fieldset class="fieldset">
							<legend>
								'.$wcii['text_launch'].' 
							</legend>
							<table cellpadding="0" cellspacing="3" border="0">
								<tr>
									<td>
										'.$wcii['text_welcome'].' 
									</td>
								</tr>
								<tr>
									<td align="center">
										<br />
										';

if($wcii['serverside'])
{
	$HTML .= '<script src="http://www.userplane.com/chatlite/userplane/chatlite.cfm?domainID='.$wcii['domainID'].'" type="text/javascript"></script>';
}
else
{
	if($userinfo['userid'])
	{
		$readonly = ($wcii['force_username']) ? 'readonly="readonly" style="background: #fffff1;color:gray;"' : '';
		$HTML .= '<input class="bginput" name="username" type="text" value="'.$userinfo['username'].'" '.$readonly.' />';
	}
	else
	{
		$HTML .= '<input class="bginput" name="username" type="text" value=" Your name..." onfocus="eraseValue(this)" />';
	}
	$HTML .= ' <input name="submit" type="submit" class="button" value="'.$wcii['text_launch'].'" /></form>';
}
$HTML .='</td>
</tr>
</table>
</fieldset>
</div>
</div>
<div style="font-weight:bold;padding:5px;">
	<a href="http://www.userplane.com/webchat/" target="_blank" style="color: #FF7700;">Webchat</a> by <span style="color:green;">±</span><a href="http://www.userplane.com/" target="_blank" style="color: #FF7700;">Userplane</a>
</div>
</td>
</tr>
</table>
<!-- / main page contents -->
'; 

# Build the Navbar and Display the Page
$navbits = construct_navbits(array('webchat_instant.php?'.$sessionid => $wcii['text_title']));
eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('GENERIC_SHELL') . '");');


####################################################################### FUNCTION
# will verify if the actual user is enabled the access to the Webchat(wc)
function userplane_can_x_access_wc(&$usergroups, &$userinfo) {
	$allowed = explode(",", $usergroups);
	foreach ($allowed as $allow)
	{
		if (is_member_of($userinfo, $allow))
		{
			return TRUE;
		}
	}
	return FALSE;
}

?>

Panel de Admin->Administrador de Estilos[tu estilo]->Editar plantillas->Navbar

Busca:
Insertar CODE, HTML o PHP:
<td class="vbmenu_control"><a href="calendar.php?$session[sessionurl_q]">$vbphrase[calendar]</a></td>

Reemplaza con:
Insertar CODE, HTML o PHP:
<td class="vbmenu_control"><a href="chat.php?$session[sessionurl_q]">Chat</a></td>


Resultado de la integración en los adjuntos:
 

karrerax

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
13 Abr 2005
Mensajes
90
me parece buenisimo este char, enhorabuena por el trabajo. Eres un Master :) Como tengo user en tu web me he dignado a provarlo y me surge una duda.

Es posible integralo en una página del Foro y no en una nueva ventana?

Saludos
 

karrerax

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
13 Abr 2005
Mensajes
90
dbembibre dijo:
Si que puedes hacerlo pero tendrás que hacerlo con un <IFRAME>

Una pregunta que queria hacerte sobre este tema:
Si un user se conecta al chat y desloguea de la Web principal cuenta como usuario activo? Decia lo de integrarlo en la web precisamente pro eso, para que haya más movida de meimros.

PD: ayer hice mi record de users online (ridiculo comparado con tu web xD) 83 tios a la vez.
 

dbembibre

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
30 Sep 2004
Mensajes
453
karrerax dijo:
Una pregunta que queria hacerte sobre este tema:
Si un user se conecta al chat y desloguea de la Web principal cuenta como usuario activo? Decia lo de integrarlo en la web precisamente pro eso, para que haya más movida de meimros.

PD: ayer hice mi record de users online (ridiculo comparado con tu web xD) 83 tios a la vez.

Realmente no es posible porque tienes que logarte en el foro para poder entrar al chat, si te deslogueas no entras, lo que tu dices creo que sería posible, pero vamos lo monte ayer y aun no lo he probado.
Si lo que quieres es que aparezca más gente conectada vete al panel de administración y aunmenta el cookie timeout de 900 segundos (15 minutos) a más para que la gente que se desconecta permanezca como conectada durante más tiempo.
Tu tranquilo que las webs tardan tiempo en crecer. ;)
 

Trovador

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
3 Feb 2004
Mensajes
381
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Gran info tio, te has lucido era justamente algo que buscaba.

Un Saludo!!

Editado: Me he registrado y debo esperar a que me validen la cuenta, ha pasado unas horas y no me ha llegado suelen tardar?? una vez esto tengo una duda, al entrar entras directamente a la sala de tu web o a una general y tienes k darle al boton para entrar en la sala de la web??

Saludos
 

seowebmartin

Gamma
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
15 Ene 2011
Mensajes
240
Que diferencia hay entre el gratuito y el pago?.

yo no se ingles por eso pregunto, no es que no quiera leer.

:D
 

dbembibre

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
30 Sep 2004
Mensajes
453
tranceup dijo:
Que diferencia hay entre el gratuito y el pago?.

yo no se ingles por eso pregunto, no es que no quiera leer.

:D

Pues si te digo la verdad no lo he mirado mucho pero el primero que hay de pago soporta de 0 a 5.000 usuarios concurrentes lo que quiere decir que son ultra potentes, para nosotros y lo que queremos el gratis es más que suficiente.
Decirles que hay más chats disponibles como RealChat, FlashChat (solo vale $5 dólares) y vbChat de Zero Tolerance (un coder de vBulletin.org)

Trovador dijo:
Gran info tio, te has lucido era justamente algo que buscaba.

Un Saludo!!

Editado: Me he registrado y debo esperar a que me validen la cuenta, ha pasado unas horas y no me ha llegado suelen tardar?? una vez esto tengo una duda, al entrar entras directamente a la sala de tu web o a una general y tienes k darle al boton para entrar en la sala de la web??

Saludos

A mi me llego al poco el mensaje así que valida que la cuenta es válida, y da una cuenta buena, ya sabes que no sea de hotmail y porquerías similares ya que sufren microcortes durante todo el día y pierden correos
 
P

papu

Holas, bueno quisiera ver si son tan amables de explicar como ago el chat.

una ves que me registro que ago ? :S no entiendonada :p soy prinsipiante en esto y me gustaria probarlo
 

coleccionocromo

Delta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
8 Abr 2005
Mensajes
589
dbembibre este chat utiliza canales de paginas de chat? o solo podrán entrar los usuarios del foro?

SaludoS
 

dbembibre

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
30 Sep 2004
Mensajes
453
coleccionocromo dijo:
dbembibre este chat utiliza canales de paginas de chat? o solo podrán entrar los usuarios del foro?

SaludoS

Depende de como lo configures pero puedes configurarlo para que solo accedan aquellos grupos que tu quieras desde el foro
 

coleccionocromo

Delta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
8 Abr 2005
Mensajes
589
Gracias dbembibre acabo de probarlo y si,puedes poner los grupos que quieras que accedan al foro pero se pueden cambiar el nick y no me parece bien,tuve mala experiencia con un chat parecido a este.

Saludos y gracias
 

Firefox_100

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
25 Sep 2005
Mensajes
30
dbembibre dijo:
Depende de como lo configures pero puedes configurarlo para que solo accedan aquellos grupos que tu quieras desde el foro

Una consulta, podria configurarlo para que tambien ingresen usuarios sin registrarse???

Me interesa usarlo con los visitantes no registrados, para brindarles ayuda antes de inscribirse. :confused:
 

Rgo

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
26 Feb 2006
Mensajes
2
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
No logro ponerlo, please ayuda, me dice que

"Your session has expired. Please login to the el dominio con el que te registras (normalmente tu nombre de usuario) Userplane again to continue chatting."

trato una y otra vez, please ayuda.. :(
 
I

imported_joaco

Rgo dijo:
No logro ponerlo, please ayuda, me dice que

"Your session has expired. Please login to the el dominio con el que te registras (normalmente tu nombre de usuario) Userplane again to continue chatting."

trato una y otra vez, please ayuda.. :(

tienes ke entrar en panel de control de tu cuenta de Userplane, y hacer click en el boton ke dice webchat script, luego en el cuadro ke está abajo veras el codigo. en la segunda linea dice DomainID, y vas a ver una combinacion de numeros y letras. bueno, ese es tu DomainID. ahora tienes poner ese domainID en el archivo chat.php, en el campo $wcii['domainID'].

espero ke te sirva


 

punkyto

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
13 Mar 2006
Mensajes
3
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Maestro!!!!!!!!!!!! espektakular y tambien puedo hacerle algunas modifikaciones?? :)
 

dbembibre

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
30 Sep 2004
Mensajes
453
Por hacerle puedes modificarlo cuanto quieras mientras no toques la función javascript
 

Minha

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
26 Oct 2005
Mensajes
68
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Ufff hay manera de hacer que los usuarios no puedan cambiar de nick? es decir, que al darle al chat, se abra directamente la ventana, sin posibilidad de cambiarlo...

iré a mirar en la página del chat de todas maneras a vre si encuentro algo :)
 

Minha

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
26 Oct 2005
Mensajes
68
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
ufff que chungo pinta :D:D

7. What is involved in authenticating a user? The getMemberID function is the core of the authentication and security. There are two different ID's that you will need to use;
-memberID [internal identifier in your system for a particular user, usually will not ever change]
-sessionGUID [Global Unique IDentifier, created when you user logs in, will be different every time]
You will need to save this sessionGUID to your database when the user logs in and delete it when they log out. When the app window opens you pass the sessionGUID to us in the HTML, we then pass it back to you in the getMemberID XML function so you can confirm that the user is currently logged in. If the user is logged in you will return the memberID of the particular user, and the app will run. If the sessionGUID cannot be found in your database INVALID is returned and the app will not run


y esto...


3. How can I generate a list of the people using the Webchat? There are two XML calls that facilitate this. The first is onUserConnectionChange, this call lets you know when a user connects to the Webchat or disconnects by sending the appropriate request to your CSXML file. This call alone can be used to generate a list of the users that are currently in the Webchat. if you want to also keep track of what rooms users are in you can listen for the onUerRoomChange call. This call happens whenever a user changes rooms in the Webchat by sending a request to your CSXML file. This by listening to these calls you can store in your DB what users are in the Webchat, how many users are in the Webchat and what rooms these users are in etc. You can then use this info to create a list elsewhere on the site.
 
Arriba