Zum Inhalt springen

Dynamischen Inhalt aus Datenbank im Text einfügen

Erstellt am 24. Juni 2007 · 6 Antworten · letzte Antwort am 5. Dezember 2007

Tags: Frage

typo3tester ·

Hallo,

ich möchte gerne die Anzahl von Datensätzen einer bestimmten Tabelle dynamisch im Text einfügen.

D.h. ich habe einen Marker im HTML-Gerüst, der dynamisch aus
styles.content.get befüllt wird.

Und wenn ich hier mit RTE-Editor einen Text eingebe, dann würde ich gerne schreiben, es befinden sich <xx> Adressen in der Datenbank.
Und XX soll aktuell aus der Datenbank ermittelt werden.

Ich schaffe es, daß ein Extra Inhaltselement vor meinem Content erzeugt wird auf diese Weise:

  subparts.TCONTENT = COA
  
subparts.TCONTENT.5.table = tx_partner_main
subparts.TCONTENT.5.renderObj. = tx_partner_main
subparts.TCONTENT.5.select.selectFields = count(*)
subparts.TCONTENT.5.select.pidInList= 4
subparts.TCONTENT.5.renderObj = TEXT
subparts.TCONTENT.5.renderObj.field=count(*)

subparts.TCONTENT.10 < styles.content.get

Dann steht die Zahl vor meinem anderen Inhalt.

Gibt es eine Möglichkeit, diese Zahl aus der Datenbank als Variable zu speichern, auf die ich dann an unterschiedlichen Stellen mitten im Text zurückgreifen kann?

Schönen Gruß, Regina

typo3tester ·

Hi,

ich habe probiert und es klappt!

Das TLO constants kannte ich noch nicht, das ist ja äußerst praktisch.
Man muß es nicht im Contants u n d Setup-Berich definieren.
Ich habe ausprobiert, es reicht, wenn ich es im Setup-Bereich definiere, z.B.

constants.EMAIL = meine@email.de

Aber es ist halt übersichtlicher, wenn ich das als Konstante behandle.

Aber wie der Georg schon geschrieben hat, kann ich damit keinen dynamischen Inhalt ausgeben.

Stattdessen muß ich es so schreiben:

#Dynamische Marker definieren

temp.marks = cObject 
temp.marks {
	ADRESSEANZAHL = CONTENT
        ADRESSEANZAHL {
        	table = tx_partner_main
        	select.selectFields = count(*)
        	select.pidInList= 4
        	renderObj = TEXT
        	renderObj.field=count(*)
        }
        LAENDERANZAHL = CONTENT
        LAENDERANZAHL{
        	table = tx_partner_main
        	select.selectFields = count(distinct country)
        	select.pidInList= 4
        	renderObj = TEXT
        	renderObj.field=count(distinct country)
        }
}

#CSS Styled Content anpassen, damit Marker ausgegeben werden
tt_content.text {
  10 = < lib.stdheader
  20 = TEXT
  20 {
    field >
    cObject = TEMPLATE
    cObject {
        template = TEXT
        template.field = bodytext
        marks < temp.marks
    }
  }
}

Wenn ich im RTE schreibe:

Auf Berggenuss finden Sie momentan ###ADRESSEANZAHL### Adressen von Bio-Bauernhöfen aus  ###LAENDERANZAHL### Ländern der Alpen

ensteht der Satz:

Auf Berggenuss finden Sie momentan 1372 Adressen von Bio-Bauernhöfen aus  5 Ländern der Alpen

Danke an Euch!

Gruß, Regina

firemystery21 ·

Hallo alle zusammen,

ich ein ähnliches Problem wie Regina,

nur dass ich totaler Anfänger bin, wir uns aber für ein Uni - Projekt "mal eben" in 2 Monaten in Typo3 einarbeiten sollen...

Mein Problem ist folgendes:
Wir sollen auf einer Seite dynamischen Inhalt aus einer selbst erstellten Tabelle in der DB einfügen (soweit erstmal kein Problem - hab auch ein wenig php Kenntnisse und mit dem php content plug-in würds klappen)

aaber: diese Daten sollen bestimmte User über das Frontend editieren können: ist das überhaupt möglich? wenn die Daten nicht in der "normalen" Typo3 Content Tabelle stehen, sondern in einer anderen?
Falls ja: wie????
DANKE schonmal für eure Antworten

Annika