Zum Inhalt springen

EIN Content, ZWEI Template-Seiten

Erstellt am 9. November 2004 · 22 Antworten · letzte Antwort am 30. März 2005 · Seite 1 von 2

Tags: Frage

onkelfusspilz ·

Hi,

ich arbeite mich gerade durch die TYPO3 Doc und es klappt auch schon einiges, aber einer Sache komme ich nicht auf den Trichter:

Ich muss eine Seite mit einem Content erstellen, die aber zwei verschiedene Darstellungsarten haben soll. Genauer eine Darstellung für einen Touchscreen, die andere fürs WEB.

Mein erster Ansatz war das über 2 Layouts zu machen, aber da komme ich ins Stockern: Für einen Link auf die Startseite würde es ja gehen, aber dann müsste immer ein &layer=X an jeden Link angehängt werden, wie kann ich das machen ohne das mir die Dynamik flöten geht?

Das gleiche Problem haben ja wohl alle WebDesigner die z.B. für zwei Unterschiedliche Auflösungen programmieren und dazu unterschiedliche Layouts verwenden wollen. Vielleicht ist die Sache ganz einfach aber ich sehe das Ende des Tunnels nicht.

Über einen Tip/Hinweis würde sich freuen:

Andreas Piening

onkelfusspilz ·

Hi Junior,

meinst Du das so, daß ich die Unteschiede zwischen den beiden Template-Versionen alleine durch verschiedene CSS-files abbilde, oder aber daß ich zwei unterschiedlichen CSS-files nehme und darüber die layer eigenschaft aller Links beeinflusse, so daß z.B. eine Seite immer im Layer 2 bleibt?

Ich bin mir der mächtigkeit von CSS nicht komplett bewusst gebe ich zu, aber was ich im Endeffekt haben will ist eine Seite die z.B. über www.seite.de/ und über www.seite.de/touchscreen erreichbar ist. Der Content wird gleich sein, aber bei der TouchScreen-Version wird neben einener anderen Schrift das Menü total anders sein, damit es durch Fingerdruck bedienbar wird. Also grösser mit eventuell abgetrenteren Schaltflächen.
Ausserdem kann man am Touchscreen schlecht scrollen, stattdessen müsste unten in der rechten Ecke so ein "Weiter" link sein damit man auch durch längeren Kontent navigieren kann.

Vielleicht hat ja jemand sowas ähnliches mal gemacht, wird auf eine solche Situation vielleicht in einer der Docs eingegangen?

Vielen Dank

Andreas

Oliver Thiele ·

Ich würde vorschlagen mit verschiedenen Types zu arbeiten, da man in diesem Fall auch Grafiken mit TypoScript dynamisch anders erzeugen kann. Typo3 hat schon einige vorgefertigten Typen wie Druck-, WAP-, PDA-, Plaintext und XML-Darstellung dabei. Diese Typen kann man sich z.B. beim seinem root-Template unter Template->"Info/Modify"->"Click here to edit whole template record" im Abschnitt "Include Static" hinzufügen.
Mit index.php?id=5&type=98 (bzw. bei aktiviertem Simulate Static Documents: 5.98.html) würde man sich dann die Seite mit der ID 5 als Druckansicht anzeigen lassen. Diese vorgefertigten Dinge eignen sich vielleicht ganz gut, um das Prinzip mit den Types zu verstehen.

jenses ·

Kannst du das nicht per CSS steuern? Mhm... müsste doch machbar sein...

Nun gibt es aber keine separate CSS-Angabe für den Touchscreen,
er wird sicherlich auch durch media="screen" angesprochen.
Das ist also nicht die Lösung.

Du wirst wohl mit unterschiedlichen Templates arbeiten müssen.
Ich nehme an, es sollen eine begrenzte Anzahl an Geräten mit Touchscreen versorgt werden. Die IPs dürften bekannt und fix sein,
so daß du die Template-Steuerung über Conditions [IP = 192.168.0.1, 192.168.0.2, usw.] erledigen kannst.

viele Grüße
jenses

onkelfusspilz ·

Hi Oliver,

ich glaube das ist genau was ich suche, wenn es eine PDA-Ansicht geben kann so sollte es mir auch möglich sein eine für Touchscreens zu erstellen.
Gibt es konkret zu dem Thema eine Doku?

Ich kann für die Touchscreen-Geräte eine andere Startseite angeben als die Standard-RootPage, also kann ich auch die Seite mit dem Suffix "&type=98" oder so aufrufen.
Aber wie ist es nun wenn auf einer type98-Seite ein normaler Link innerhalb des TYPO3-Contents ist, wird dann die Seite ohne "&type=98" aufgerufen und man kommt wieder auf eine Seite mit dem Standard-Type oder stellt TYPO3 dann alle Seiten in der "&type=98"-Ansicht dar?
Das ist mir wichtig, weil man sonst beim Navigieren auf dem Touchscreen plötzlich in eine andere Type-Ansicht kommt in der man nicht mehr navigieren kann (zu kleine Schaltflächen).

Hi Jens,

Du hast Recht, es sind nur wenige Touchscreens mit fester IP, aber ich denke es ist einfacher, wenn ich auf den touchscreens einfach eine andere startseite eintrage, auf den TS'c soll nämlich ausser dieser Seite nichts laufen der Browser ist auch "abgedichtet" es ist für ein Info-Terminal.

Vielen Dank!

Andreas

maxhb ·

Hi!
Versuchs mal mit

config.linkVars = layer

So übernimmt Typo3 einen einmal gesetzten Wert für layer automatisch für alle weiteren Seiten und Du musst nicht jeden Link verändern.

CU
maxhb

stoefln ·
maxhb schrieb

Hi!
Versuchs mal mit

config.linkVars = layer

So übernimmt Typo3 einen einmal gesetzten Wert für layer automatisch für alle weiteren Seiten und Du musst nicht jeden Link verändern.

CU
maxhb

Hab das probiert. Bei mir wird aber kein typeparameter in die Links übernommen- sobald ich also auf eine andere Seite springe habe ich wieder mein Standardlayout🙁
Wie kann das sein?

stoefln ·

Hab zwar keine Ahnung warum ihr "layer" eingetragen habt, aber mit config.linkVars = L, type würds bei mir funktionieren wenn ich nicht simulatestaticdocuments aktiviert hätte. Dadurch reagiert T3 nicht auf den type-parameter🙁

onkelfusspilz ·

Hi,

config.linkvars = X hält den Parameter X konstant in den generierten URL's.

Also bei mir steht da auch

config.linkvars = type

Aber ich arbeite nicht mit simulatestaticdocuments. Soweit ich mich aber erinnere wird der Parameter type durch die RewriteEngince des Apache verarbeitet. Aus index.0.0.html sollte index.php?id=0&type=0 werden. Vielleicht ist bei Dir ein Fehler in der RewriteRule.

stoefln ·
onkelfusspilz schrieb

Hi,

config.linkvars = X hält den Parameter X konstant in den generierten URL's.

Also bei mir steht da auch

config.linkvars = type

Aber ich arbeite nicht mit simulatestaticdocuments. Soweit ich mich aber erinnere wird der Parameter type durch die RewriteEngince des Apache verarbeitet. Aus index.0.0.html sollte index.php?id=0&type=0 werden. Vielleicht ist bei Dir ein Fehler in der RewriteRule.

Versteh die rewrite-rule nicht ganz, aber müssten dann nicht zumindest die links in der form test.34.5.html vorhanden sein? die Links werden doch von T3 erstellt und haben nichts mit der Rewrite-rule zum tun oder?

onkelfusspilz ·

Richtig, typo3 sollte die Links bereits in der Form test.34.5.html erzeugen.

Dein simulateStatic scheint garnicht aktiv zu sein, folgendes etwa muss in deinem Template stehen:

config.simulateStaticDocuments = 1
config.simulateStaticDocuments_noTypeIfNoTitle=1
config.simulateStaticDocuments_addTitle=20

Nachzulesen auch bei #20836. Vielleicht hast Du ja einfach mit Gross-/Kleinschreibung oder so was falsch gemacht?

stoefln ·

Hey danke für den Tipp. Simulatestaticdocuments war zwar aktiv, aber T3 hat die Links ohne Type-parameter generiert.
Nachdem ich das Setup um config.simulateStaticDocuments_addTitle=20
erweitert habe, werden Links FAST richtig generiert: wenn ich die Seite test.334.5.html aufrufe bekomme ich die seite mit dem entsprechenden Template, allerdings werden alle links mit dem type-wert 0 statt 5 generiert, also test3.335.0.html wodurch ich wieder auf das standardtemplate zurückverwiesen werde🙁

onkelfusspilz ·

Also wenn ich Dich richtig verstehe können die unterschiedlichen type - Seiten nun angesprochen werden, enthalten dann aber immer Links auf type=0, richtig?

Dazu musste in Deinem Template lediglich

config.linkVars = type

setzen und es sollte gehen.

stoefln ·
onkelfusspilz schrieb

Also wenn ich Dich richtig verstehe können die unterschiedlichen type - Seiten nun angesprochen werden, enthalten dann aber immer Links auf type=0, richtig?

ansich richtig.

onkelfusspilz schrieb

Dazu musste in Deinem Template lediglich

config.linkVars = type

setzen und es sollte gehen.

das würde funktionieren wenn ich nicht simulatestaticdocuments aktiviert hätte. In diesem Fall wird ja der typewert nicht als get-parameter sondern direkt im Filenamen kodiert. Wenn ich config.linkVars = type setze wird zwar der typeparameter als &type=5 in den Links integriert, bringt mir aber nichts da dieser nicht mehr berücksichtigt wird sobald man simulatestaticdocuments aktiviert hat.

onkelfusspilz ·

Also wenn ich das nicht völig falsch verstanden habe ist es Aufgabe der RewriteEngine von Apache Deinen statischen Namen wieder zu den php Parametern aufzulösen.

Das sollte dann etwa so ausschauen:

RewriteEngine On
RewriteBase /typo3
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^typo3$ typo3/index_re.php
RewriteRule ^([0-9]+)[.]([0-9]+).html$ index.php?id=$1&type=$2

Hast Du das so? Stell doch sonst mal das debugging für ModRewrite an dann kannst Du sehen welche URL's er generiert.

stoefln ·

Hab leider keine Ahnung was die Rewriteengine macht, hab deine Konfiguration probiert, ändert jedoch nichts.
Wo und wie kann man das Debugging für ModRewrite aktivieren?

onkelfusspilz ·

Hi,

ich fürchte Du musst Dich mit ModRewrite schon ein wenig befassen. Wenn Du nichtmal weisst was das ist, solltest Du mal bei einer Suchmaschine wie www.google.de "mod rewrite" oder so eingeben, dann bekommst Du als ersten Treffer http://httpd.apache.org/docs/mod/mod_rewrite.html .

Aber im Grunde genommen hat mein vorvorletztes Posting Deine Frage bereits beantwortet, in dem Thread #20836 steht nämlich einiges über mod_rewrite drin, zum Beispiel auch folgende Zeilen aus der apache.conf

# To assist in debugging rewriting, you could use these lines
# DON'T enable it for production!
# This will only work in httpd.conf, not in .htaccess files
#RewriteLog /var/log/apache/rewrite.log
#RewriteLogLevel 9

Ich überlasse es Deiner Kreativität wie man das Logging aktiviert.

Lies Dir die Antworten bitte mal etwas genauer durch, wenn sich jemand schon die Mühe macht Dir zu helfen.

Ich hoffe das hilft Dir ein wenig weiter, ohne mod_rewrite ist das Verhalten deines Typo3 soweit ich es beurteilen kann völlig normal.

stoefln ·

Welchen Teil deiner Antwort habe ich nicht genau gelesen?
Hab inzwischen schon etwas reingeschnüffelt in das ModRewrite Modul. Das ganze ist aber so umfangreich dass ich mir schwer tue das richtige zu finden.
Trotzdem verstehe ich nochimmer nicht warum das Modrewritemodul für mein Problem verantwortlich sein soll. Die Links (im HTML) werden doch von Typo3 generiert nur halt mit dem typewert 0 statt 5.

...wenn ich die Seite test.334.5.html aufrufe bekomme ich die seite mit dem entsprechenden Template, allerdings werden alle links mit dem type-wert 0 statt 5 generiert, also test3.335.0.html wodurch ich nach klicken auf einen Link wieder auf das standardtemplate zurückverwiesen werde