Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /var/www/mybb-es.com/html/inc/plugins/avatarep.php on line 1102

Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /var/www/mybb-es.com/html/inc/class_language.php on line 201
[Tutorial] Integrar MyBB en un sitio web
Páginas (2): 1 2   
Exponsore   1 Mar, 2011, 10:34 pm
#1
En este thread intentare explicar como integrar funciones básicas de MyBB en tu web.
Aunque voy a explicar lo más que pueda sin extenderme mucho, conocimientos de HTML y PHP pueden ser necesarios. Un conocimiento básico de MyBB ayudaría bastante, aunque realmente espero que no sea necesario.

Antes de empezar a trabajar, definamos nuestro ámbito de trabajo:
  • Tenemos nuestra web en la carpeta raíz del hosting ("public_html" o similar).
  • MyBB se encuentra en una subcarpeta llamada "foro".

Ahora si, empezamos.



=== Necesario para todo tipo de integración ===

Debemos agregar esto al inicio de cada página en la que queramos interactuar con MyBB.
Código PHP:
<?php

define
('IN_MYBB', 1);
require(
"./foro/global.php");

?>

En la primera linea definimos una constante llamada "IN_MYBB". Esto se usa para aumentar la seguridad y es OBLIGATORIO. Si no lo agregas, se mostrara un mensaje de error de parte de MyBB y no cargará la página.
En la segunda linea incluimos el archivo global.php que, resumiendo, carga todos los archivos necesarios para el funcionamiento de MyBB y nos pone a disposición todo las "herramientas internas" (No se me ocurre otro nombre :p).



=== Integrando el logueo de usuario ===

En esta parte integraremos el sistema de identificación.

Cita:NOTA:

Antes que nada ve al Panel de Administración -> Configuraciones -> Configuración General -> Busca: Cookie Path.

Siguiendo con la estructura básica de carpetas que definimos arriba, tendrías que tener este contenido:
Código:
/foro/
Reemplazalo por esto:
Código:
/

Si no realizas este cambio, el sistema no detectará si el usuario esta identificado correctamente.

Lo primero que usaremos es un pequeño código para detectar si el usuario se encuentra identificado o no. Gracias a MyBB esto es muy facil de realizar:
Código PHP:
<?php

if($mybb->user['uid'] != 0)
{
?>
Gracias por visitarnos, <?php echo $mybb->user['username']; ?>!
<?php
}
else
{
?>
Registrate y aprovecha de lo nuestro! :)
<?php
}

?>
Lo que hacemos es mostrar, si el UserID es desigual a 0 (Siendo cero el que se le otorga a los invitados) un mensaje de binvenida al usuario.
Caso contrario, mostramos un mensaje incitando al usuario a que se registre.

Algunos datos extras que podemos mostrar son:
  • Email: $mybb->user['email'];
  • Cantidad de posts: $mybb->user['postnum'];
  • Avatar: $mybb->user['avatar'];
  • Titulo de usuario: $mybb->user['usertitle'];
  • Sitio web: $mybb->user['website'];
  • MSN Messenger: $mybb->user['msn'];

Bien. Ahora, si el usuario no se encuentra identificado, mostramos el siguiente formulario:
Código:
<form action="foro/member.php" method="post">
<h1>Login</h1>

<label for="username">Nombre de usuario: </label>
<input type="text" name="username" value="" /></td>

<br />

<label for="password">Contrase&ntilde;a: </label>
<input type="password" name="password" value="" />

<br />

<label title="Si se selecciona, las credenciales de acceso ser&aacute;n recordadas en esta computadora."><input type="checkbox" class="checkbox" name="remember" checked="checked" value="yes" /> Recordarme</label>

<input type="submit" class="button" name="submit" value="Login" />
<input type="hidden" name="action" value="do_login" />
<input type="hidden" name="url" value="http://tu-super-web.com/" />
</form>
Con conocimientos básicos de HTML sabrás que es lo que hace el formulario. Lo único específico de MyBB es el último campo (llamado url). El valor de este campo debe ser la página a la que quieres que MyBB redirija al usuario despues de haberlo identificado.

Y ya terminamos. El archivo completo sería este:
Código PHP:
<?php

define
('IN_MYBB', 1);
require(
"./foro/global.php");

if(
$mybb->user['uid'] != 0)
{
?>
<?php if($mybb->user['avatar'] != '') : ?><img src="<?php echo $mybb->user['avatar']; ?>" /><br /><?php endif; ?>
<?php echo $mybb->user['username']; ?> (<?php echo $mybb->user['postnum']; ?> posts)
<?php
}
else
{
?>
<form action="foro/member.php" method="post">
<h1>Login</h1>

<label for="username">Nombre de usuario: </label>
<input type="text" name="username" value="" /></td>

<br />

<label for="password">Contrase&ntilde;a: </label>
<input type="password" name="password" value="" />

<br />

<label title="Si se selecciona, las credenciales de acceso ser&aacute;n recordadas en esta computadora."><input type="checkbox" class="checkbox" name="remember" checked="checked" value="yes" /> Recordarme</label>

<input type="submit" class="button" name="submit" value="Login" />
<input type="hidden" name="action" value="do_login" />
<input type="hidden" name="url" value="http://tu-super-web.com/" />
</form>
<?php
}

?>

Solo tengo que aclarar que, si se esta identificado se muestran unos datos extra:
  • La cantidad de posts
  • El avatar, si es que el usuario tiene uno.

Creditos: Santiago - MyBBHispano
Última modificación: 1 Mar, 2011, 10:37 pm por Balda.
wsoulrc   2 Mar, 2011, 2:54 am
#2
muchas gracias, aun que prefiero usar mi propio código, para no tener problemas con mybb (por funciones duplicadas, o mas cosas)

Tongue pero realmente esto le va a ser de gran utilidad a la gente Tongue
Gypaete   7 Mar, 2011, 8:31 am
#3
Ese método lo estoy utilizando para mi MangaOnline de SekaiManga Tongue
PkPedro   8 Mar, 2011, 8:45 pm
#4
Grandioso aporte Big Grin podrías agregarle otra cosa como ''Desconectarse''.

PD: al parecer afecta al panel de admin, te loggeas en el acp y cuando intentas acceder a una opcion del ACP te vuelve a pedir identificarte .-.
Última modificación: 9 Mar, 2011, 7:26 pm por ikary!.
PkPedro   11 Mar, 2011, 4:00 pm
#5
al parecer afecta al panel de admin, te loggeas en el acp y cuando intentas acceder a una opcion del ACP te vuelve a pedir identificarte .-.

Perdonen el doble post Confused
Exponsore   11 Mar, 2011, 7:02 pm
#6
Estas equivocado; aquí se integra mybb a tu web, no hay ninguna modificación a el mismo MyBB.
PkPedro   12 Mar, 2011, 10:39 am
#7
Te lo digo en serio, supongo este se debe al cambio de la cookie path, ahora ya ni puedo hacer nada en el panel de admin -.- te recomiendo lo cheques por ti mismo.

He agregado una imagen con el error, pon atención a la URL para que te des cuenta de que es un error.
Última modificación: 12 Mar, 2011, 10:46 am por ikary!.
NecroHunter   12 Mar, 2011, 11:02 am
#8
(12 Mar, 2011, 10:39 am)PkPedro escribió: Te lo digo en serio, supongo este se debe al cambio de la cookie path, ahora ya ni puedo hacer nada en el panel de admin -.- te recomiendo lo cheques por ti mismo.

He agregado una imagen con el error, pon atención a la URL para que te des cuenta de que es un error.

Y entonces porque no cambias la dirección de las cookies? si estás tan seguro...
PkPedro   12 Mar, 2011, 11:31 am
#9
Como lo hago si el ACP no me deja hacer nada? T_T
Última modificación: 12 Mar, 2011, 11:31 am por ikary!.
NecroHunter   12 Mar, 2011, 11:37 am
#10
Desde el config.php -.-
Páginas (2): 1 2   
  
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.