Zum Inhalt springen

Datenbankenzugriff

Erstellt am 15. November 2004 · 13 Antworten · letzte Antwort am 17. November 2004

Tags: Frage

McGregor ·

Hallo!

Ich habe das Tutorial ganz gut durchgearbeitet, doch leider habe ich die Datenbankanbindung noch nicht richtig verstanden. Im Tutorial wird lediglich auf die Felder eingegangen, die in einer Seite angegeben sind (z.B. title // subtitle).
Wie greife ich denn nun auf eine DB zu, in der ich z.B. Bilder hinterlege. Wie muss ich das innerhalb von TYPO3 machen, daß ich auf die Daten zugreifen kann? Wie stelle ich dann die Rechte für andere Benutzer ein, damit diese diese Daten ändern können?

Und noch obendrauf:
Momentan arbeite ich mit 2 Frames (oben / unten). Das klappt auch ganz gut. Wenn ich auf das Menu (GMENU) klicke, dann wird im unteren Frame die korrekte Seite geladen, doch leider ändert sich im oberen Frame nicht die Einstellungen für CUR, d.h. mein RO-Effekt zeigt nicht auf die korrekte Seite. Woran kann das liegen?

Grüße und Danke
McGregor

P.S. Wenn's zuviel Fragen sind, dann bin ich auch mit einem "guten" Handbuch (HowTo) zufrieden...

mstuebner ·
McGregor schrieb

Ich habe das Tutorial ganz gut durchgearbeitet, doch leider habe ich die Datenbankanbindung noch nicht richtig verstanden. Im Tutorial wird lediglich auf die Felder eingegangen, die in einer Seite angegeben sind (z.B. title // subtitle).
Wie greife ich denn nun auf eine DB zu, in der ich z.B. Bilder hinterlege.

Ich vermute dass Du da Dinge verwechselst. Erstens liegen Bilder nicht in der DB, sondern im Filesystem und nur Verweise in der DB. Und zweitens greifst DU nicht darauf zu, sondern Du legst ein Contentelement BILD an und T3 holt sich was es braucht. Ansonsten such mal nach tt_content.

McGregor schrieb

Wie muss ich das innerhalb von TYPO3 machen, daß ich auf die Daten zugreifen kann?

Siehe oben, Du scheinst das Prinzip von T3 noch nicht ganz verstanden zu haben, oder verschweigst Information, denn das was Du fragst brauchst Du erst, wenn Du eigene Extensions schreiben willst.

McGregor schrieb

Wie stelle ich dann die Rechte für andere Benutzer ein, damit diese diese Daten ändern können?

Web --> Access

McGregor schrieb

Und noch obendrauf:
Momentan arbeite ich mit 2 Frames (oben / unten). Das klappt auch ganz gut. Wenn ich auf das Menu (GMENU) klicke, dann wird im unteren Frame die korrekte Seite geladen, doch leider ändert sich im oberen Frame nicht die Einstellungen für CUR, d.h. mein RO-Effekt zeigt nicht auf die korrekte Seite. Woran kann das liegen?

Mit der Menge an Informationen die Du gibts... z.B. daran dass Du kein CUR oder ACT definiert hast, oder Fehler gemacht hast? Ansonsten (Philosophiefrage) warum Frames, die sind doch Bäh.

McGregor schrieb

P.S. Wenn's zuviel Fragen sind, dann bin ich auch mit einem "guten" Handbuch (HowTo) zufrieden...

Siehe deutsche Dokumentation (kaum zu toppen) von Robert Meyer oder das zuletzt erschienene Buch zu T3.

McGregor ·

Hi!

Danke für die Antworten.
Ich habe das Tutorial von Mittwald-Medien von Robert Koch durchgemacht. Dort wird beschrieben, wie man Templates erstellt anhand von vorgefertigten HTML-Seiten. Genauso möchte ich es nun auch machen...

2 Frames schienen mir geeignet, da dabei nicht die ganze Seite neu geladen wird, wenn ein Link angeklickt wird. Da sich das aber als schwer herausstellt, denke ich, daß ich den Kram wieder umstelle (auf eine Tabelle 😃 )

Wenn ich auf eine Tabelle umstelle, dann erledigen sich viele meiner Fragen, doch leider bleibt einiges offen (wird meiner Meinung nach auch nicht durch die Doku geklärt).
Robert Koch (RK) schreibt, daß man mit dem tt_content "Daten" einbinden kann. Soweit habe ich das verstanden (hoffentlich). Dabei kann man unterschiedliche Felder auslesen (z.B. Header). Was die Doku verschweigt, ist wie ich Bilder einlese...

Normalerweise ersetze ich meinen Mark durch folgende Zeilen:

[...]
10.marks {
MYMARKER = IMAGE
MYMARKER.file = fileadmin/images/myImage.gif
}

Wenn ich nun andere Bilder darstellen will (durch Klick auf einen Link - Das Layout der Seite ändert sich nicht, d.h. NUR das Bild wird ausgetauscht), dann muss ich eine neue Seite in T3 anlegen und auf diese verweisen. Auf dieser neuen Seite ist dann das andere Bild dargestellt. Oder geht das auch irgendwie anders... (wenn ich drüber nachdenke, dann denke ich eher nicht 😃 )

Anyway. Vielleicht seid ihr so nett und teilt mir mit, warum Frames "pfui" sind?

Grüße
McGregor

McGregor ·

Sorry, aber ich habe momentan eine Hirnblockade (mal wieder)

Ich habe folgendes Layout (als HTML-Vorlage - table)(vereinfacht)

-----------------------------
| MENÜLEISTE                |
-----------------------------
|                           |
|      ----------------     |
|      |   1   |   2  |     |
|      |-------|------|     |
|      |   3   |   4  |     |
|      ----------------     |
-----------------------------

In 1 steht ein Text (als Marker definiert im HTML-Code)
in 2 ist ein Bild (auch ein Marker)
in 3 sind 3 kleinere Bilder als Links (auch Marker)
in 4 steht eine Zusatzinformation zu Bild Nr 2

Wie setze ich das nun in T3 um?
Wie muss ich dran gehen, damit ich beim Klick auf das Menu (GMENU) die korrekte Seite geladen bekomme (bzw. die korrekte Einträge angezeigt bekomme)? Was muss ich machen, damit beim Klick auf eines der kleineren Bilder sich die Inhalte der Marker 1,2,3,4 ändern?

Grüße
McGregor

jenses ·

In 1 steht ein Text (als Marker definiert im HTML-Code)
in 2 ist ein Bild (auch ein Marker)
in 3 sind 3 kleinere Bilder als Links (auch Marker)
in 4 steht eine Zusatzinformation zu Bild Nr 2

Du hast in Typo3 vier Contentspalten, in deiner HTML-Vorlage setzt du an die gewünschten Stellen 4 Marker.
Diese füllst du über z.B. marks.MARKER1 < styles.content.get usw.
(Das ist nur eine von vielen möglichen Varianten !!)

Wie setze ich das nun in T3 um?
Wie muss ich dran gehen, damit ich beim Klick auf das Menu (GMENU) die korrekte Seite geladen bekomme (bzw. die korrekte Einträge angezeigt bekomme)?

Um die Verlinkung der Menüeinträge mit den dazu gehörenden Seiten kümmert sich Typo3.

Was muss ich machen, damit beim Klick auf eines der kleineren Bilder sich die Inhalte der Marker 1,2,3,4 ändern?

Den Bildern wird ein Link auf die gewünschte Seite "eingeimpft".

Ich habe das Tutorial von Mittwald-Medien von Robert Koch durchgemacht.

Vielleicht "durchgemacht", aber durchgearbeitet und verstanden ??
Dann wäre dir vielleicht aufgefallen, das der Autor Robert Meyer heißt.
(RK war der mit den Tuberkeln #giggle# )
Ich empfehle dir, noch mal ganz in Ruhe von Vorne anzufangen. 😉

viele Grüße
jenses

McGregor ·

Hi!

Ok. Hab's nochmal durchgearbeitet. Vor allem den stdWrap-Bereich 8-)

(RK war der mit den Tuberkeln)

#giggle# Joh. Da haste Recht.

Jetzt fehlen mir noch ein paar kleine Dinge, die ich nicht klären konnte.
Ich will auf ein Bild zugreifen, welches in der table tt_content steht (besser gesagt stehen da 4 Bilder).
Ich möchte nun das erste Bild darstellen (mehr nicht)
das feld lautet: image (lt. PHPMyAdmin)
aber ich erhalte kein Objekt, bzw. Bild. Wie wähle ich ein Bild innerhalb eines BLOB's aus?

Zur Veranschaulichung (funzt nicht)

  page.10.marks.MAINIMAGE = CONTENT
  MAINIMAGE {
   table = tt_content
   select.pidInList = this
   renderObj = IMAGE
   renderObj.field = image
# alternativ
# renderObj.data = DB:tt_content:this:image
  }

Danke für die Hilfe

Grüße
Jens

Proximo ·

? Du bist sicher das du das nicht verkomplizierst?

Ansteuerung eines Datensatzes (zb Bild) mit seiner UID (ja jedes Bild das durch tt_content verarbeitet wird bekommt ne id)... ach ja ich empfehle die Möglichkeit NICHT, nur bei wirklich statischen Inhalten

temp.*OBJECTNAME* = RECORDS
temp.*OBJECTNAME* {
tables = tt_content
source = UID 1, UID 2, UID 3...
dontCheckPid = 1
}

oder nach Tabellenspalte... da kannst auchnoch max = 1 setzen wenn du nur das 1. bild aus der Spalte willst (bzw 1. Datensatz... könnt ja auch n text sein...)

temp.*OBJECTNAME* = CONTENT
temp.*OBJECTNAME* {
table = tt_content
select {
# PID der Seite von der die Daten stammen
pidInList = 1
# Sortierungsregeln?^^
orderBy = sorting
# Welche Spalte... 0 ist (meist) die spalte "normal"
# und 1-3 die anderen Spalten..
where = colPos=0
#max = 1

Auch Suchfunktionen sind nützlich (ä ja ich hab das eh schon immer in Verwarung sammt Beschriftung...) das dürfe der 5. Post mit diesen Daten sein *g* (allein von mir)

MFG Proximo

McGregor ·
Proximo schrieb

? Du bist sicher das du das nicht verkomplizierst?

Worauf du einen lassen kannst. Das geht sicher einfacher, aber ich bekomme den Dreh nicht richtig raus. Vielleicht drücke ich mich auch nur sehr schlecht aus.

Im groben habe ich folgende Verzeichnisstruktur in T3
-root
--MainMenu
---Item1
---Item2
---Item3
--SubMenu
---ItemA
---ItemB
---ItemC

Daraus habe ich mir zwei GMENUs gebastelt, welche auch wunderbar funktionieren.

Die Seite hat folgenden Aufbau

-----------------------------
| MENÜLEISTE                |
-----------------------------
|                   SUBMENÜ |
-----------------------------
|                           |
|      ----------------     |
|      |   1   |   2  |     |
|      |-------|------|     |
|      |   3   |   4  |     |
|      ----------------     |
|                           |
-----------------------------

(Das ganze ist eine Tabelle und als Vorlage gespeichert und verwendet)

An Position 1 habe ich 2 Marker namens HEAD und FLIESS, welche für die Überschrift und den Fließtext stehen.
An Position 2 habe ich einen Marker namens MAINIMAGE
An Position 3 habe ich 3 Marker mit den Namen IMAGE1, IMAGE2, IMAGE3
Und an Stelle 4 auch einen Marker mit Namen SUBTEXT.

So...

Jetzt will ich beim Klick auf einen Menüeintrag eine "Initialseite" geladen bekommen, d.h. ich habe 4 Bilder, die dargestellt werden sollen. 3 Bilder sind klein (Thumbnails) die an der Positionen IMAGE1, IMAGE2, IMAGE3 angezeigt werden sollen. Das vierte Bild soll an die Position MAINIMAGE und soll groß sein (also kein Thumbnail). An der Stelle HEAD und FLIESS steht ein Standardtext und an der Stelle SUBTEXT ein erläutender Text zu dem großen Bild. Alle kleinen Bilder (also die mit dem Namen IMAGE1, IMAGE2 und IMAGE3) sollen verlinkt sein. Das Ziel soll die selbe Seite sein, jedoch sollen die Bilder wechseln, d.h. das das angeklickte Bild groß dargestellt wird und das vormals große Bild klein in einem der drei IMAGE-Marker angezeigt wird. Zusätzlich soll sich der Text in SUBTEXT zu dem aktuellen großen Bild ändern.
Das selbe soll möglich sein, wenn ich auf den Menüeintrag 2 und 3 klicke. Bei Menüeintrag 4 verhält sich das etwas anders (aber das ist jetzt erstmal nicht wichtig)

Meine Überlegung war nun, 4 Subseiten des Eintrags Item1 (Im Seitenbaum) zu machen, in denen ich die Daten eintrage, also Bildtext, die 4 Bilder (in geordneter Reihenfolge, d.h. großes Bild, kleines, kleines, kleines) und das für jede einzelne Möglichkeit (also 4 mal).
Dann wollte ich die Daten über CONTENT anzeigen lassen (aber eben nur das erste Element). Dazu brauche ich die Syntax, wie ich ein Image aus einem Blob auslesen und an ein Objekt hängen kann, damit dieses dargestellt wird (vor allem das richtige Bild, also irgendwie nummeriert - s.o.)

Das klingt jetzt wahrscheinlich extrem kompliziert, doch leider weiß ich nicht, wie ich auf den bodytext-Eintrag, bzw. image-Einträge sonst zugreifen kann. Oder gibt es da vielleicht eine einfachere Möglichkeit die Daten darzustellen. Ich wäre für jede weitere Hilfe dankbar...

Grüße
McGregor

Proximo ·

Zum einen :o

das so zu verwirklichen wie du das gerade geschildert hast bräuchte mehr wie nur n bischen Typowissen, und wäre auch für den der das System später verwendet ziemlich inhuman... (ja inhuman nicht schwer^^)

Aber erstmal hoff ich das ich das richtig verstehe.. du willst eine art Bilderverzeichnis, beim Klick auf ein kleines Bild soll sich das selbe, nur größer... also vergrößert (bzw die Originalgröße des Bildes) zeigen

Zum 2. hab ich ungenau eine ziemlich komplizierte Erklärung über Menüs gehört, ich nehm aber an das das jetzt eigendlich nicht das Problem ist, sondern diese 4 Bilder...

Eine einfache Lösung wär es Typo das managen zu lassen, per integrierter Popup-Vergrößerungsfunktion, Autoskalierung und "Bilderserie" (passiert automatisch wenn man mehrere Bilder in ein Contentelement "Bilder" läd...

Wenn dir das nicht reicht... zb weil du unter jedem Bild ne Beschreibung brauchst, würd ich eine 2-Spaltige Tabelle machen und die Bilder links und rechts hintereinanderstellen... als einzelne Objecte... das kannst du dann so machen wie in meinem 1. Post beschrieben...

Als letze Möglichkeit gäbe es noch Fotoalbum-Extensions.. naja wie auch immer vielleicht erklärst du mal plz das Prob und nicht den Lösungsweg, dann wär es bischen einfacher 😉
Zum anderen, es gibt einige Möglichkeiten das zu verwirklichen, zum einen fällt mir da Typo selber ein

McGregor ·

OK.

Ich merke, daß T3 für mein konkretes Problem nicht perfekt geeignet ist. Vielmehr wäre es einfacher das ganze mit Dreamweaver zu realisieren. Da ich aber bei T3 etwas lernen will dachte ich versuch's mal....
Naja. Ich werde nun irgendwas zusammenbauen... Für ein späteres Projekt werde ich dann T3 besser einsetzen können.

Trotzdem Danke für die Hilfe
Grüße
McGregor

jenses ·

Ich merke, daß T3 für mein konkretes Problem nicht perfekt geeignet ist.

Wie merkst du denn das ?
Offensichtlich hast du dich mit Typo3 noch nicht ausreichend beschäftigt,
um einen Lösungsweg für das "Problem" zu sehen.
Machbar ist das jedenfalls.

jenses

Proximo ·

JOP allein daran das es so viele Möglichkeiten gibt dieses Prob auf verschiedene Arten zu lösen merkst du schon das es nicht das aller schwierigste Problem für Typo ist, allerdings auch nicht das einfachste.. 😉

mstuebner ·
McGregor schrieb

Wenn ich auf eine Tabelle umstelle, dann erledigen sich viele meiner Fragen, doch leider bleibt einiges offen (wird meiner Meinung nach auch nicht durch die Doku geklärt).

Es ist ja auch eine Doku und kein Lehrbuch.

[​quote="McGregor"]Wenn ich nun andere Bilder darstellen will (durch Klick auf einen Link - Das Layout der Seite ändert sich nicht, d.h. NUR das Bild wird ausgetauscht), dann muss ich eine neue Seite in T3 anlegen und auf diese verweisen. Auf dieser neuen Seite ist dann das andere Bild dargestellt. Oder geht das auch irgendwie anders... (wenn ich drüber nachdenke, dann denke ich eher nicht 😃 )[Uqote]
Das ist stark davon abhängig was Du damit erreichen willst. Es gibt diverse Fotogallerien etc. nur muss man dazu wissen wo Du hin willst.

McGregor schrieb

Anyway. Vielleicht seid ihr so nett und teilt mir mit, warum Frames "pfui" sind?

Na, z.B. weil es meist nicht berücksichtigt ist dass man trotz Frames vernünftig auf eine Seite Linken kann, in der Adresszeile immer die Hauptseite angezeigt wird, vom Thema Barrierefreiheit garnicht zu reden.

Nenne mir einen Vorteil von Frames? Dass bei einem Link die ganze Seite neu geladen wird kann wohl kein Nachteil sein, solange man nicht der Meinung ist Megapixel Dateien als Hintergund zu nutzen.