Redirigir dispositivos móviles

Redirigir dispositivos móviles

de Lao Shan -
Número de respuestas: 8
Hola a todos!

Espero que estén todos bien, bueno les escribo para hacerles una consulta. Quiero que si alguien entra desde un dispositivo móvil (iPhone, iPad, android...) le redirija a una web específica. He encontrado como hacerlo, miren:

http://detectmobilebrowsers.mobi/

Con ese código detecta si está navegando desde un dispositivo móvil y lo redirige a la URL que quieras. Hasta ahí todo bien, pero no se como incluir ese código, por ejemplo había pensado en ponerlo en view.php (de los cursos o de los test "quiz") pero no se en que linea sería correcto y si esto ralentizará a la gente que entre desde los ordenadores.

Espero que alguien me pueda ayudar con este tema, muchísimas gracias por adelantado.
Promedio de valoraciones: -
En respuesta a Lao Shan

Re: Redirigir dispositivos móviles

de Wenceslao Fernández -
Hola sonrisa

Creo que gran parte del trabajo está hecho ya...

http://moodle.org/mod/data/view.php?d=13&rid=1802&filter=1


Salu2
En respuesta a Wenceslao Fernández

Re: Redirigir dispositivos móviles

de Lao Shan -
Gracias Wenceslao, pero me interesa más ese otro sistema, porque son 2 lineas de código, lo actualizan a menudo (por ejemplo para el iPad, android...) y lo que quiero es que cuando entren desde el móvil a la página del curso les dirija a una página concreta (no quiero optimizarlo para el móvil) creo que no me expliqué bien.

¿Sabes en que lineas sería mejor ponerlo?¿esa llamada puede ralentizar a los demás usuarios de escritorio? es un archivo .php de 22kb

y las 2 lineas son:

require_once('mobile_device_detect.php');
$mobile = mobile_device_detect();


Muchas gracias por tu pronta respuesta.
En respuesta a Lao Shan

Re: Redirigir dispositivos móviles

de Lao Shan -
¿Alguien con conocimientos de PHP me echa una mano?

Tendría que hacer la llamada en las primeras lineas, no?

<?php // $Id: view.php,v 1.106.2.6 2009/02/12 02:29:34 jerome Exp $

// Display the course home page.

require_once('../config.php');
require_once('lib.php');
require_once($CFG->libdir.'/blocklib.php');
require_once($CFG->libdir.'/ajax/ajaxlib.php');
require_once($CFG->dirroot.'/mod/forum/lib.php');


Es decir:

<?php // $Id: view.php,v 1.106.2.6 2009/02/12 02:29:34 jerome Exp $

// Display the course home page.

require_once('mobile_device_detect.php');
$mobile = mobile_device_detect(Aquí van las opciones);
require_once('../config.php');
require_once('lib.php');
require_once($CFG->libdir.'/blocklib.php');
require_once($CFG->libdir.'/ajax/ajaxlib.php');
require_once($CFG->dirroot.'/mod/forum/lib.php');

Sería correcto así?o de otra forma?

gracias.
En respuesta a Lao Shan

Re: Redirigir dispositivos móviles

de Lao Shan -
¿Alguien con conocimientos de PHP me echa una mano?

Tendría que hacer la llamada en las primeras lineas, no?

<?php // $Id: view.php,v 1.106.2.6 2009/02/12 02:29:34 jerome Exp $

//  Display the course home page.

    require_once('../config.php');
    require_once('lib.php');
    require_once($CFG->libdir.'/blocklib.php');
    require_once($CFG->libdir.'/ajax/ajaxlib.php');
    require_once($CFG->dirroot.'/mod/forum/lib.php');


Es decir:

<?php // $Id: view.php,v 1.106.2.6 2009/02/12 02:29:34 jerome Exp $

//  Display the course home page.

    require_once('mobile_device_detect.php');
    $mobile = mobile_device_detect(Aquí van las opciones);
    require_once('../config.php');
    require_once('lib.php');
    require_once($CFG->libdir.'/blocklib.php');
    require_once($CFG->libdir.'/ajax/ajaxlib.php');
    require_once($CFG->dirroot.'/mod/forum/lib.php');

Sería correcto así?o de otra forma?

gracias.
En respuesta a Lao Shan

Re: Redirigir dispositivos móviles

de Xavier Paz -
En efecto, parece que esas dos líneas tienen que ser lo primero que aparezca en el script, antes de cargar nada.

Un detalle en el cual no sé si has caído.

This code is free to download and use on non-profit websites, if your website makes money, shows adverts or is in any way transactional please kindly upgrade and help me keep the code coming!


Este código es libre/gratuito para uso no comercial. Si lo vas a usar para obtener beneficio del algún tipo mediante pagos, anuncios o lo que sea, tienes que actualizar el código y pagar la licencia (50$ al año)

En otras palabras, solo vale para uso personal, y ni siquiera en esos casos estás libre de pagar.
En respuesta a Xavier Paz

Re: Redirigir dispositivos móviles

de Lao Shan -
Muchas gracias Xavier. Si ya lo leí, pero me parece poco dinero y te aseguras que lo actualizan y están atentos a "falsos positivos", mejoran el código...incluso puedo elegir redirigir a los iPhone y las blackberrys no.

Entonces tal y como lo he puesto sería lo correcto?
es que dudo si debería poner el $mobile = mobile_device_detect abajo, es decir, o como te he puesto o:

//  Display the course home page.
   
    require_once('mobile_device_detect.php');
    require_once('../config.php');
    require_once('lib.php');
    require_once($CFG->libdir.'/blocklib.php');
    require_once($CFG->libdir.'/ajax/ajaxlib.php');
    require_once($CFG->dirroot.'/mod/forum/lib.php');

    $mobile = mobile_device_detect(Aquí van las opciones);
    $id          = optional_param('id', 0, PARAM_INT);
(...)


Tu crees que afectará mucho a la carga de la página?son pocos kb el archivo php. Aún en el peor de los casos, si hago un "desastre" con borrar esas dos lineas de view.php no tendría problemas no??

Muchas gracias por tu tiempo Xavier
En respuesta a Lao Shan

Re: Redirigir dispositivos móviles

de Xavier Paz -
Revisando el código, no parece que haga mucho, es decir, se limita a procesar la cadena de texto en $_SERVER['HTTP_USER_AGENT'] de la petición realizada por el cliente, y en función de eso devuelve unas cabeceras http que te redirigen a la versión normal o para móviles del sitio.

Si usas el Firebug, puedes medir los tiempos de respuesta y retardo desde que se inicia la petición hasta que el servidor la resuelve y contesta.

De todas formas, sinceramente por lo que hace, no creo que valga los 50$ que piden, al menos en mi opinión. El script simplemente procesa una cadena de texto, y en función del término que contiene, te lleva a la url que tu has especificado como parámetro en la llamada a la función. El hacer esto, incluso con pocos conocimientos de PHP no es complicado. A no ser que se me esté escapando algún otro detalle, creo que en la red habrá ejemplos parecidos y gratuitos.
En respuesta a Xavier Paz

Re: Redirigir dispositivos móviles

de Lao Shan -
digamos que los 50$ es más por la actualización que realizan, porque como ya sabemos los navegadores se actualizan mucho y esto puede dar lugar a errores en el código de detección. Seguramente como dices con conocimientos se podría hacer, pero como no los tengo...ni mucho tiempo para adquirirlos...

Por cierto FUNCIONA!!había que ponerlo tal como indiqué justo antes del primer require_once
y no ralentiza nada, al menos no se percibe y cumple a la perfección. Bueno no he podido probarlo desde un iPad ni blackberry pero desde un iPhone va perfecto. Y firefox no da falsos positivos (casi el 100% de mis alumnos usa firefox)

Gracias por vuestras respuestas.