Como recibir parametros por URL en vBulletin (cuando uses PHP o hagas un plugin)

imported_Jhonnyf Seguir

Épsilon
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
6 Sep 2008
Mensajes
959
Objetivo
Esto es un complemente para el tema
Enlace eliminado

si deseas recibir parámetros por URL y según estos hacer alguna acción este tutorial te va a servir ;), usualmente se usa $_GET, pero vbulletin tiene sus propias funciones para hacerlo

Los parámetros por URL son estos
PHP:
test.php?parametro1=valor1&parametro2=valor2
lo que hay que hacer, es capturarlos y según su contenido o valor, hacer alguna acción

Lo que debes saber:
vBulletin cuenta con una función para este caso
PHP:
clean_gpc($source, $varname, $vartype = TYPE_NOCLEAN)
  • $source = es el tipo de parámetro que se enviado, los valores posibles son: g, p, c, r, f (get, post, cookie, request y files), como vamos a recepcionar parámetros por URL, debemos usar el g
  • $varname = Es el nombre del parámetro en la URL, en nuestro ejemplo seria parametro1 y parametro2
  • $vartype = Aquí le indicamos que tipo de dato es el que debe devolvernos ese parámetro, los valores posibles son
    • TYPE_BOOL - Booleano
    • TYPE_INT - Entero
    • TYPE_UINT - Entero sin signo
    • TYPE_NUM - Punto Flotante (Real, float, double)
    • TYPE_UNUM - Punto Flotante sin signo (Real, float, double)
    • TYPE_UNIXTIME - Unix Timestamp (Entero sin signo)
    • TYPE_STR - Cadena sin espacios en blanco a los lados
    • TYPE_NOTRIM - Cadena
    • TYPE_NOHTML - Cadena sin espacios en blancos enviado usando htmlspecialchars_uni()
    • TYPE_ARRAY - Arreglo
    • TYPE_FILE - Archivo
    • TYPE_NOCLEAN - No valido
Haciendo un Ejemplo Practico
Vamos a usar el test.php pero modificándolo para que no use plantillas ni nada, solo código puro para que puedan hacer este tutorial rápido (no agregando plantillas, etc)

Aquí el archivo de ejemplo: (ejemplo.php)
PHP:
<?
error_reporting(E_ALL & ~E_NOTICE);
define('THIS_SCRIPT', 'test');  

// ########################## REQUERIDO ############################
require_once('./global.php'); //con esto cargas todas las opciones de vBulletin, además de la conexión, acceso a MySQL, etc, etc

// ######################## COMIENZO DEL SCRIPT PRINCIPAL ############################
$parametroenphp = $vbulletin->input->clean_gpc('g', 'parametro1', TYPE_STR);
$otroparametroenphp = $vbulletin->input->clean_gpc('g', 'parametro2', TYPE_STR);

echo $parametroenphp;
echo "<br />";
echo $vbulletin->GPC['parametro2'];
?>
cuando usas la función clean_gpc, guardas el resultado en una variable ($parametroenphp), pero adicionalmente se guarda en el arreglo $vbulletin->GPC['NOMBRE DE VARIABLE EN URL'] (ver ultima línea del código), así que tenemos 2 formas de obtener el datos ;)

asi que cuando hagas
PHP:
/ejemplo.php?parametro1=hola&parametro2=mundo
veras lo siguiente
Enlace eliminado
Anexo
Adicionalmente esta la función clean_array_gpc con lo que puedes obtener todos los parámetros con solo 1 línea y poder leerlos en $vbulletin->GPC['NOMBRE DE VARIABLE EN URL']
PHP:
$vbulletin->input->clean_array_gpc('r', array(
                    'puntos'         => TYPE_ARRAY_UINT,
                    'puntos_anterior'         => TYPE_ARRAY_UINT,
                    'usuario'         => TYPE_STR,
            ));
        //los guardo en variables independientes (no es obligatorio)
        $puntos = $vbulletin->GPC['puntos'];
        $puntos_anterior = $vbulletin->GPC['puntos_anterior'];
        $usuario = $vbulletin->GPC['usuario'];
Nota (Usuarios Avanzados):
También puedes leer variables enviadas en formularios usando el metodo post sin ningún problema y usando el mismo código, aún sin usar el r como parámetro en $source
 
Arriba