ThemesMobil

Guite edited this page Nov 12, 2014 · 2 revisions

Mobile Geräte erkennen

Für mobile Besucher kann man den Seiteninhalt mit einem eigenem Theme anzeigen lassen. Somit kann man dann z.B. große Flashdateien im Kopfbereich nicht anzeigen lassen und somit den Traffic gering halten und zur Freude des Besuchers die Seite schneller laden lassen.

Damit das funktioniert muß im Haupttheme erkannt werden, daß es sich bei dem Besucher um ein mobiles Gerät oder einen Besucher mit geringerer Bildschirmauflösung handelt.

Das klappt mit Einbindung eines kleinen Plugings in den Header des Hauptthemes:

<head>
...
<!--[mobil]-->
...
</head>

Der Code für das Plugin sieht dann so aus und wird als Datei function.mobil.php unter themes/deintheme/plugins abgespeichert.

<?php

function smarty_function_mobil($params, &$smarty) {
  $agents = array(
    'Windows CE', 'Pocket', 'Mobile',
    'Portable', 'Smartphone', 'SDA',
    'PDA', 'Handheld', 'Symbian',
    'WAP', 'Palm', 'Avantgo',
    'cHTML', 'BlackBerry', 'Opera Mini',
    'Nokia', 'iPhone'
  );

  // Prüfen der Browserkennung
  for ($i=0; $i<count($agents); $i++) {
    if(isset($_SERVER["HTTP_USER_AGENT"]) && strpos($_SERVER["HTTP_USER_AGENT"], $agents[$i]) !== false)
      pnRedirect('index.php?newtheme=Mobil');
  }

  return;
}

Mit index.php?newtheme=Mobil wird dann auf das neue Theme "Mobil" umgeschaltet.

Themes einmalig oder generell umschalten

Übrigens mit dem Anhängsel

theme=THEMENAME

kann man verlinkte Seiten einmalig direkt mit einem speziellem Theme anzeigen lassen. Springt man dann wieder auf eine andere Seite bleibt das vorherige Theme aktiv. Um z.B. einen bestimmten Pagesetter-Artikel z.B. ohne Blöcke anzeigen zu lassen sieht es so aus: index.php?module=pagesetter&tid=4&pid=15&theme=OnlyMain

Natürlich muß es dann ein Theme names OnlyMain geben, indem man dann in der master.html die Aufrufe für die Blöcke wegläßt und nur den Hauptinhalt mit '' '' anzeigen läßt. Gut in Zikula gibt es dafür auch schon schönere Lösungen über die Blockkonfiguration und die dortigen Filter.

Um ein Theme permanent zu wechseln gibt es die Erweiterung

newtheme=THEMENAME

Damit bleiben werden im Gegensatz zu theme=THEMENAME alle folgenden Seitenaufrufe mit diesem Layout angezeigt, so wie im obigen Plugin.

Weitere Links

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.