Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/07/2005, 01:55
Avatar de yoseman
yoseman
 
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 11 meses
Puntos: 5
Permitir que sólo ciertos grupos del foro vean página - phpbb

Bueno este hilo es para responder a rockero666
Cita:
Iniciado por rockero666
hola mi duda es
komo puedo crear una seccion en mi web donde solo puedan entrar ciertos grupos del foro?
En primer lugar te voy a explicar un poco en que consiste el script. Lo primero que hacemos es, como siempre, iniciar sesión phpBB con el fin de poder acceder a los datos de sesión del usuario conectado. En este caso simplemente vamos a usar $userdata['session_logged_in'] que te devuelve un booleano que te informa si el usuario conectado es un nick(por decirlo sin protocolos) y tb usaremos $userdata['user_id'] para 'preguntar' mediante un query SQL por los grupos a los que el usuario pertenece.

Bueno, lo que hacemos básicamente es introducir en un array ($acceso_a_grupos) los grupos a los que permitiremos entrar si el usuario pertenece, luego almacenamos en otro array los grupos a los que el usuario pertenece. Posteriormente recorremos el array de los grupos a los que pertence el usuario y si hay alguna coincidencia con los grupos a los que se permite entrar daremos paso.

Poco más o menos es eso. Si sabes php lo entenderás enseguida :)

Código PHP:
<? 
$volver
="/index1.php"
define('IN_PHPBB'true); 
$phpbb_root_path ''//PATH DEL FORO RESPECTO DEL SCRIPT 
if (!function_exists("init_userprefs")) 

    include(
$phpbb_root_path 'extension.inc'); 
    include(
$phpbb_root_path 'common.'.$phpEx); 
    
$userdata session_pagestart($user_ipPAGE_INDEX); 
    
init_userprefs($userdata); 
    global 
$db$board_config
    global 
$HTTP_COOKIE_VARS$HTTP_GET_VARS$SID
    
$cookiename $board_config['cookie_name']; 
    
$cookiepath $board_config['cookie_path']; 
    
$cookiedomain $board_config['cookie_domain']; 
    
$cookiesecure $board_config['cookie_secure']; 
}
$acceso_a_grupos=array("Moderadores","Administradores");
if ( !(isset(
$HTTP_COOKIE_VARS[$cookiename '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename '_data'])) ) 

    
output_add_rewrite_var('sid'$userdata['session_id']); 

if ( 
$userdata['session_logged_in'] ) 

    
$sql mysql_query("SELECT g.group_id, g.group_name, g.group_type, ug.user_pending 
            FROM " 
GROUPS_TABLE " g, " USER_GROUP_TABLE " ug 
            WHERE ug.user_id = " 
$userdata['user_id'] . "   
                AND ug.group_id = g.group_id 
                AND g.group_single_user <> " 
TRUE 
            ORDER BY g.group_name, ug.user_id"
); 
    while(
$row=mysql_fetch_array($sql)) 
        
$membresia_usuario[]=$row['group_name'];
}
$acceso=FALSE;
if (
is_array($membresia_usuario))
{
    foreach(
$membresia_usuario as $grupo)
        if (
in_array($grupo,$acceso_a_grupos))
            
$acceso=TRUE;
}
if (
$acceso)
{
    
// Aqui ya pones lo que se mostraría si el usuario es de alguno de los grupos definidos en el array $acceso_a_grupos
    
print "acceso permitido";
}
else 
{
    print 
"acceso denegado";
}
?>
Lo principal, rockero, es que definas en esta línea los grupos a los que quieres dar acceso:
Código PHP:
$acceso_a_grupos=array("Moderadores","Administradores"); 
Yo puse moderadores y administradores cómo ejemplo, te dejo un par de ejemplos.

1.- Dar acceso a los usuarios que pertenecen al grupo programadores
Código PHP:
$acceso_a_grupos=array("programadores"); 
2.- Dar acceso a los usuarios que pertenecen al grupo programadores o diseñadores
Código PHP:
$acceso_a_grupos=array("programadores","diseñadores"); 
Y poco más simplemente recuerda de poner el nombre del grupo tal y cómo está, o sea con las mayúsculas si las tiene en su sitio.

Salu2 ;)
__________________
[+]
[+]

Última edición por yoseman; 30/07/2005 a las 04:16 Razón: El título me pareció ambiguo