Mobile Websites mit jQuery Mobile und TYPO3

von
online gestellt: , Erstveröffentlichung: 30.11.2010

Aus dem
t3n Magazin Nr. 22

12/2010 - 02/2011

Jetzt kaufen

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 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.

dms 2c4f1bfe30cc0e4d0993da143885670c
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 – .

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 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.

Weiterlesen auf Seite 2 »

Seite vor/zurück
1 3
Empfehlen

bewerten
VN:F [1.9.22_1171]
Rating: 5.0/5 (5 votes cast)
Das interessiert dich bestimmt auch
33 Antworten
  1. von Dirk Wohlrabe 14.12.2010 (15:24Uhr) 1.

    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!

  2. von marcel.birrer 29.12.2010 (23:07Uhr) 2.

    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

  3. von Dirk Wohlrabe 04.01.2011 (08:34Uhr) 3.

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

  4. von Benny 12.07.2011 (10:16Uhr) 4.

    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.

  5. von Patrick Lobacher 18.07.2011 (09:36Uhr) 5.

    @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

  6. von Mobile Websites mit jQuery Mobile und TY… 02.08.2011 (12:15Uhr) 6.

    [...] Zum Artikel „Mobile Websites mit jQuery Mobile und TYPO3“… [...]

  7. von wapplersystems 02.08.2011 (18:14Uhr) 7.

    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.

  8. von Tobias 15.08.2011 (20:16Uhr) 8.

    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

  9. von Kay Zoller 18.08.2011 (11:26Uhr) 9.

    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

  10. von Tobias Felbecker 18.08.2011 (12:39Uhr) 10.

    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

  11. von Kay Zoller 18.08.2011 (13:47Uhr) 11.

    Danke Tobias

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

  12. von jquery mobile - TYPO3 Forum & Portal 18.08.2011 (17:17Uhr) 12.

    [...] Version einer bestehende Seite zu erstellen. Dazu benutze ich die Anleitung des Patrick Lobacher im T3N Magazin. Das scheitert bei mir allerdings bereits an der Einbindung einer Funktion in der localconf Datei. [...]

  13. von Kay Zoller 19.08.2011 (09:13Uhr) 13.

    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

  14. von Jens 01.09.2011 (13:20Uhr) 14.

    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

  15. von Jens 01.09.2011 (17:00Uhr) 15.

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

    Gruß

    Jens

  16. von haehnchen 08.11.2011 (21:10Uhr) 16.

    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

  17. von cbinger 11.11.2011 (16:54Uhr) 17.

    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ß

  18. von Carsten 16.12.2011 (23:17Uhr) 18.

    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

  19. von Framework für Web-Apps: Preview von jQu… 19.12.2011 (11:26Uhr) 19.

    [...] Mobile Websites mit jQuery Mobile und TYPO3 - t3n Magazin #22 Weitere Artikel zu jQuery Kommentare: 6 Tweets: 58 Facebook-Likes: 15 15.10.2010 Ads_BA_AD("FOOT"); Das könnte dich auch interessieren:10 freie jQuery-Plugins im ÜberblickDas Team von technolab bietet auf ihrem Portal immer wieder interessante und nützliche Top10-Listen.jQuery Mobile 1.0 erschienenEntwickler aufgepasst, ab sofort steht jQuery Mobile in der stabilen Version 1.0 zum Download bereit.jQuery-Plugins10 Helfer für schönere SchriftenFür Webdesigner gehört es zum guten Ton, wenn möglich auf CSS zu setzen.jQuery Tutorials200 Videos zur JavaScript-BibliothekEine große Sammlung von jQuery Tutorials zeigt den Umgang mit der populären Library. [...]

  20. von andrey 21.12.2011 (08:36Uhr) 20.

    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 ...

  21. von lizzy 09.01.2012 (21:03Uhr) 21.

    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?

  22. von lizzy 09.01.2012 (21:07Uhr) 22.

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

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

  23. von lizzy 09.01.2012 (21:46Uhr) 23.

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

  24. von Patrick Lobacher 22.01.2012 (16:24Uhr) 24.

    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

  25. von Mobile Redirect andersrum - TYPO3 Forum… 19.02.2012 (08:15Uhr) 26.

    [...] [...]

  26. von besucher80 30.03.2012 (08:59Uhr) 27.

    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

  27. von Typo3 und jQuery Mobile 08.05.2012 (08:21Uhr) 28.

    [...] [...]

  28. von Mobile Website vs. App: Infografik für… 13.06.2012 (10:35Uhr) 29.

    [...] Mobile Website mit jQuery Mobile und TYPO3 - t3n News [...]

  29. von Mobile Website vs. App: Infografik für… 13.06.2012 (10:35Uhr) 30.

    [...] Mobile Website mit jQuery Mobile und TYPO3 - t3n News [...]

  30. von jurgen.maier.908 24.09.2012 (11:18Uhr) 31.

    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?

  31. von AlexanderDeLarge 19.10.2012 (17:42Uhr) 32.

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

  32. von Website-Weiterleitung für mobile Gerät… 06.02.2013 (16:01Uhr) 33.

    [...] http://www.domain.com/?web=1  Das war es auch schon :-) Vielen Dank an Patrick Lobacher für den tollen Artikel. Dieser Eintrag wurde veröffentlicht in TYPO3 und verschlagwortet mit mobile, typo3, typoscript, [...]

Deine Meinung

Bitte melde dich an!

Du musst angemeldet sein, um einen Kommentar schreiben zu können.

Jetzt anmelden

Kennst Du schon unser t3n Magazin?

t3n 32 jetzt kostenfrei probelesen! Alle Inhalte des t3n Magazins Diesen Hinweis verbergen