Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

t3n 22

Mobile Websites mit jQuery Mobile und TYPO3

Während zunehmend mehr mobile Endgeräte auf den Markt drängen, fragen sich die Seitenbetreiber zu Recht, ob sie nun für all diese Plattformen eigene Websites entwickeln müssen. Für einige der Plattformen gibt es bereits UI-Frameworks – aber erst jQuery Mobile[1] schickt sich an, alle relevanten Plattformen auf einmal bedienen zu können. Der Artikel zeigt, wie dies genau im Zusammenspiel mit TYPO3 funktioniert.

Bis dato gab es einige User-Interface-Frameworks, die – oftmals auf eine Plattform begrenzt – mit kleinem Aufwand ordentlich aussehende mobile Websites darstellen konnten. Hier ist beispielsweise iUI (iPhone User Interface) [2] oder WebApp.net [3] zu nennen, die die iOS-Plattform bedienen. Mit jQTouch [4] wurde versucht, dies auch auf andere Plattformen auszuweiten – allerdings führte man dies nicht in allen Aspekten konsequent durch.

Eine identische Darstellung von herkömmlichen Websites auf dem iPhone scheitert oft schon an dem zur Verfügung stehenden Platz.
Eine identische Darstellung von herkömmlichen Websites auf dem iPhone scheitert oft schon an dem zur Verfügung stehenden Platz.

Auch wenn viele Website-Betreiber seit dem iPhone versuchen, herkömmliche Webseiten auf mobilen Endgeräten genau so wie auf dem Desktop darzustellen, funktioniert dies nur bedingt – die Displays sind hierfür schlicht zu klein. Davon abgesehen ist eine identische Darstellung auch selten sinnvoll, da sich die mobile Nutzung weitestgehend vom Surfen am Desktop unterscheidet. Man will schnell die wichtigsten Informationen über eine Firma, ein Produkt oder eine Dienstleistung, ohne sich die Finger zu brechen oder sich eine neue Brille kaufen zu müssen.

So kam das jQuery-Team im August 2010 auf die Idee, ihr sehr erfolgreiches JavaScript-Framework speziell für die mobile Welt anzupassen und dabei sämtliche relevanten Endgeräte so zu adressieren, dass ein sinnvolles und ansprechendes User-Interface gewährleistet ist und dieses vor allem auf allen unterstützten Endgeräten identisch aussieht. Der Name für diese Framework-Erweiterung war schnell gefunden – jQuery Mobile.

Am 16.10.2010 erschien die erste voll einsatzfähige Version (zunächst noch als Alpha). Besonders zukunftsweisend ist bei diesem Projekt, dass es mit der Unterstützung von nahezu jedem Hersteller mobiler Endgeräte gestartet ist. Dieser Aspekt ist für eine identische Lauffähigkeit auf allen Geräten von großer Bedeutung.

Erste Schritte mit jQuery Mobile

Im ersten Schritt gilt es, das jQuery-Mobile-Framework herunterzuladen und zu entpacken. Die Dateien gehören in einen Ordner unterhalb des Verzeichnisses „fileadmin/“ der TYPO3-Instanz (für das Beispiel kommt das Verzeichnis „fileadmin/site/mobile/“ zum Einsatz). Das Archiv enthält neben den JavaScript-Dateien auch die benötigten Stylesheets und Bilder im Unterordner „images/“.

HTML

<!DOCTYPE html>
<html>
	<head>
	<title>Seitentitel</title>
	<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.css" />
	<script xsrc="http://code.jquery.com/jquery-1.4.3.min.js"></script>
	<script xsrc="http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.js"></script>
</head>
<body> 

<div data-role="page">

	<div data-role="header">
		<h1>Seitentitel</h1>
	</div><!-- /header -->

	<div data-role="content">
		<p>Hier wird der Inhalt erscheinen.</p>
	</div><!-- /content -->

	<div data-role="footer">
		<h4>Footer</h4>
	</div><!-- /header -->
</div><!-- /page -->

</body>
</html>

Listing 1

Das exemplarische Seiten-Template in Listing 1 greift im Header auf die Möglichkeit zurück, die benötigten JavaScript- und CSS-Dateien über das CDN zu laden. Ob man dies nutzt, bleibt jedem selbst überlassen. Für das Beispiel werden die Dateien später lokal verlinkt.

Im Template wird auch der grundsätzliche Aufbau von jQuery Mobile sichtbar. Die Organisationseinheit einer „Seite“ legt man mit dem HTML5-Attribut „data-role="page"“ fest. Dort enthalten sind zunächst drei Elemente: ein Header (data-role="header"), ein Inhaltsbereich (data-role="content") und ein Footer (data-role="footer").

Letztlich sind mehrere Seiten innerhalb eines Dokuments möglich, die über einen Anker-Link angesprungen werden. Das bedeutet allerdings, dass es (zumindest momentan) keine normalen Anker-Links gibt. Normale Seiten kann man mit einem klassischen Link anspringen – lediglich den Inhalt lädt man vorab per AJAX, um eine Animation der Seite einerseits und eine Ladegrafik während des Ladens andererseits anzuzeigen.

Links und Literatur

  1. jQuery Mobile
  2. iPhone User Interface
  3. WebApp.Net
  4. jQTouch
  5. Theming in jQuery Mobile

Finde einen Job, den du liebst zum Thema TYPO3, PHP

24 Reaktionen
AlexanderDeLarge
AlexanderDeLarge

Hi, mich würde noch interessieren wie ich bei dieser Version dem User einen Link zur "Vollansicht" der Seite anbieten könnte.

Antworten
jurgen.maier.908
jurgen.maier.908

hi,

habe mit dieser Anleitung unsere Mobile Anpassung umgesetzt.
Danke für die Anleitung.

Gibt es die Möglichkeit mit dieser Umsetzung auch einen "Zur Desktop Version" Button einzubauen?

Antworten
besucher80

Hallo,toller Beitrag. Aber eine Sache bleibt mir noch ein Rätsel.Ich habe auf meiner Hauptseite einige Extensions die binden JS und CSS Dateien in den Header ein z.b. tx_jfmulticontent, t3sjslidernews etc. Wie kann ich das denn nun auf der mobilen unterbinden? Die sollen da ja nicht eingebunden werden. Habt ihr dazu einen Tipp? Danke

Antworten
Patrick Lobacher

Hi Lizzy,

super, dass es jetzt wieder funktioniert... wenn noch Probleme auftreten sollten, dann melde Dich einfach!

VG und einen schönen Sonntag noch,
Patrick

Antworten
lizzy
lizzy

es hat sich erledigt, es lag der Extension qcom_htmlcleaner, nach der Deinstallation funktioniert alles tadellos...
gruß und dank

Antworten
lizzy
lizzy

ups, jetzt hat es die html-Tags im Kommentar verschluckt:

ich beziehe mich auf die Zeile doctype = !Doctype html (in eckigen Klammern)

Antworten
lizzy
lizzy

Hallo Patrick,
ich wollte anhand deines Beispiels die Sache etwas umbauen und einen eigenen Seitenbaum für die Mobilseiten erstellen - das müsste ja im Prinzip ähnlich funktionieren. In der Condition mache ich einen meta.refresh auf die Subdomain, das klappt auch soweit.
Nun setze ich dein Typoscript in das Root-Template der Subdomain und habe zwei Probleme:
mit doctype = schmeißt er mir alle html-Tags im Dokument raus, es bleiben nur die Kommentare im Template - File und die richtig "ersetzten" Marker. Aber kein head, kein body....

und das andere Problem (wenn ich den doctype erstmal nicht setze): im Template werden die div-Tags nicht richtig übernommen: data-role="header" usw. wird einfach gelöscht, es bleiben nur die -Tags ohne Attribute. Alles andere wird korrekt eingebunden...
Typo3 Version 4.5.10
Da scheint irgendwas grundlegendes schief zu laufen... Hast du eine Idee?

Antworten
andrey
andrey

Nichts gegen typovision und Patrick Lobacher, aber ihr wisst schon die Bedeutung von "Digital Native"? Es gibt nichts schlimmeres als jemanden der alles kann und irgendwie nichts richtig ...

Antworten
Carsten
Carsten

Habe das Tutorial ausprobiert, und finde die Möglichkeiten super,

Ich habe nur genau das gleiche Problem, dass auf dem iPhone die Schriften viel kleiner angezeigt werden...

Gruß
Carsten

Antworten
cbinger
cbinger

Hallo,

ich habe dasselbe Problem wie Kay Zoller, allerdings hilft bei mir der oben angewandte Lösungsweg nicht. Habe alle vorgeschlagenen Varianten durchprobiert.
Einmal mit der user_mobile.php direkt im typo3conf Verzeichnis, aber auch mit der Pfadangabe "require_once(PATH_site.'/fileadmin/mobile/user-mobile.php');" und gleichzeitiger Umbenennung der user_mobile-php in user-mobile.php.
Sobald ich etwas in die localconf.php eintrage, wird mein Browserfenster weiss.

Gruß

Antworten
haehnchen
haehnchen

falls wer noch ein fertiges TYPO3 Template inklusive Typoscript und co. sucht:
http://www.espend.de/artikel/jquery-mobile-mit-typo3-als-html5-template.html

Antworten
Jens
Jens

...hat sich erledigt, hat sich ein anderes Script untergemischt :-)

Gruß

Jens

Antworten
Jens
Jens

Hallo zusammen,

eigentlich funktioniert der Nachbau recht problemlos, Allerdings wenn ich die Seite auf meinem Iphone 4 anschaue, sind alle Elemente zu klein. (Header, Navigation, Text, wirken als ob Sie 50 % zu klein wären) An den CSS scheint es nicht zu liegen, da ich andere Seiten mit exakt gleichen CSS normal anschauen kann. Den Text kann ich zwar auf 200% setzen, womit die richtige Größe erreicht wird, aber ist ja erstmal nicht Sinn der Sache und die anderen Elemente (navigation etc.) wachsen ja nicht mit. Woran kann es liegen?

Gruß
Jens

Antworten
Kay Zoller

Problem gelöst... Ursache waren zwei Punkte:

1. Mein Fehler: in der Pfadangabe hatte ich anstelle user-mobile.php user_mobile.php geschrieben

2. Funktioniert hat es allerdings erst mit der Angabe "require_once(PATH_site.'/fileadmin/mobile/user-mobile.php');"

Ich bedanke mich für die Unterstützung und entschuldige mich für meinen Fehler.

Nochmals herzlichen Dank für das ausführliche Tutorial.

Viele Grüsse
Kay

Antworten
Kay Zoller

Danke Tobias

Hat leider keine Wirkung gezeigt. Beide Seiten (Frontend und Backend) bleiben weiss. Kann das was mit der Extension "realurl" zu tun haben?

Antworten
Tobias Felbecker
Tobias Felbecker

Hallo Kay

Versuche es mal mit require_once('../fileadmin/site/mobile/user_mobile.php');
oder kopiere die user_mobile.php direkt ins typo3conf Verzeichnis zur localconf Datei und binde die Datei mit require_once('user_mobile.php'); ein

Gruss Tobias

Antworten
Kay Zoller

Hallo zusammen

Ein sehr interessanter Artikel, den ich gerade versuche umzusetzten. Leider scheitert es bei mir schon bei der Einbindung der Funktion bei der Zeile

"require_once('fileadmin/site/mobile/user_mobile.php');"

Sobald ich diese Zeile in der localconf.php stehen habe, erhalte ich überhaupt keine Anzeige mehr. Weder im Backend, noch im Frontend. Es erscheint einfach eine weisse Seite ohne Quellcode...

Weiss vielleicht jemand Rat?

Grüsse
Kay

Antworten
Tobias
Tobias

Hallo zusammen

Ich habe eine mobile Version unserer Website mit JQuery Mobile umgesetzt. Die TYPOSCRIPT Page Definition (Menüs, Content, etc) für die mobile Seite wird auch über [userFunc = user_isMobile] ...[end] angesteuert. Die Einbindung der CSS und JS Dateien funktioniert analog.

Das CSS und JS wird immer richtig geladen, allerdings habe ich hin und wieder das Problem, dass auf dem mobilen Browser trotzdem der HTML Content für die normale Seite geladen wird. Ich gehen davon aus, dass das ein Cache Problem ist. Hat jemand damit Erfahrungen gemacht?

Gruss Tobias

Antworten
wapplersystems
wapplersystems

Ich habe hatte das Ganze mal in Verbindung mit TemplaVoila ausprobiert. http://m.wapplersystems.de/
Das macht bei Websites Sinn, deren Inhalte sich selten ändern. Ich beschäftige mich daher seit einigen Tagen mit dem Gedanken, alles mittels Responsive Webdesign zu lösen. jQuery Mobile könnte da natürlich bei mobile devices helfen, aber habe leider noch nicht eine gute Kombinationsmöglichkeit gefunden.

Antworten
Patrick Lobacher

@Benny: Das ist sehr schwer zu sagen - könntest Du das ganze mal zippen und mir schicken? Dann schaue ich mir das gerne mal an. patrick.lobacher [AT] typovision [DOT] de

Patrick

Antworten
Benny

Hallo Zusammen,
ich hatte mir nachträglich die Ausgabe 22 wegen diesem Thema gekauft. Doch leider komme ich an einer Stelle nicht ganz weiter. Und zwar wenn ich die Links zu den JQuery-Files einsetzte. Wenn ich die links von der JQuery Seite einfüge erhalte ich nur eine weiße Seite, wenn ich die Files auf meinem Server platziere werden diese gar nicht ausgelesen und der Inhalt wird normal angezeigt. Also die Navigation in einer ganz normalen Liste. Die eigene CSS beispielsweise wird jedoch geladen. Vielleicht kann mir einer einen heißen Tip geben. Schon mal besten Dank und liebe Grüße.

Antworten
Dirk Wohlrabe

Hey Patrick, bist du schon weiter gekommen, wir haben das gleich Problem? Templavoila funktioniert wie gewünscht, jedoch die Navi nicht.
Gruß

Antworten
marcel.birrer
marcel.birrer

Hallo Patrick

Bin daran, deinen Artikel mit einem Templavoila-Template umzusetzen und beinahe am Ziel. Leider krieg ich die Subnavigation nicht hin wie bei deinem Beispiel von typovision.de - statt dass ein neues Menu mit den Unterpunkten aufgebaut wird, wird die entsprechende Seite in der Hauptnavigation verschachtelt angezeigt (s. mobile Version -> Forschung und Entwicklung). Wie müsste das TMENU TS für die Subnavigation aussehen, resp. wie habt ihr das für typovision.de hingekriegt?

Beste Grüsse

Marcel Birrer

Antworten
Dirk Wohlrabe

Hallo Patrick, mit großem Interesse habe ich deinen Artikel gelesen und unter http://www.quadromobil.de mal nachgebaut.

Super Ansätze, jedoch sind noch einige Sachen im Argen. Mit Realurl läuft es leider nicht, da Unterpunkte ohne Layout geladen werden. Templavoila wäre auch als Beispiel interessant gewesen.

Ein Beispiel für ein funktionierendes Formular wäre super genial.

Vielleicht kann T3N ja hier noch mal nachlegen, da diese Geschichte meiner Meinung nach, sehr zukunftsträchtig ist und solche Seiten auch redaktionell betreut werden wollen.

Gruß aus Bad Bergzabern!

Antworten

Melde dich mit deinem t3n-Account an oder fülle die unteren Felder aus.

Abbrechen