Back to top

Autore Topic: [RISOLTO] Eseguire un redirect a sito mobile con detect automatico. Come?  (Letto 14455 volte)

Offline d-force

  • Appassionato
  • ***
  • Post: 292
    • Mostra profilo
Salve a tutti, è possibile eseguire un redirect automatico ad un sito realizzato per dispositivi "mobile"?

Al momento sto usando la seguente funzione:

Codice: [Seleziona]
<?php
require_once('http://www.piedicosta.com/joomla17/templates/template_piedicosta/mobile_device_detect.php');
mobile_device_detect(true,false,true,true,true,true,true,'http://mobile.piedicosta.com',false);
?>

quindi va a cercare il file mobile_device_detect.php e verifica se l'utente naviga da pc fisso o da un dispositivo mobile.

Purtroppo però sembra non funzionare...non so se è dovuto al fatto che non trova il file mobile_device_detect.php o ad altro.

Qualcuno può darmi una mano?

Grazie 1000!
« Ultima modifica: 27 Ago 2011, 23:11:03 da d-force »

Offline Npaquito

  • Abituale
  • ****
  • Post: 1832
    • Mostra profilo
Re:Eseguire un redirect a sito mobile con detect automatico. Come?
« Risposta #1 il: 26 Ago 2011, 17:23:30 »
Hola

Puoi usare un plugin (io uso mobilebot plugin con soddisfazione) che fa il redirect al template mobile in base all'user agent entrante è utile soprattutto se il sito mobile e il sito Pc compartono url, se no puoi fare un redirect con uno script in base alla larghezza del browser:

Codice: [Seleziona]
<script type="text/javascript">
if(screen.width < 710){window.location = "http://m.miosi.to/";}
</script>
web design, web mobile

Offline d-force

  • Appassionato
  • ***
  • Post: 292
    • Mostra profilo
Re:Eseguire un redirect a sito mobile con detect automatico. Come?
« Risposta #2 il: 26 Ago 2011, 18:08:10 »
Grazie 1000 Npaquito per la tua risposta!

Mi ero dimenticato di dire che il mio sito è su Joomla 1.7, quindi il plugin mobilebot non funziona, e purtroppo non ci sono al momento dei plugin che effettuino il detect di un dispositivo mobile compatibili con J 1.7

Al momento ho parzialmente risolto inserendo nella pagina del template index.php un codice in php che riconosce il dispositivo mobile e reindirizza ad un sito mobile tipo: mobile.miosito.com

Il problema ce l'ho nella home page generale che non è altro che una splash page che si chiama index.html (così facendo quando si digita la home www.miosito. com si visualizza la splash page con il logo e la scelta della lingua in cui visulalizzare il sito.) solamente che non posso inserire il codice php ovviamente.

Ho provato allora con la soluzione da te suggerita in Javascript, devo dire che funziona  a patto che il dispositivo mobile abbia i Javascript abilitati e da quello che mi è sembrato di capire non tutti li hanno (o forse sono disabilitati di default - almeno è così per il mio Blackberry).

Esiste una soluzione per fare un detect direttamente dal file .htaccess ?

Offline Npaquito

  • Abituale
  • ****
  • Post: 1832
    • Mostra profilo
Re:Eseguire un redirect a sito mobile con detect automatico. Come?
« Risposta #3 il: 26 Ago 2011, 18:33:56 »
Hola

Nel mio blackberry si funziona senza modifiche, non so nessuna da .htaccess, a me per il momento va bene con quelli li
web design, web mobile

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Eseguire un redirect a sito mobile con detect automatico. Come?
« Risposta #4 il: 27 Ago 2011, 14:35:34 »
ciao d-force,
 che vuol dire che che 'forse' non trova il file  mobile_device_detect.php?
caricalo sul server!
non puoi includere una libreria tramite protocollo http, il file verrà processato e restituirà solo html: certo che non funziona!

@Npaquito
ciao, il mio cellulare ha js abilitato, ma lo schermo è di 800px: come la mettiamo?  ;D

ciao,
marco

mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline d-force

  • Appassionato
  • ***
  • Post: 292
    • Mostra profilo
Re:Eseguire un redirect a sito mobile con detect automatico. Come?
« Risposta #5 il: 27 Ago 2011, 14:53:14 »
ciao d-force,
 che vuol dire che che 'forse' non trova il file  mobile_device_detect.php?
caricalo sul server!
non puoi includere una libreria tramite protocollo http, il file verrà processato e restituirà solo html: certo che non funziona!

Ciao Marco, esatto! Il sospetto era proprio quello, infatti su un altro mio sito funziona. Tuttavia pur avendo inserito la Url/percorso completo del file php e non lo trovava ugualmente.
Codice: [Seleziona]
http://www.piedicosta.com/joomla17/templates/template_piedicosta/mobile_device_detect.phpAvevo utilizzato questo script http://detectmobilebrowsers.mobi/ che mi sembrava abbastanza completo.

@Npaquito
ciao, il mio cellulare ha js abilitato, ma lo schermo è di 800px: come la mettiamo?  ;D

Anche questo potrebbe essere un problema....

Altro fatto....: utilizzo - come HOME PAGE - una Splash page che si chiama index.html dove si trova il mio logo e le bandierine per scegliere la lingua. Ed in questa pagina non posso mettere istruzioni php.

Al momento utilizzo questo codice (è insertio nella inderx.php del template)
Codice: [Seleziona]
<?php

$mobile_browser 
'0';

if(
preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i',
    
strtolower($_SERVER['HTTP_USER_AGENT']))){
    
$mobile_browser++;
    }

if((
strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or 
    ((isset(
$_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))){
    
$mobile_browser++;
    }

$mobile_ua strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));
$mobile_agents = array(
    
'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',
    
'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',
    
'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
    
'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',
    
'newt','noki','oper','palm','pana','pant','phil','play','port','prox',
    
'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',
    
'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',
    
'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',
    
'wapr','webc','winw','winw','xda','xda-');

if(
in_array($mobile_ua,$mobile_agents)){
    
$mobile_browser++;
    }
if (
strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini')>0) {
    
$mobile_browser++;
    }
if (
strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows')>0) {
    
$mobile_browser=0;
    }


if(
$mobile_browser>0){
   
header('Location: http://mobile.piedicosta.com');
   } 
   
//else {
   //header('Location: http://www.piedicosta.com/joomla17/it');
   //}
?>


e questo nella index.html
Codice: [Seleziona]
<script type="text/javascript">
if(screen.width < 710){window.location = "http://mobile.piedicosta.com/";}
</script>

Ho dovuto fare questa scelta perchè Joomla carica in automatico prima le pagine in .html e poi quelle in .php e così non avrei potuto fare una splash page. O forse esiste un'altra soluzione che ignoro?

Grazie a tutti per le delucidazioni.... 
« Ultima modifica: 27 Ago 2011, 14:58:02 da d-force »

Offline Npaquito

  • Abituale
  • ****
  • Post: 1832
    • Mostra profilo
Re:Eseguire un redirect a sito mobile con detect automatico. Come?
« Risposta #6 il: 27 Ago 2011, 15:17:31 »
....
@Npaquito
ciao, il mio cellulare ha js abilitato, ma lo schermo è di 800px: come la mettiamo?  ;D
....
Hola

in verticale o in orizzontale? ;D ;D ;D

Puoi scegliere, in orizzontale vai alla web Pc in verticale (se meno di 710) vai al sito mobile, così puoi giocare un po!!!
web design, web mobile

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Eseguire un redirect a sito mobile con detect automatico. Come?
« Risposta #7 il: 27 Ago 2011, 18:53:19 »
facciamo un po' di chiarezza...
è il webserver (do per scontato che sia apache) a decidere qual è il documento di partenza del sito (default document) sulla base della direttiva DirectoryIndex, e non joomla; di norma, ma chiedi all'assistenza, questa è personalizzabile.
ti basta quindi inserire la seguente riga in .htaccess:
Codice: [Seleziona]
DirectoryIndex splash.php index.php index.html

per risolvere il tuo problema. esistono dei moduli per visualizzare spash pages usando iframe nella home del sito, hanno due vantaggi:
1. non abbassano il PR del sito
2. si basano sui cookies quindi quando uno fa una scelta non riappaiono ogni volta.
io odio le splash pages quindi non chiedere a me quale usare.

HTTP
NON, ripeto NON puoi includere codice php tramite protocollo http, ma poi solo caricarlo dal file system locale se vuoi che sia eseguibile. considera questo: quando accedi ad una pagina del tuo sito joomla (http:// et cetera) ottieni il codice html generato, non il sottostante codice php.
comunque l'url indicato dà errore.

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline d-force

  • Appassionato
  • ***
  • Post: 292
    • Mostra profilo
Re:Eseguire un redirect a sito mobile con detect automatico. Come?
« Risposta #8 il: 27 Ago 2011, 19:14:32 »
edited by mod: per favore non quotate tutto un post quando non serve: il db costa!

Ciao Marco, la soluzione mi sembra OK, con questo codice nell'.htaccess posso definire l'ordine con cui il server carica la pagina. Giusto?
Codice: [Seleziona]
DirectoryIndex splash.php index.php index.html


In pratica posso far puntare il dominio www .miosito. com su splash.php e da li attraverso le bandierine della lingua inviare i clienti alle pagine con la loro lingua.

comunque l'url indicato dà errore.

ciao,
marco

A quale url ti riferisci?
« Ultima modifica: 27 Ago 2011, 19:28:33 da mmleoni »

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Eseguire un redirect a sito mobile con detect automatico. Come?
« Risposta #9 il: 27 Ago 2011, 19:29:38 »
esatto.

url: quello nella require_once del post di apertura.

ciao,
marco

mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline d-force

  • Appassionato
  • ***
  • Post: 292
    • Mostra profilo
Re:Eseguire un redirect a sito mobile con detect automatico. Come?
« Risposta #10 il: 27 Ago 2011, 19:41:06 »
esatto.

url: quello nella require_once del post di apertura.

ciao,
marco

Codice: [Seleziona]
http://www.piedicosta.com/joomla17/templates/template_piedicosta/mobile_device_detect.php
Adesso l'ho tolto perchè non funzionava...

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Eseguire un redirect a sito mobile con detect automatico. Come?
« Risposta #11 il: 27 Ago 2011, 22:28:42 »
ricordati il [RISOLTO] nel titolo del post di apertura.
ciao,
marco

mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline d-force

  • Appassionato
  • ***
  • Post: 292
    • Mostra profilo
Re:Eseguire un redirect a sito mobile con detect automatico. Come?
« Risposta #12 il: 27 Ago 2011, 23:11:29 »
ricordati il [RISOLTO] nel titolo del post di apertura.
ciao,
marco

Fatto!  ;)

 



Web Design Bolzano Kreatif