Seite 1 von 1

Mobile-Erkennung

Verfasst: 21.05.2014 20:26
von mps
Hallo zusammen,

ich habe mit Hilfe eines Tutorials im Web (http://my-websites.de/mobile-browser-per-php-erkennen/) ein PHP-Script erstellt, welches erkennt, ob ein User im Board mit Handy online ist oder nicht.

Wie kriege ich es nun hin, dass ich den Code auf der Seite, der übrigens auch hervorragend geht, so in PHPBB einbinden kann, dass ich in der Template-Datei das hier haben kann, wenn ich will:

Code: Alles auswählen

<!-- IF S_USER_MOBILE -->
Blubb
<!-- ENDIF -->
<!-- IF not S_USER_MOBILE -->
bLUBB
<!-- ENDIF -->
Danke sehr.

Gruß,
mps

Re: Mobile-Erkennung

Verfasst: 21.05.2014 21:08
von Miriam
Wenn Du das so machen möchtest, solltest Du in der /includes/functions.php eine neue überall verfügbare Templatevariable erstellen, die wahr ist, falls es sich um einen mobilen User handelt und falsch, wenn nicht.

Das Template Konstrukt sollte prinzipiell so aussehen:

Code: Alles auswählen

IF Variable 
Anweisung A
ELSE
Anweisung B
ENDIF

Re: Mobile-Erkennung

Verfasst: 21.05.2014 21:39
von mps
Auf die functions.php bin ich auch schon gekommen, jedoch weiß ich nicht wo genau ich den Code einfügen muss, ohne dass mein Board gleich wiedet nicht geht...

Danke sehr.

Gruß,
Mps

Re: Mobile-Erkennung

Verfasst: 21.05.2014 21:53
von Miriam
Wer nicht wagt...

Hier hast Du mal eine prinzipielle Vorgehensweise für Dein Problem. http://mymods.lifestyle-dream.de/viewto ... ?f=13&t=71
Also eigentlich ist es genau das, was Du suchst. Nur mit einer anderen Funktion und anderen Variablennamen.
Hier im Forum solltest du auch fündig werden.

Re: Mobile-Erkennung

Verfasst: 21.05.2014 22:02
von HabNurNeFrage
Hi,

schätzungsweise eine ähnliche Vorgehensweise wie hier: viewtopic.php?f=74&t=231307&p=1322533#p1322504 :wink:

Die Funktion (Stelle hat BlackHawk genannt)

Code: Alles auswählen

// Funktion zur Erkennung vieler mobiler Browser
function find_mobile_browser() {
    if(preg_match('/(iPhone|iPad|iPod|Android|blackberry|webOS|xda|zte|htc)/i', $_SERVER['HTTP_USER_AGENT'])) {
        return true;
    } else {
        return false;
    }
}

$mobile_browser = find_mobile_browser();
Die Template-Variable fürs Array: 'S_USER_MOBILE' => $mobile_browser,

LG

Re: Mobile-Erkennung

Verfasst: 22.05.2014 13:18
von mps
Hallo,

es kam leider, wie es kommen musste:
Fatal error: Cannot redeclare find_mobile_browser() (previously declared in /home/webpages/lima-city/epboard/html/site/test4ever/includes/functions.php:4644) in /home/webpages/lima-city/epboard/html/site/test4ever/cache/tpl_subsilver2_overall_header.html.php on line 8
Habe den langen Code vor dem Array eingefügt und den kleinen in das Array. In der Template steht jetzt:

Code: Alles auswählen

<!-- IF S_USER_MOBILE -->
Code, wenn mobil unterwegs
<!-- ELSE -->
Code, wenn nicht mobil unterwegs
<!-- ENDIF -->

Re: Mobile-Erkennung

Verfasst: 22.05.2014 16:09
von HabNurNeFrage
Hi,

jede Funktion darf nur einmal mit dem selben Namen definiert sein.
Also 1x raus oder Deine Datei nicht includen, wenn die Funktion auch noch quasi global in der functions.php eingetragen ist...

LG

Re: Mobile-Erkennung

Verfasst: 22.05.2014 16:10
von mps
Hallo,

ich habe das Problem lösen können, indem ich die Cache-Datei verändert habe und dann somit ins ACP gehen konnte, um den Template-Cache zu löschen.

Vielleicht eine Idee für PHPBB 3.1.0, eine Art "safemode" einzufügen.

Gruß,
mps

Edit: Danke @HabNurNeFrage

Re: Mobile-Erkennung

Verfasst: 22.05.2014 18:03
von Miriam
Falls noch einmal eine solche Problematik auftreten sollte -> wirf mal einen Blick auf die PHP Funktion function_exists() -> http://www.php.net/manual/de/function.f ... exists.php