NAVIGATION
This shows you the differences between two versions of the page.
|
deutsch:andere-erweiterungen:tools:user-agent [2012/02/24 00:15] Knut Heermann (flip-flop) |
deutsch:andere-erweiterungen:tools:user-agent [2018/06/03 18:09] (current) |
||
|---|---|---|---|
| Line 3: | Line 3: | ||
| Seit der Release r429 können im Template mit IF Statements entsprechend der Ausgabe des User-Agenten Unterscheidungen getroffen werden. | Seit der Release r429 können im Template mit IF Statements entsprechend der Ausgabe des User-Agenten Unterscheidungen getroffen werden. | ||
| + | ACHTUNG: Es wird empfohlen in diesem Zusammenhang (mindestens) die r452 zu verwenden da einige Unklarheiten bis dorthin beseitigt wurden. | ||
| - | Hier stelle ich eine kleines Testscript vor mit dem es möglich ist, die Werte des User-Agenten und die daraus resultierenden Ergebnisse aus den verschiedenen ##%%<!--if:XXXX-->Do that<!--/if-->%%## Abfragen darzustellen. | + | Hier wird eine kleines Testscript vorgestellt, mit dem es möglich ist die Werte des User-Agenten und die daraus resultierenden Ergebnisse aus den verschiedenen ##%%<!--if:XXXX-->Do that<!--/if-->%%## Abfragen darzustellen. |
| - | Hierzu wird die unten gezeigte php-Datei im Verzeichnis /frontend_render/.. installiert. | + | Hierzu wird die unten gezeigte php-Datei im Verzeichnis %%/frontend_render/..%% installiert. |
| Die Ansteuerung übernimmt der TAG **{IF-UAG}** oder **{IF-UAG:X:Y}** wobei X den Abstand vom linken -und Y den Abstand vom oberen Browserrand für die Ausgabe angeben. \\ | Die Ansteuerung übernimmt der TAG **{IF-UAG}** oder **{IF-UAG:X:Y}** wobei X den Abstand vom linken -und Y den Abstand vom oberen Browserrand für die Ausgabe angeben. \\ | ||
| Line 17: | Line 18: | ||
| Der TAG sollte möglichst am Anfang oder am Ende außerhalb des äußeren div-Containers platziert werden. | Der TAG sollte möglichst am Anfang oder am Ende außerhalb des äußeren div-Containers platziert werden. | ||
| - | Die php-Datei kann im Bereich der IF-Abfragen nach eigenen Vorstellungen angepasst werden. In dieser ersten Übersicht sind alle möglichen IF Abfragen mit einfachen Werten enthalten. Die Negierungen sind nicht eingepflegt. | + | Die php-Datei kann im Bereich der IF-Abfragen nach eigenen Vorstellungen angepasst werden. In dieser ersten Übersicht sind alle möglichen IF Abfragen mit einfachen Werten enthalten. Die negierten Abfragen sind nicht eingepflegt. |
| \\ | \\ | ||
| Line 34: | Line 35: | ||
| - | **%%<!--if:XXXX-->....<!--/if-->%%** oder die Nagation: **%%<!--!if:XXXX-->....<!--/!if-->%%** | + | **%%<!--if:XXXX-->....<!--/if-->%%** oder die Negation: **%%<!--!if:XXXX-->....<!--/!if-->%%** |
| Line 57: | Line 58: | ||
| <code html> | <code html> | ||
| <!--if:device:Default--> - Device Default<br> <!--/if--> | <!--if:device:Default--> - Device Default<br> <!--/if--> | ||
| - | <!--if:device:Smartphonet-->- Device Smartphone<br> <!--/if--> | + | <!--if:device:Smartphone--> - Device Smartphone<br> <!--/if--> |
| <!--if:device:Tablet--> - Device Tablet<br> <!--/if--> | <!--if:device:Tablet--> - Device Tablet<br> <!--/if--> | ||
| <!--if:device:Desktop--> - Device Desktop<br> <!--/if--> | <!--if:device:Desktop--> - Device Desktop<br> <!--/if--> | ||
| Line 105: | Line 106: | ||
| === Tablets: === | === Tablets: === | ||
| + | **Seit der Version 1.5 (R452) wird tablet nicht mehr als "mobile" ausgegeben.** | ||
| + | |||
| {{ :deutsch:andere-erweiterungen:tools:uag_android-tablet_1.gif|}} | {{ :deutsch:andere-erweiterungen:tools:uag_android-tablet_1.gif|}} | ||
| {{:deutsch:andere-erweiterungen:tools:uag_ios-tablet_1.gif|}} | {{:deutsch:andere-erweiterungen:tools:uag_ios-tablet_1.gif|}} | ||
| Line 298: | Line 301: | ||
| \\ | \\ | ||
| + | |||
| + | \\ | ||
| + | |||
| + | ====== Extrahieren der OS Version von iOS ====== | ||
| + | |||
| + | ==== Version 1.0 ==== | ||
| + | |||
| + | |||
| + | Verwendung innerhalb des CMS z.B.: | ||
| + | |||
| + | <!--if:platform:iOS_V3-->iOS Version3<!--/if--> | ||
| + | <!--if:platform:iOS_V4-->iOS Version4<!--/if--> | ||
| + | |||
| + | \\ | ||
| + | **Einfaches Script:** abgeleitet von -> [[http://stackoverflow.com/questions/7768324/detect-ios-version-with-php|Detect iOS version with PHP]] | ||
| + | |||
| + | **Datei:** template/inc_script/**frontend_init**/rt_iOS_OS_user_agent.php | ||
| + | |||
| + | <code php |h rt_iOS_OS_user_agent.php |h> | ||
| + | <?php | ||
| + | /* | ||
| + | ******************************************************************* | ||
| + | * 08.11.2012 KH: Extract the OS from the User-Agent for iOS devices | ||
| + | * | ||
| + | * This solution can be queried with the built in if statements. -> iOS_V4, iOS_V5, iOS_V6 | ||
| + | * | ||
| + | * In CMS e.g.: | ||
| + | * <!--if:platform:iOS_V3-->iOS Version3<!--/if--> | ||
| + | * <!--if:platform:iOS_V4-->iOS Version4<!--/if--> | ||
| + | * | ||
| + | * File: template/inc_script/frontend_init/rt_iOS_OS_user_agent.php | ||
| + | * | ||
| + | ********************************************************************/ | ||
| + | |||
| + | // ------------------------------------------------------------------------------------------- | ||
| + | // obligate check for phpwcms constants | ||
| + | if (!defined('PHPWCMS_ROOT')) {die("You Cannot Access This Script Directly, Have a Nice Day.");} | ||
| + | // ------------------------------------------------------------------------------------------- | ||
| + | |||
| + | // Example USER-AGENT iOS | ||
| + | // -------------------------------------------------------- | ||
| + | // Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5 | ||
| + | // Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5 | ||
| + | // -------------------------------------------------------- | ||
| + | |||
| + | if ($GLOBALS['phpwcms']['USER_AGENT']['platform'] == 'iOS') { | ||
| + | |||
| + | $os_vers = preg_replace("/(.*) OS ([0-9]*)_(.*)/","$2", $_SERVER['HTTP_USER_AGENT']); | ||
| + | $GLOBALS['phpwcms']['USER_AGENT']['platform'] = $GLOBALS['phpwcms']['USER_AGENT']['platform'].'_V'.$os_vers; | ||
| + | } | ||
| + | |||
| + | ?> | ||
| + | |||
| + | </code> | ||
| + | \\ | ||
| + | An die Ausgabe der Plattform wird einfach die iOS-Version angehängt, bei einem Smartphone oder Tablet unter iOS 5 wird z.B. aus **iOS** -> **iOS_V5**. | ||
| + | |||
| + | Bitte prüfen beim iPod und älteren iOS-Versionen. | ||
| + | |||
| + | \\ | ||
| + | |||
| + | ==== Version 1.1 ==== | ||
| + | |||
| + | Es wird gegen iOS-Versionen größer 5 geprüft. | ||
| + | |||
| + | Verwendung innerhalb des CMS z.B.: | ||
| + | |||
| + | <!--if:platform:iOS-->iOS Version x - 5<!--/if--> | ||
| + | <!--if:platform:iOS_V6-->iOS Version6<!--/if--> | ||
| + | |||
| + | \\ | ||
| + | **Einfaches Script:** abgeleitet von -> [[http://stackoverflow.com/questions/7768324/detect-ios-version-with-php|Detect iOS version with PHP]] | ||
| + | |||
| + | **Datei:** template/inc_script/**frontend_init**/rt_iOS_OS_user_agent.php | ||
| + | |||
| + | <code php |h rt_iOS_OS_user_agent.php |h> | ||
| + | <?php | ||
| + | /* | ||
| + | ******************************************************************* | ||
| + | * 08.11.2012 KH: Extract the OS from the User-Agent for iOS devices | ||
| + | * V1.1 | ||
| + | * This solution can be queried with the built in if statements. -> iOS, iOS_V6 | ||
| + | *Enhanced V1.1: Only if iOS V6 is used, the if statement is extended. | ||
| + | * | ||
| + | * | ||
| + | * In CMS e.g.: | ||
| + | * <!--if:platform:iOS-->iOS Version x - 5<!--/if--> | ||
| + | * <!--if:platform:iOS_V6-->iOS Version6<!--/if--> | ||
| + | * | ||
| + | * File: template/inc_script/frontend_init/rt_iOS_OS_user_agent.php | ||
| + | * | ||
| + | ********************************************************************/ | ||
| + | |||
| + | // ------------------------------------------------------------------------------------------- | ||
| + | // obligate check for phpwcms constants | ||
| + | if (!defined('PHPWCMS_ROOT')) {die("You Cannot Access This Script Directly, Have a Nice Day.");} | ||
| + | // ------------------------------------------------------------------------------------------- | ||
| + | |||
| + | // Example USER-AGENT iOS | ||
| + | // -------------------------------------------------------- | ||
| + | // Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5 | ||
| + | // Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5 | ||
| + | // -------------------------------------------------------- | ||
| + | |||
| + | if ($GLOBALS['phpwcms']['USER_AGENT']['platform'] == 'iOS') { | ||
| + | |||
| + | $os_vers = preg_replace("/(.*) OS ([0-9]*)_(.*)/","$2", $_SERVER['HTTP_USER_AGENT']); | ||
| + | |||
| + | if (((int) $os_vers) == $os_vers) // Integer ? | ||
| + | if ($os_vers > 5) | ||
| + | $GLOBALS['phpwcms']['USER_AGENT']['platform'] .= '_V6'; | ||
| + | } | ||
| + | |||
| + | ?> | ||
| + | |||
| + | </code> | ||
| + | \\ | ||
| + | An die Ausgabe der Plattform wird bei Verwendung von iOS6 einfach _V6 angehängt (**iOS** -> **iOS_V6**). Alle tieferen iOS-Versionen haben keinen Einfluss. | ||
| + | |||
| + | Bitte prüfen beim iPod und älteren iOS-Versionen. | ||
| + | |||
| + | \\ | ||
| + | |||