Salve,
Ho postato questo problema anche in Sviluppo con Drupal, perché non mi è chiaro cosa e dove lo debba fare.
Ho cercato un modulo che mi permettesse di estrarre il browser dell'utente e associargli determinate classi css.
Non ne ho trovati. Allora ho pensato di scrivere uno sniffer in php e l'ho fatto. Messo in una qualunque pagina php mia, di test, funziona. Solo che non saprei dove metterlo nella route di Drupal. Ho provato in template.php del tema ma non cambia nulla.
Qualcuno può aiutarmi?
Grazie.
Browser detection
Lun, 17/05/2010 - 15:08
#1
Browser detection
hai provato
http://drupal.org/project/browscap
http://drupal.org/project/ua_logger
?
Certified to Rock
Cinque minuti, ma sempre avanti Carlo
http://drupal.org/project/purl
http://drupal.org/project/wurfl
Più imparo, più dubito.
Grazie John ;)
..sono stato solo più veloce..
e poi i tuoi suggerimenti mi sembrano più azzeccati!
Certified to Rock
Grazie a entrambi.
Vado a leggere.
R.
Allora, ho dato una prima occhiata superficiale e mi sembra un po' complessa per quello che serve a me. Provo a spiegarmi meglio su ciò che mi piacerebbe fare e, se vi va, mi date il vostro parere.
Ho visto che i temi di drupal (per esempio zen, che è quello da cui proverei a partire per realizzare i miei) usano un foglio di stile a parte, per esempio per IE, cosa, secondo me, che rende le modifiche un po' più laboriose. Quindi vorrei scrivere, nello stesso foglio di stile, delle classi tipo
.ie6 esempio { }
o
.firefox esempio { }
ecc.
In page.tpl.php screverei una cosa tipo
dove $browser è il risultato di una funzione che partendo da un array di browser mi restituisce il browser dell'utente. Una cosa tipo
Cosa ne pensate?
R.
Completo il concetto, scusate.
'Cosa ne pensate' significa: è fattibile? Perché ovunque abbia provato a mettere questa funzione, $browser non butta fuori nulla.
Eppure, messa in una pagina fuori Drupal funziona perfettamente.
Grazie per i pareri.
R.
In page.tpl.php:
<?php
function browser() {
$browsers = array(
'Opera 9' => 'Opera/9\.[0-9]+',
'Opera 10' => 'Opera/10\.[0-9]+',
'Opera' => 'Opera',
'Firefox'=> '(Firebird)|(Firefox)',
'Galeon' => 'Galeon',
'Chrome' => 'Chrome',
'Safari' => 'Safari',
'MyIE'=>'MyIE',
'Lynx' => 'Lynx',
'Konqueror'=>'Konqueror',
'SearchBot' => '(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp/cat)|(msnbot)|(ia_archiver)',
'IE 6' => '(MSIE 6\.[0-9]+)',
'IE 5' => '(MSIE 5\.[0-9]+)',
'IE 4' => '(MSIE 4\.[0-9]+)',
'IE 7' => '(MSIE 7\.[0-9]+)',
'IE 8' => '(MSIE 8\.[0-9]+)',
'Netscape' => '(Mozilla/4\.75)|(Netscape6)|(Mozilla/4\.08)|(Mozilla/4\.5)|(Mozilla/4\.6)|(Mozilla/4\.79)',
'Mozilla'=>'Gecko',
);
foreach($browsers as $browser=>$valore)
{
if (mb_ereg($valore, $_SERVER["HTTP_USER_AGENT"]))
return $browser;
}
return 'Sconosciuto';
}
print('<pre>'. browser() . '</pre>');
?>
Works for me ;-)
Più imparo, più dubito.
salvato!!!
thank you sir
Certified to Rock
Qui con la scusa dell'open source mi si frega del codice! Ovviamente sto scherzando.
Grazie mille a entrambi per la collaborazione. C'era un problema non identificato nel mio template. In Garland funziona anche a me.
Ho preferito mettere la funzione in template.php, così page.tpl.php resta pulita.
Grazie ancora.
R.