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.
Hola
Creo que gran parte del trabajo está hecho ya...
http://moodle.org/mod/data/view.php?d=13&rid=1802&filter=1
Salu2
Creo que gran parte del trabajo está hecho ya...
http://moodle.org/mod/data/view.php?d=13&rid=1802&filter=1
Salu2
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.
¿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.
¿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.
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.
¿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.
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 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.
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.
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.
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
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
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.
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.
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.
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.