Zum Inhalt springen

Einbinden einer Class aus einer anderen Extension in eigenes PHP-Script

Erstellt am 21. Januar 2016 · Noch keine Antworten

Tags: TYPO3 6.x, Frage

NetWeb ·

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!