Hallo zusammen,
abhängig davon, ob der Besucher mit einem Mobilgerät oder per Desktop-Computer die Website aufruft, soll via eigenem PHP unterschiedlicher Inhalt ausgegeben werden. Zur Überüfung des Benutzergeräts kommt die Extension cwmobileredirect zum Einsatz.
Dazu wurde zunächst einmal folgende einfach gehaltene CLASS erstellt:
<?php
class user_inc_snippets_mobile_detection
{
function main()
{
$mobile_device = (tx_cwmobile_device::getInstance()->isMobileForced() || tx_cwmobile_device::getInstance()->isMobile());
if($mobile_device) {
$output = "Mobilgerät";
} else {
$output = "Desktop-PC";
}
return $output;
}
}
?>
Die Variable $mobile_device hat den Wert TRUE (=Mobilgerät) oder FALSE.
Das funktioniert soweit bestens, wenn die Einbindung per includeLib über das Plugin "TypoScript Object" auf einer Inhaltsseite erfolgt. Nun möchte ich die Ausgabe aber auf allen Seiten haben und in einem Marker im Template ausgeben:
includeLibs.user_inc_snippets_mobile_detection = fileadmin/includes/snippets/mobile_detection.inc.php
lib.inc_ext_php_snippets_mobile_detection = COA
lib.inc_ext_php_snippets_mobile_detection {
10 = USER_INT
10.userFunc = user_inc_snippets_mobile_detection->main
10.stdWrap.wrap = |
}
Einbindung in den Marker erfolgt über:
RIGHTCOLUMN < lib.inc_ext_php_snippets_mobile_detection
Jetzt zickt PHP rum und beanstandet, die CLASS nicht zu kennen: "Fatal error: Class 'tx_cwmobile_device' not found in...".
Fazit:
-
1. Fall: Einbindung als Contentelement Mittels Plugin "TypoScript Object" > funktioniert
-
2. Fall: Einbindung desselben Codes über includeLibs > die Class "tx_cwmobile_device" ist nicht mehr bekannt
Hat jemand einen Tipp wie die Class tx_cwmobile_device eingebunden werden muss, damit auch der 2. Fall funktioniert?
Vielen Dank!