Du möchtest vom Handy aus über einen Link die Desktop Version aufrufen?
MFG Anderl
Hallo Community,
ich habe für meine mobile TYPO3-Seite einen neuen Render-type hinzugefügt, der "mobile" heißt. Jetzt kann ich mit Templavoila nun auch diese Seite ansteuern. Das ganze baut auf der Anleitung von Dmitry Dulepov auf.
Da ich aber noch ein Neuling in Sachen TYPO3 bin, weiß ich nicht, mit welchem Link ich die normale Version aufrufen kann, wenn über die USERFUNC das mobile Template ausgewählt wurde. Bisher sieht mein TypoScript so aus:
plugin.tx_templavoila_pi1.childTemplate = USERFUNC:user_mobile->getChildTemplate
plugin.tx_templavoila_pi1.childTemplate.value = mobile
page = PAGE
page.typeNum = 0
page.config {
#...
}
page.bodyTag = <body>
page.10 < plugin.tx_templavoila_pi1
page.10.userFunc = tx_templavoila_pi1->main_page
#######################
[userFunc = user_isMobile]
#...TS für mobile Seite
#######################
[ELSE]
#....TS für normale SeiteDer Hintergrund ist, dass ich auf meiner mobilen Seite einen Link haben möchte, der zur Desktopversion umleitet.
mfG
Du möchtest vom Handy aus über einen Link die Desktop Version aufrufen?
MFG Anderl
Ja genau, damit man wenn man ein Highend Smartphone hat auf nichts zerzichten muss.
Hi,
ich habe dafür die userFunc die den UserAgent überprüft um einen GET-Parameter und eine Session-Variable erweitert.
Über einen Link im Footer (zur mobilen Version, zur Vollversion) kann man den GET-Parameter an die momentane URL anhängen:PHP-Code:/*
* mobileversion = 1 zeigt mobile Version an
* mobileversion = 2 zeigt normale Browserversion an
* ansonsten User Agent detection
* @return true für mobile, false für normale Version
*/
if (!function_exists('user_check_client')) {
function user_check_client() {
$TSFE = $GLOBALS["TSFE"];
$mobile = false;
$getvar = (int)$_GET['mobileversion'];
if ($getvar == 1)
{
$mobile = true;
}
else if ($getvar == 2)
{
$mobile = false;
}
else
{
$sessionvar = 0;
if ($GLOBALS["TSFE"] != null){
$sessionvar = $GLOBALS["TSFE"]->fe_user->getKey('ses','mobileversion');
}
if ($sessionvar == 1)
{
$mobile = true;
}
else if ($sessionvar == 2)
{
$mobile = false;
}
else
{
//User Agent Abfrage
$mobile = preg_match('/(iPhone|Android|IEMobile|Windows CE|NetFront|PlayStation|PLAYSTATION|like Mac OS X|MIDP|UP\.Browser|Symbian|Nintendo)/', $_SERVER['HTTP_USER_AGENT']);
}
}
//Session Variable speichern
if ($mobile==true)
{
if ($GLOBALS["TSFE"] != null){
$GLOBALS["TSFE"]->fe_user->setKey('ses','mobileversion',1);
}
}
else
{
if ($GLOBALS["TSFE"] != null){
$GLOBALS["TSFE"]->fe_user->setKey('ses','mobileversion',2);
}
}
if ($GLOBALS["TSFE"] != null){
$GLOBALS["TSFE"]->fe_user->storeSessionData();
}
return $mobile;
}
}
FOOTER_VOLLVERSION = TEXT
FOOTER_VOLLVERSION {
value = Vollversion der Website
typolink {
parameter.data = TSFE:id
addQueryString = 1
addQueryString.method = GET
additionalParams =&mobileversion=2
}
}
Damit kann ich umschalten, indem ich an die URL &mobileversion=1 oder 2 anhänge. Und es wird auch weiterhin gespeichert, dass ich nicht im iphone beim nächsten Navigationspunkt wieder umschalten muss.
Vorteil der Session-Variable: kann man auch in einer Extension abfragen:
LG AndreaPHP-Code:if ($TSFE->fe_user->getKey('ses','mobileversion') == 1)
{
$this->mobile = true;
}
Vielen Dank Andrea!
Hallo erstmal,
da ich php technisch nicht so bewandert bin hätte ich eine Frage.
Ich baue die mobile Version über
[userFunc = user_isMobile]
<INCLUDE_TYPOSCRIPT: source="FILE:fileadmin/mobile/mobile.txt">
[end]
und eine PHP Datei die in der localconf importiert wird ein.
function user_isMobile() {
return t3lib_div::_GET('forceMobile') ||
preg_match('/(iPhone|iPod|iPad|IEMobile|Android|Blackberry|Palm|NetFront|Windows CE|MIDP|UP\.Browser|Symbian)/', $_SERVER['HTTP_USER_AGENT']);
}
Was muss ich nun tun, um deinen Code zum laufen zu bringen??
Ihn in die php eintragen geht zwar, aber er macht mir einfach immer dann die "...?mobileversion=2" Endung.
Grüße aus dem sonnigen Erding
Jürgen
Dein PHP-Code ist nicht vollständig.
Danach sollte es laufen. Wenn du mit nem anderen Template arbeiten willst: Tutorial: Erstellen einer Mobile Version für Ihre Website mit TYPO3 & TemplaVoila | typo3-book.com
ich benutze gar kein Template Voila. :-)
Ja, dann musste nur wie du schon geschrieben hast, das vollständige php-Script in die localconf einbinden und über die genannte Userfunc-Condition dein TypoScript-Template ändern.
Dann mal über ein Mobile Device reingucken, obs funktioniert ;)
wonach sollte es laufen??
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen