Zum Inhalt springen

Diese kleine Hürde noch ....

Erstellt am 16. Dezember 2003 · 10 Antworten · letzte Antwort am 20. Januar 2004

Tags: Frage

Aragorn ·

... und dann hab ich es kapiert (hoffe ich) 😃

Ich habe mehrere Tutorials mehr oder weniger durchgearbeitet. Nach MTB 1 habe ich sogar den Auto-Parser installiert. Manchmal ist mir jedoch nicht klar, ob die Typo-Script Codes, die ich hier im Forum finde, dann für mich noch relevant sind, oder nicht. Irgendwie macht dieser Auto-Parser doch ziemlich viel allein, wobei mir noch nicht ganz klar ist, wann ich doch etwas ergänzen muß. Ich will einfach vermeiden, daß ich unnötigen Code aus den verschiedenen Tutorials verwende, wenn der Auto-Parser ihn nicht braucht.

Im Moment versuche ich die Startseite von: http://www.bogx.de anzupassen. Insbesonders geht es hier im Moment um die Kreise mit den Links. Diese Kreise sind in divs definiert, um die Position genau zuzuweisen. Außerdem habe ich jetzt nachträglich die Kreise in eine Tabelle gesetzt, damit ich den td´s einen ID-Namen geben kann. Der Auto-parser erkennt die Subparts, setzt aber die ID=411. Es handelt sich dabei um den ersten Kreis, den ich in Typo als Inhalt angegeben habe.

Wie kann ich jetzt aber diese Subparts ansprechen? Muß ich im HTML-Template die Inhalte (Kreise) löschen und nochmals extra einen Marker setzen. Im Moment sieht es so aus, daß ich einen Kreis (Entwicklung) als Content in Typo3 einfügen konnte. Jeder weitere Seiteninhalt würde aber zusätzlich unten dran geknallt. Außerdem erscheint bei jedem SubPart der gleich Inhalt, obwohl ich noch nirgends die anderen Kreise eingesetzt habe. Im Quelltext der Seite wird immer automatisch der gleiche Inhalt (Kreis Entwicklung) gesetzt. Das Ergebnis sieht man unter: http://217.160.162.214/cms35/index.php?id=390.

Hier noch meine Setups vom MTB1:

Setup des Templates:

# Default PAGE object:
page = PAGE
page.typeNum = 0
 
# Copying the content from TEMPLATE for <body>-section:
page.10 < temp.mainTemplate
 
# Copying the content from TEMPLATE for <head>-section:
page.headerData.10  < temp.headTemplate

Setup MainTemplate cObject (Im File Template Storage)

 # Menu 1 cObject
temp.menu_1 = HMENU
  # First level menu-object, textual
temp.menu_1.1 = TMENU
temp.menu_1.1 {
    # Normal state properties
  NO.allWrap = <div class="menu1-level1-no"> | </div>
    # Enable active state and set properties:
  ACT = 1
  ACT.allWrap = <div class="menu1-level1-act"> | </div>
}
  # Second level menu-object, textual
temp.menu_1.2 = TMENU
temp.menu_1.2 {
    # Normal state properties
  NO.allWrap = <div class="menu1-level2-no"> | </div>
    # Enable active state and set properties:
  ACT = 1
  ACT.allWrap = <div class="menu1-level2-act"> | </div>
}

# Main TEMPLATE cObject for the BODY
temp.mainTemplate = TEMPLATE
temp.mainTemplate {
    # Feeding the content from the Auto-parser to the TEMPLATE cObject:
  template =< plugin.tx_automaketemplate_pi1
    # Select only the content between the <body>-tags
  workOnSubpart = DOCUMENT_BODY
 
    # Substitute the ###menu_1### subpart with dynamic menu:
  subparts.menu_1 < temp.menu_1

 
    # Substitute the ###content### subpart with some example content:
  subparts.content < styles.content.get

  # Substitute the ###entwicklung### subpart with some example content:
  subparts.entwicklung < styles.content.get

    # Substitute the ###webdesign### subpart with some example content:
  subparts.webdesign < styles.content.get

    # Substitute the ###onlineshops### subpart with some example content:
  subparts.onlineshops < styles.content.get

    # Substitute the ###vollservice### subpart with some example content:
  subparts.vollservice < styles.content.get

    # Substitute the ###grafik### subpart with some example content:
  subparts.grafik < styles.content.get

}
 
 
# Main TEMPLATE cObject for the HEAD
temp.headTemplate = TEMPLATE
temp.headTemplate {
    # Feeding the content from the Auto-parser to the TEMPLATE cObject:
  template =< plugin.tx_automaketemplate_pi1
    # Select only the content between the <head>-tags
  workOnSubpart = DOCUMENT_HEADER
}

Und noch der Auto-Parser: (Menu 1 lasse ich weg, da es funktioniert)

# Configuring the Auto-Parser for main template:
plugin.tx_automaketemplate_pi1 {
    # Read the template file:
  content = FILE
  content.file = fileadmin/template/main/template_1.html
 
    # Here we define which elements in the HTML that 
    # should be wrapped in subpart-comments:
  elements {
    BODY.all = 1
    BODY.all.subpartMarker = DOCUMENT_BODY
 
    HEAD.all = 1
    HEAD.all.subpartMarker = DOCUMENT_HEADER
    HEAD.rmTagSections = title
 
    TD.all = 1
  }
 
    # Prefix all relative paths with this value:
  relPathPrefix = fileadmin/template/main/
}

Ich glaube, wenn ich dies kapiert habe, dann werde ich wunderschöne Zeiten mit Typo3 erleben ;-).

Gruß
Aragorn

Aragorn ·

Hi,

ich habe noch ein wenig experimentiert und die Tabellen in den divs im HTML-Template herausgeschmissen. Dafür habe ich entdeckt, dass ich im Auto-Parser durch den Zusatz DIV.all = 1 meine Divs abgrasen lassen kann. Dies hat auch prompt funktioniert. Der Effekt ist aber der gleiche geblieben.

Durch die Änderungen in MainTemplate

jetzt:

# Substitute the ###Layer2### subpart with some example content: 
  subparts.Layer2 < styles.content.get

etc.

müßte es funktionieren. Ich habe zwischenzeitlich noch einen zweites dynamische Bild eingefügt. Dieser bekommt zwar eine neue ID, trotzdem fügt Typo in jedem Div den gleichen Content ein.

Zusätzliche Seitenelemente werden unten drangesetzt. Wo ist der Fehler?

Gruß
Aragorn

ITiger ·

Du nimmst immer

subparts.sowieso < styles.content.get

Ist das beabsichtigt, dass Du immer den Content aus der Spalte "Normal" einliest?

Wenn Du die anderen Spalten beutzen willst dann musst Du styles.content.getRight
...Left, ...Border verwenden.

Ich würde Dir allerdings vom autoparser abraten, der schränkt - zumindest in meinem Fall - zeimlich ein, und ich finde es ist ohne einfacher. Zudem kannst du (auch ohne DIVs oder SPANs mehrere Comtentelemente hintereinander in eine Tabellenzelle stecken, indem Du mehrere Marker reinsetzt.

Ganz egal ob Du nun den Autoparser verwendest, oder nicht, kannst Du aber den DIVs verschiedene ID's vergeben, und dann folgendes machen:

subparts.kreis1 = FILE
subparts.kreis1.file = /fileadmin/kreis1.html
subparts.kreis2 = FILE
subparts.kreis2.file = /fileadmin/kreis2.html
subparts.kreis3 = FILE
subparts.kreis3.file = /fileadmin/kreis3.html

In die o.g. html-files schreibst Deinen Code für die Kreise rein. Die Files sollten dann geladen und eingefügt werden.

Hoffe das hilft...

Gruß ITiger.

Aragorn ·

Hi ITiger,

danke für Deine Antwort.

Ist das beabsichtigt, dass Du immer den Content aus der Spalte "Normal" einliest?

Von Absicht möchte ich nicht reden, eher von unwissentlichem Zufall :o . Wobei ich vermutet habe, daß es für mich nicht relevant ist, wo ich den Content herhole. Mein Design ist ja anders aufgebaut wie diese (virtuelle) Tabelle mit ...Left, ...Border.

Zudem kannst du (auch ohne DIVs oder SPANs mehrere Comtentelemente hintereinander in eine Tabellenzelle stecken, indem Du mehrere Marker reinsetzt. 

Ganz egal ob Du nun den Autoparser verwendest, oder nicht, kannst Du aber den DIVs verschiedene ID's vergeben, und dann folgendes machen:

Ich habe den divs ja verschiedene Namen gegeben: z.B. Layer2, Layer3 etc.. Der Auto-Parser erkennt auch diese verschiedenen Divs und ersetzt den Inhalt, allerdings immer mit dem gleichen Inhalt: <a name="430">. Ich bräuchte aber andere Inhalte, nicht immer den gleichen. Z.B. gibt es auch schon den Inhalt id=433

In die o.g. html-files schreibst Deinen Code für die Kreise rein. Die Files sollten dann geladen und eingefügt werden.

Dieses verstehe ich schon, aber würde dieses Konstrukt nicht weit entfernt von einem guten CMS-System sein, wenn ich irgendwelche Divs auslagere, nur damit sie an der richtigen Stelle angezeigt werden?

Es muß doch eine Möglichkeit geben, daß dieser Auto-Parser (der hier anscheinend viel gelobt wird) meine unterschiedlich benannten divs erkennt (was er ja auch macht) und dynamische ansprechbare Bereich daraus macht.

Also nochmals danke für Deine Antwort. Schon lange nicht mehr, bin ich mir so als Anfänger vorgekommen wie diese ersten Tage mit Typo3, aber ich nehme die Herausforderung an #evil#

Gruß
Aragorn

Aragorn ·

Ich werde so jetzt weitermachen:

  subparts.entwicklung = RECORDS
  subparts.entwicklung.tables = tt_content
  subparts.entwicklung.source = 430
  subparts.webdesign = RECORDS
  subparts.webdesign.tables = tt_content
  subparts.webdesign.source = 434
}

Diese Lösung habe ich hier in einem anderem Zusammenhang im Forum gefunden. Ich hoffe die Art dieses Problem zu lösen ist nicht ganz daneben. Auf jeden Fall wird mein gewünschter Inhalt angezeigt. Er würde zwar jetzt auf allen Seiten angezeigt werden, bei denen das Template verwendet wird, aber künftig soll dieses Template nur für die Startseite verwendet werden.

Gruß
Aragorn

ITiger ·

Hi!
Sieht ganz gut aus, was Du da vor hast.

Dieses verstehe ich schon, aber würde dieses Konstrukt nicht weit entfernt von einem guten CMS-System sein, wenn ich irgendwelche Divs auslagere, nur damit sie an der richtigen Stelle angezeigt werden?

Ich meinte ja nur das Einbinden der .html-Files wäre eine Möglichkeit.

(...)Mein Design ist ja anders aufgebaut wie diese (virtuelle) Tabelle mit ...Left, ...Border.

Left, Normal, Right und Border sind nur Bezeichnungen und keine zwingende Positionierungsangabe... man kann die Inhalte der verschiedenen Spalten natürlich auch ganz wo anders auf der Website positionieren. Es kommt allein darauf an, wo Du den Marker hinsetzt, der durch den Inhalt ersetzt wird. (Bzw. im Falle des Autoparsers kommts darauf an, wo der den Marker hinsetzt, den Du ersetzen willst)

(...)Er würde zwar jetzt auf allen Seiten angezeigt werden, bei denen das Template verwendet wird, aber künftig soll dieses Template nur für die Startseite verwendet werden.

Verwende einfach bei den Seiten, bei denen Du anderen Inhalt anzeigen willst ein ext.(ension) Template, damit kannst die Werte vom Template der übergeordneten Seite uberschreiben.

Typo3 ist am Anfang echt schwer, aber mit der Zeit (wenn man damit arbeitet, oder arbeiten muss...) kommt die Erfahrung und so langsam drängt sich mir der Spruch von IKEA auf:
Typo3, entdecke die Möglickkeiten... :o

Aragorn ·

Hi,

Sieht ganz gut aus, was Du da vor hast

:o

Ich habe mir auch irgendwann mal "Contenido" angeschaut. Hab es aber dann gelassen, weil ich gleich gesehen habe, daß die Möglichkeiten teilweise sehr eingeschränkt sind. Z.B. konnte man keine Rollover-Gifs in einem Menü verwenden.

Ich erinnere mich aber noch daran, daß man 20 (es können auch nur 10 gewesen sein) frei definierbare Contentbereiche auf einem Template erstellen konnte. Ich habe das Gefühl, daß Typo3 hier etwas einschränkt durch diese 4 Tabellenspalten. Ich bin noch nicht dahintergekommen, was der Gedanke bei den Entwicklern war. Wo würde das Problem liegen, wenn ich anstatt styles.content.get(left,right...) styles.content.bereich01 (bis .bereich20) verwenden könnte.

Auf jeden Fall sehe ich dieses Problem bei vielen Anfänger-Postings. Vielleicht ist es wirklich auch nur ein Anfänger-Problem und in wenigen Tagen (Monaten,Jahren) #giggle# ich darüber.

Gruß
Aragorn

ITiger ·

Hiho!

Du bist NICHT auf die 4 Bereiche beschränkt, aber für Standardzwecke reicht das aus... wie bereits erwähnt kannst du auch Dateien bei den Markern einfügen. (...oder Skripte, oder Text, oder sonstwas.)

Oder Du nimmst einen Marker und fügst dort direkt ein Contentelement ein (wie Du weiter oben schon geschrieben hast). Das Element muss dazu nichtmal auf der Seite sein, in deren Template Du den Marker definiert hast... Du könntest also eine neue Seite definieren, die nicht im Menü erscheint, und dort die Texte, ... einfügen, die Du auf einer anderen Seite haben willst. Bei diesen Seiten definierst Du dann welchen Marker Du durch das jeweilige Contentelement ersetzten willst. Die Contentelemente besitzen nämlich eine eindeutige ID.

Typo3 bringt von Haus aus leider nur die 4 Contentbereiche mit, allerdings kann man dort soviele Einträge reinhauen wie man will, die werden dann alle untereinander dargestellt.

Gruß IT.

P.S.: Wie willst Du denn die Seite aufbauen? Wieviele Spalten, oder Zeilen ...?

Aragorn ·

Hallo,

na das hört sich ja mal nicht schlecht an.

Wie willst Du denn die Seite aufbauen? Wieviele Spalten, oder Zeilen ...?

Eigentlich will ich zuerst unsere Seite unter http://www.bogx.de in Typo umsetzen. Uns ging es vorrangig darum, die News und Referenzen schneller zu ergänzen wie bisher. Wir wollen (müssen) jedoch künftig in die Oberliga von Typo3 aufsteigen, da wir dieses CMS-System auch unseren Kunden anbieten wollen. Insbesonders interessiert uns das Shop-Modul, da wir uns auf Internet-Shops spezialisiert haben.

Im Moment stört mich noch die Tatsache, daß Bilder in zusätzliche Tabellen eingebaut werden. Anscheinend gibt es Platzhalter für den Bildtext. Wir arbeiten pixelgenau, und können unnötigen Balast eigentlich nicht gebrauchen. Auch habe ich festgestellt, daß es anscheinend einen Bug mit dem Alt-Text gibt. Ich muß demnächst einen barrierefreien Internetauftritt gestalten, und dazu brauche ich unbedingt die Alttexte. Das notwendige Modul habe ich installiert. Weißt Du was näheres darüber.

Gruß
Aragorn

PS. Hast Du eigentlich auch schon eine Referenz unter Typo3?

ITiger ·

Hi!

Zum Shopsystem: Die Extension musst Du wohl gehörig anpassen, wenn Du die verwenden willst, ich hab sie jedenfalls nicht zum Laufen gebracht... Allerdings kenn ich mich mit e-Shops auch nicht so gut aus... vielleicht hast Du mehr Glück.

Wegen den Bildern... Es gibt wahrscheinlich eine Möglichkeit (wie für alles in Typo3) die Bilder ohne die Tabelle drumherum anzulegen...
Aber: Wir haben uns schon Wochen damit rumgeschlagen... das war bisher nichts komplett weg zu bekommen... Mit den "Constats" lässt sich das allerdings reduzieren, so dass es für unsere Zwecke reicht. Wenn Du ne Lösung findest, dann lass es mich wissen. ;-)

Auch hier könnte eine eigene Extension Abhilfe schaffen, ich schlage vor Du guckst Dir hierzu mal die Modern Template Building 2&3 Doku an. Bin leider noch nicht so fit im Extension basteln, ich muss nebenher noch Diplomarbeit schreiben.

Gruß IT.

waRhawK ·

Sagt mal kann ich die Spalten nicht auch irgendwie auslesen ohne css_styled_content nehmen zu müssen? Das muss doch auch mit content (default) gehen oder?