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

Seite 3 / 3

Der Seitenaufbau

Gemäß der Benutzerführung auf mobilen Endgeräten ist es am sinnvollsten, immer nur das Menü der Unterseiten anzuzeigen und darunter den Content. Für den Zurück-Button sorgt jQuery Mobile automatisch. Damit dies aber reibungslos funktioniert, muss man im Seitenbaum gewährleisten, dass man bei Aufruf jeder Seite ein Untermenü anzeigen kann. Klassisch kann man dies bei der Startseite falsch machen – diese sollte immer eine Ebene vor den weiteren Seiten der ersten Ebene sein und dort (eventuell) eine Seite „Home“ enthalten, die aber nur eine Weiterleitung ist.

Nun geht es an den Aufbau der Seite an sich. Auch hier reichen ein paar Zeilen TypoScript völlig aus. Das Beispiel setzt im Folgenden voraus, dass sich sämtliche Inhalte in der Spalte „normal“ befinden – ist dies bei späterer Umsetzung eines anderen Projekts nicht der Fall, muss man das TypoScript entsprechend umkonfigurieren:

mobile.txt

page = PAGE
page {
   # Einbinden eines eigenen CSS für die mobile Ausgabe
   includeCSS.mobile = fileadmin/site/css/mobile.css

   # Laden der jQuery und jQuery mobile Bibliotheken sowie des jQuery mobile CSS
   headerData.15 = HTML
   headerData.15.value (
      <link rel="stylesheet" href="fileadmin/site/mobile/jquery.mobile-1.0a1.min.css" />
      <script xsrc="fileadmin/site/mobile/jquery-1.4.3.min.js"></script>
	 <script xsrc="fileadmin/site/mobile/jquery.mobile-1.0a1.min.js"></script>
   )

   # Die mobile Seite ist umschlossen von einem DIV mit dem Attribut data-role=“page“
   wrap = <div data-role="page" data-theme="b"> | </div> 

   # Der Titel wird oben in den Header geschrieben
   10 = TEXT
   10.field = title
   10.wrap = <div data-role="header"><h1>|</h1></div>

   # Nach dem Titel wird ein Logo eingefügt und auf die Startseite verlinkt
   # Mit dem Attribut rel=“external“ wird erreicht, dass jQuery Mobile den internen
   # Seitenzähler wieder zurücksetzt und keinen Back-Button anbietet
   20 = IMAGE
   20.file = fileadmin/site/img/logo_tv_mobile.png
   20.typolink.parameter = www.typovision.de
   20.typolink.ATagParams = rel=“external“
   20.wrap = <div id="logo">|</div>

   # Jetzt beginnt der Inhaltsbereich
   20 = HTML
   20.value = <div data-role="content">

   # Aufbau des Navigationsmenüs
   30 = HMENU
   30 {
      # Da man ohnehin nur jeweils das Untermenü sieht und die Startseite selbst „Home“ ist,
      # blenden wir diese (hier die UID=2) einfach aus
      excludeUidList = 2
      special = directory
      special.value >
      1 = TMENU
      1.wrap = <ul data-role="listview" data-inset="true" data-theme="a" data-dividertheme="b"> | </ul>
      1.NO = 1
      1.NO.wrapItemAndSub = <li> | </li>
   }

   # Hier lesen wir die Inhaltsspalte aus
   40 = CONTENT
   40 {
      table = tt_content
      select.orderBy = sorting
      select.where = colPos = 0
      select.languageField = sys_language_uid
   }

   # Am Ende noch ein Footer mit einem direkten Link zur Telefonnummer,
   # d.h. per Klick darauf kann direkt angerufen werden (sofern das Mobilgerät dies unterstützt)
   50 = HTML
   50.value = </div><div data-role="footer"><h4><a href="tel:+49-89-18920870" rel="external">typovision* anrufen</a></h4></div>

}

Listing 6

Bei dem vorangehenden Listing für das Beispiel handelt es sich um einen sehr rudimentären Seitenaufbau – alternativ hätte man beispielsweise ebenso gut ein HTML-Template verwenden und dieses mit Markern oder gar mit TemplaVoilà füllen können.

Dies bleibt jedem selbst überlassen – das Beispiel soll zunächst nur zeigen, wie einfach und unkompliziert man aus einer bereits bestehenden Webpräsenz auf Basis von TYPO3 eine professionelle mobile Website erstellen kann. Dabei sind die Ergebnisse – wie das Beispiel zeigt – durchaus beeindruckend.

Eigene Stylesheets

Um eigene Stile definieren zu können, ist noch ein Stylesheet nötig:

fileadmin/site/css/mobile.css

#logo {text-align:right; padding-top:10px; padding-right:16px; margin-bottom: -25px;}
.csc-header h1 {font-size: 20px; text-align:left; color:#cc0000;border-left:5px solid #999;padding-left:5px;border-bottom:1px solid #999;}
.csc-header h2 {font-size: 18px; text-align:left; color:#cc0000;border-left:5px solid #999;padding-left:5px;border-bottom:1px solid #999;}
.ui-link {color:#cc0000 !important;}
...

Listing 7

Prinzipiell enthält jQuery Mobile bereits ein reichhaltiges und umfassendes Theming, das sehr einfach zu verwenden ist [5].

Das Beispiel zeigt, dass man aus einer TYPO3-Präsenz leicht eine mobile Webpräsenz erstellen kann.
Das Beispiel zeigt, dass man aus einer TYPO3-Präsenz leicht eine mobile Webpräsenz erstellen kann.

Mobile Features

Schließlich kann man die Website noch mit mobilen Features, wie im Objekt page.50 geschehen, anreichern – hier wird ein Anrufen-Button auf jeder Seite im Footer positioniert. Ist das Endgerät ein Telefon, zeigt es die hinterlegte Nummer in der Telefon-App an.

Auch kann man beispielsweise einen Link auf der Kontaktseite präsentieren, der direkt auf Google Maps führt und dort in den Routenplaner direkt die Zieladresse einträgt. Will man den Benutzer animieren, direkt eine E-Mail oder eine SMS zu senden, so kann man auch dies entsprechend angeben.

Startseite
  • Seite:
  • 1
  • 2
  • 3

Bitte beachte unsere Community-Richtlinien

24 Reaktionen
AlexanderDeLarge

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

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?

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

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

lizzy

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

lizzy

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

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

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?

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

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

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ß

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

Jens

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

Gruß

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

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

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?

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

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

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

Sven Wappler

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.

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

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.

Dirk Wohlrabe

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

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

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!

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

Jetzt anmelden