Reseña:
Con este tutorial vamos a usar una pagina php y mostrarlo como una de vBulletin pero sin usar el sistema de plantillas como en el caso de test.php (Click aqui para ver el tutorial), esto es bastante util ya que no estamos condicionados a que si existe o no dicha plantilla en el estilo actual
Lo Primero que debes saber:
Lo primero que debes saber es que las IP ya se encuetra distribuidas por paises, es decir que un rango ya se sabe que pertenece a un pais en especifico, y si en algunas páginas vez que dicen que se actualiza a diario (como la que vamos a usar en el ejemplo) es básicamente para actualizar la IP con una ciudad (De aqui que a diario actualizan sus archivos) pero si solo quieres detectar el pais no hay problema
Tutorial:
Necesitamos un archivo que contenga el Rango de IP - Pais, para eso yo utilizaré este php que ya tiene incluso funciones que hacen todo el trabajo
http://chir.ag/projects/geoiploc/aut...eoiploc.tar.gz
La web del autor o de donde lo he sacado asi como el ejemplo en php standard es:
PHP GeoIPLocation Library - IP Address to Country - Chirag Mehta : chir.ag
Lo que tenemos que hacer es subir el php del archivo que acabas de bajar (geoiploc.php) y subirlo junto al siguiente archivo:
Haz un archivo php y lo llamaremos tu_pais.php con el siguiente contenido:
Como verás para nada usamos el sistema de plantilla de vBulletin, por tanto este es un archivo independiente.Código PHP:<?
// ######################## SET ENTORNO PHP ###########################
error_reporting(E_ALL & ~E_NOTICE);
// ##################### DEFINIR COSNTANTES IMPORTANTES #######################
define('THIS_SCRIPT', 'tu_pais');
/*
este es el nombre de este Scrit, asi que en las plantillas podran usar una condicion asi:(en el Navbar o footer por ejemplo)
<if condition="THIS_SCRIPT == 'tu_pais'">
No mostrar Adsense, algo especial etc, etc
</if>
*/
// #################### PRE-CACHE DATOS Y PLANTILLAS ######################
//Obtener Grupo de Frases Especiales
$phrasegroups = array();
//Obtener Plantillas Especiales desde el datastore
$specialtemplates = array();
// pre-cache Plantillas usadas en todas las Acciones de este php
$globaltemplates = array();
// Pon aqui todas las plantillas que hayas creado, pero curiosamente si no las pones, igualito funciona (esto es lenguaje c pues
//RECUERDA QUE ESTE ES EL NOMBRE DE LA PLANTILLA QUE CREASTE
// pre-cache Plantillas usadas para Acciones Estemplates used by specific actions
$actiontemplates = array();
// ########################## REQUERIDO ############################
require_once('./global.php'); //con esto cargas todas las opciones de vBulletin, ademas de la conexion, acceso a MySQL, etc, etc
// #######################################################################
// ######################## COMIENZO DEL SCRIPT PRINCIPAL ############################
// #######################################################################
$navbits = array();
$navbits[$parent] = 'Deteccion de Pais'; //esto se vera en el NavBar (el arbol que sale cuando entras a un tema, etc en el navbar)
$navbits = construct_navbits($navbits); //Que vBulletin lo compile a su manera
eval('$navbar = "' . fetch_template('navbar') . '";'); //Luego usamos esa compilacion con la plantilla navbar (que será llamado en la plantilla prueba
include("geoiploc.php"); // Incluimos el Archivo bajado para localizar el pais
if (empty($_POST['checkip']))
{
$ip = $_SERVER["REMOTE_ADDR"]; //si llego desde otra ubicacion o con url directa, toma la IP del cliente
}
else
{
$ip = $_POST['checkip']; //si mando una IP desde la misma pagina tu_pais.php
}
/*INICIO de Plantilla en PHP y asi evitando el uso del sistema de plantillas de vBulletin*/
$plantillaphp = ''.$stylevar[htmldoctype].'
<html dir="'.$stylevar[textdirection].'" lang="'.$stylevar[languagecode].'">
<head>
'.$headinclude.'
<title>Identificación de Pais - '.$vbulletin->options['bbtitle'].' </title>
</head>
<body>
'.$header .'
'.$navbar .'<!--Esto llama a la variable que se construyó en el php-->
<!--INICIO DEL CONTENIDO QUE DESEAS MOSTRAR-->
<!--Basicamente se hace para que se vea una tabla usando los colores de su foro-->
<table class="tborder" cellpadding="'.$stylevar[cellpadding].'" cellspacing="'.$stylevar[cellspacing].'" border="0" width="100%"
align="center">
<tr>
<td class="tcat" colspan="2">Titulo de la Tabla, usando los colores de Categoria</td>
</tr>
<tr>
<td class="alt1">Tu IP es: </td><td class="alt1"> '.$ip.' </td>
</tr>
<tr>
<td class="alt2">Tu Pais es : </td><td class="alt2">'.getCountryFromIP($ip).'</td>
</tr>
<tr>
<td class="alt1">El Codigo de tu Pais : </td><td class="alt1"> '.getCountryFromIP($ip, "code").' </td>
</tr>
<tr>
<td class="alt2">La Abreviacion de tu Pais es : </td><td class="alt2">'.getCountryFromIP($ip, "AbBr").'</td>
</tr>
<tr>
<td class="alt1">El Nombre de tu Pais : </td><td class="alt1">'.getCountryFromIP($ip, " NamE ").'</td>
</tr>
<tr>
<td class="alt2">Ingrese una IP para verificar</td><td class="alt2">
<FORM action="tu_pais.php" method="post">
<INPUT type="text" id="checkip" name="checkip">
<INPUT type="submit" value="Verificar">
</P>
</FORM>
</td>
</tr>
<tr>
<td class="tfoot" colspan="2" align="center">vBsoporte.com</td>
</tr>
</table>
<!--FIN DEL CONTENIDO QUE DESEAS MOSTRAR-->
'.$footer.'
</body>
</html> ';
/*FIN de Plantilla en PHP y asi evitando el uso del sistema de plantillas de vBulletin*/
eval('print_output($plantillaphp);'); //y Finalmente compilamos y mostramos plantilla
//echo $plantillaphp; //Tambien puedes usar un simple ECHO para mostrarlo XD
?>
Si deseas más informacion sobre archivos php usando el sistema de vBulletin, te recomiendo estos otros 2 tutoriales
Guía para Agregar Paginas personalizadas a vBulletin (Test.php) - vBSoporte
Mostrar en una tablas, datos extraidos de la Base de datos - vBSoporte
Importancia y Temas Legales
Cualquier dato obtenido mediante la IP y divulgado no está permitido ya que violas el derecho de la privacidad del navegante, en este caso uno ve su propia informacion y nadie más lo hacer
Temas Similares:
- Firmas Automáticas para post/usuarios que no tengan (vB3x y vB4)
- vBulletin 4, El uso del NUEVO IF (condicional), TAGS de programacion para plantillas (templates)
- Eliminar el /index.php para pasarlo a / (raiz) editando plantillas
- Detectar ubicacion segun IP y colocarla en Postbit
- Guia Como hacer funcionar Plantillas Personalizadas usando Plugins


LinkBack URL
About LinkBacks


Responder Citando

