Página 1 de 1

[DEV] Mobile detect con cookies

Publicado: 12 Mar 2012, 21:34
por javiexin
Nombre del MOD: Add-on para Prosilver Mobile - SEO de Artodia - detección de móvil con cookies
Autor del MOD: javiexin (javiexin@gmail.com)
Descripción del MOD
Este Add-on cambia la forma de selección de modo móvil vs completo, almacenando la elección del usuario en una cookie. Con la versión actual, incluida en el estilo, si alguien quiere ver el foro en versión "completa", tiene que seleccionarlo cada vez. Con este cambio, la elección del usuario se recuerda (en cada dispositivo, es decir, en el iPad uso versión completa, pero en el móvil uso versión reducida), con lo que se facilita la navegación.

Versión del AddOn: 1.0.0

Compatible con phpBB: 3.0.10
Estado: DEV

Instalación: Via MODX.

Advertencia: Este addon es para el los estilos Artodia Mobile (Prosilver Mobile SEO), sustituyendo al "Mobile Detect" que viene junto con esos estilos. Atención, este mod REEMPLAZA el que viene incluído con el estilo. Si ya está instalado, comparad las ediciones, es sencillo de adaptarlo.

Probadlo por si veis algún fallo, yo lo tengo en mi foro y me funciona a la perfección.

Espero que os sea útil, saludos,
-javiexin

PD: Si alguien lo instala y prueba, por favor, decídmelo.

Re: [DEV] Mobile detect con cookies

Publicado: 13 Mar 2012, 01:44
por Makoto
Me sale esto cuando activo el debug

Código: Seleccionar todo

[phpBB Debug] PHP Notice: in file [ROOT]/includes/session.php on line 1958: Constant MOBILE_DEVICE already defined
[phpBB Debug] PHP Notice: in file [ROOT]/includes/session.php on line 1994: Constant MOBILE_STYLE already defined
[phpBB Debug] PHP Notice: in file [ROOT]/includes/session.php on line 1958: Constant MOBILE_DEVICE already defined
[phpBB Debug] PHP Notice: in file [ROOT]/includes/session.php on line 1994: Constant MOBILE_STYLE already defined
define('MOBILE_DEVICE', true);
if(!empty($_REQUEST['nomobile']))
{
define('MOBILE_DEVICE_OFF', true);
$cookie_expire = $this->time_now + 31536000;
$this->set_cookie('nomobile', true, $cookie_expire);
unset($cookie_expire);
return true;
}
global $config;
if(request_var($config['cookie_name'] . '_nomobile', 0, false, true))
{
if(!isset($_REQUEST['nomobile']))
{
define('MOBILE_DEVICE_OFF', true);
return true;
}
else
{
$cookie_expire = $this->time_now - 31536000;
$this->set_cookie('nomobile', '', $cookie_expire);
unset($cookie_expire);
}
}
global $db;
// Important: change number 0 below to ID of Artodia:Mobile style.
// If it is set to 0, script will automatically find style, but it will use extra time and resources.
$mobile_style_id = 4;
if($mobile_style_id)
{
$sql2 = str_replace('s.style_id = ' . $style, 's.style_id = ' . $mobile_style_id, $sql);
$result = $db->sql_query($sql2, 3600);
$this->theme = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
if($this->theme !== false)
{
define('MOBILE_STYLE', true);

Re: [DEV] Mobile detect con cookies

Publicado: 13 Mar 2012, 07:14
por javiexin
Tienes algún otro MOD de Detección de Móviles? O habías instalado antes este estilo y su detección de móviles?

Re: [DEV] Mobile detect con cookies

Publicado: 13 Mar 2012, 08:00
por javiexin
javiexin escribió: Advertencia: Este addon es para el los estilos Artodia Mobile (Prosilver Mobile SEO), sustituyendo al "Mobile Detect" que viene junto con esos estilos. Atención, este mod REEMPLAZA el que viene incluído con el estilo. Si ya está instalado, comparad las ediciones, es sencillo de adaptarlo.
Otra alternativa es eliminar el MOD de detección de móviles anterior y sustituirlo por este.
Sólo hay una única definición de esas constantes en el MOD, así que o es interacción con otro previo (que podría ser el mismo en la otra versión anterior) o es que has instalado mal...

Saludos,
-javiexin

Re: [DEV] Mobile detect con cookies

Publicado: 13 Mar 2012, 21:43
por Makoto
Lo hice con las dos modificaciones y da el mismo error

Bueno aunque lo eh probado con FF + Addon user agent switch
http://www.iloveidol.com/foro/ tiene la modificacion instalada

Re: [DEV] Mobile detect con cookies

Publicado: 13 Mar 2012, 23:39
por javiexin
Pásame tu functions.php y tu session.php para seguir mirando, porque no debería darte ese problema (entiendo que sigue siendo el mismo, no?)

-javiexin

Re: [DEV] Mobile detect con cookies

Publicado: 14 Mar 2012, 00:12
por Makoto
Aquí esta :chulo:

Re: [DEV] Mobile detect con cookies

Publicado: 14 Mar 2012, 09:30
por javiexin
Hola Makoto,

He revisado los ficheros, y aparentemente están correctos, no veo ninguna duplicación de código (las constantes que mencionas se definen una única vez, dentro de la función check_mobile, que sólo se llama una vez, desde la inicialización de sesión/usuario).

Sólo se me ocurre que algún otro MOD de los que tienes instalados esté inicializando dos veces el usuario o la sesión ($session->setup() o $user->setup()). Mira a ver si algún otro MOD hace una llamada a alguna de esas funciones, buscando (típicamente en tu root o includes/*, includes/mods/*, también en hooks aunque lo dudo) a ver si hay alguna llamada de ese tipo.

Y también, prueba a hacer una instalación sobre un 3.0.10 limpio de MODs, para ver si ahí también se reproduce el error (lo dudo, porque a mi no me da problemas, pero nunca se sabe :().

Ya me dirás, para ver si resolvemos el problema.
Saludos,
-javiexin

Re: [DEV] Mobile detect con cookies

Publicado: 14 Mar 2012, 23:08
por Makoto
hay una forma de cambiar esa variables por otras?

Arty me dijo que quisas sea por phpbb-seo pero del seo solo tengo
  • phpBB SEO Dynamic Meta tags
  • phpBB SEO Optimal titles

Re: [DEV] Mobile detect con cookies

Publicado: 15 Mar 2012, 00:26
por javiexin
No, el SEO no creo que sea, porque yo también lo tengo, y no me falla (aunque yo tengo el SEO Ultimate 0.7.0).

Si quieres, prueba cambiando en session.php y functions.php MOBILE_DEVICE por DISP_MOVIL y MOBILE_STYLE por EST_MOVIL (o por lo que quieras que sea único).

Sinceramente, la constante "MOBILE_STYLE" no se usa en ningún sitio ahora (se usaba en la versión original del MOD, la de Arty, pero no en esta versión con cookies) así que si quieres, puedes quitar su definición totalmente (está en dos sitios, en session.php). Sí se usa MOBILE_DEVICE, se define en session.php (en un sólo sitio, en el setup del user/session) y se usa en functions.php (en un solo sitio también, en la inicialización de la cabecera - page_header), que identifica si estás en un dispositivo móvil para generar los enlaces para cambiar entre estilo "móvil" (si tienes MOBILE_DEVICE_OFF) y estilo "normal" (si no está definido MOBILE_DEVICE_OFF).

Has buscado si hay más llamadas a $user->setup() en algún sitio (incluyendo lo que tengas del SEO)? Es lo único que se me ocurre...
Y has probado a hacer la instalación en un 3.0.10 limpio? Porque ese sí debería funcionar 100%...
Saludos,
-javiexin

Re: [DEV] Mobile detect con cookies

Publicado: 17 Mar 2012, 22:27
por javiexin
Has vuelto a probar Makoto?

He intentado entrar en tu foro desde móvil, y veo que siempre me sale el estilo normal, pero estando en móvil sí que veo los enlaces a "Mobile style" y "Full style", así que parece como si tuvieras medio instalado el MOD...

Saludos,
-javiexin