Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Editare fragment de mod care detecteaza dispozitivele mobile
#1
Am instalat un mod care schimba tema forumului atuci cind este detectat un dispozitiv mobil, deci eu vreau sa-l modific asfel ca atunci cind este detectat ca utilizatorul foloseste browserul Opera Mini sa fie plasat stilul cu id-ul 13($mobile_style_id = 13; ) iar atunci cind foloseste alt dispozitiv sa fie redirectionat la stilul cu id-ul 12($mobile_style_id = 12; ). O sa va prezint un fragment de cod unde trebuie plasat id-ul temei mobile, eu cred ca aici e cheia, insa in caz ca eu gresesc cu intuitia gasiti intreg tutorialul pe http://www.artodia.com/mod-installation/...ction.html.
PHP Code:
// MOD start: Mobile/SEO style
    /**
    * Check for mobile/seo, get style
    */
    
function check_mobile($sql$style)
    {
        
$browser = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
        if (empty(
$this->data['is_bot']) && strpos($browser'Mobile') === false && strpos($browser'Symbian') === false && strpos($browser'Opera M') === false && strpos($browser'Android') === false && stripos($browser'HTC_') === false && strpos($browser'Fennec/') === false && stripos($browser'Blackberry') === false && strpos($browser'Windows Phone') === false && strpos($browser'WP7') === false && strpos($browser'WP8') === false)
        {
                return 
true;
        }
        
define('MOBILE_DEVICE'true);
        if(!empty(
$_REQUEST['nomobile']))
        {
            
define('MOBILE_DEVICE_OFF'true);
            return 
true;
        }
        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 13;
        if(
$mobile_style_id)
        {
            
$sql2 str_replace('s.style_id = ' $style's.style_id = ' $mobile_style_id$sql);
            
$result $db->sql_query($sql23600);
            
$this->theme $db->sql_fetchrow($result);
            
$db->sql_freeresult($result);
            if(
$this->theme !== false)
            {
                
define('MOBILE_STYLE'true);
                return 
false;
            }
        }
        
// try to find style
        
global $phpbb_root_path;
        
$files scandir($phpbb_root_path 'styles');
        
$base $phpbb_root_path 'styles/';
        for(
$i=0$i<count($files); $i++)
        {
            if(
$files[$i] != '.' && $files[$i] != '..' && is_dir($base $files[$i]) && @file_exists($base $files[$i] . '/style.cfg'))
            {
                
// found directory with style
                
$data file_get_contents($base $files[$i] . '/style.cfg');
                if(
strpos($data'mobile = 1') !== false && ($pos strpos($data'name = ')) !== false)
                {
                    
$list explode("\n"substr($data$pos 7), 2);
                    
$name trim($list[0]);
                    
// found style
                    
$sql2 str_replace('s.style_id = ' $style's.style_name = \'' $db->sql_escape($name) . '\''$sql);
                    
$result $db->sql_query($sql23600);
                    
$this->theme $db->sql_fetchrow($result);
                    
$db->sql_freeresult($result);
                    if(
$this->theme !== false)
                    {
                        
define('MOBILE_STYLE'true);
                        return 
false;
                    }
                }
            }
        }
        return 
true;
    }
    
// MOD end: Mobile/SEO style 
Un forum simplu pentru toti, si pentru ca parerea ta conteaza!
Reply
Anunt important
Daca ti-a fost de folos articolul de mai sus te rugam sa ne sustii in semn de apreciere.
Ar insemna foarte mult pentru noi daca ai apasa oricare din butoanele de recomandare de mai jos (in special pe cel de facebook) sau chiar pe mai multe.
Faptul ca suntem apreciati ne motiveaza sa facem o treaba mai buna si implicit sa oferim mai mult, ajuta comunitatea sa creasca.


#2
Odata ai scris setare odata redirect .... nu prea inteleg ce vrei (ca de obicei) dar totusi sa incerc.

PHP Code:
if(eregi('opera mini'$_SERVER['HTTP_USER_AGENT'])) { 
$mobile_style_id 13;
}
else{
$mobile_style_id 12;

Reply
#3
Nu sunt sigur ca nu mai prea inteles caci mai inteles perfect Winking
Ar trebui sa-ti dau +100 la reputatie pentru cit mai ajutat. Happy
Un forum simplu pentru toti, si pentru ca parerea ta conteaza!
Reply


Possibly Related Threads...
Thread Author Replies Views Last Post
  Greseala in script care detecteaza tipul fisierului nickname 2 5,180 05-20-2012, 11:41 AM
Last Post: nickname



Users browsing this thread: 1 Guest(s)