Zum Inhalt springen

Tüftlerfrage -> flexibel Elements Auflisten

Erstellt am 27. April 2009 · 13 Antworten · letzte Antwort am 4. Mai 2009

Tags: Frage

pow ·

Hallo an alle Tüftler und Bastler,

hat schon jemand etwas derartiges entwickelt und dabei ein paar Ergebnisse erzielt?:

- Man legt ein flexibles Templavoila Element ("Movies") an.
Dies beinhaltet Titel, Bild, Text, Kommentare

- Und listet an eine bestimmte Position (lib.allemovies) alle Movies auf aber nur die Titel, und wenn man darauf klickt erscheint die komplette Ansicht.

Ähnlich wie tt_news, nur etwas abgespeckter.

Grüße

froemken ·

Also ich habe gerade gestern etwas gebastelt...so mit DB-Abfragen und so. Mein local processing schaut so aus:

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<T3DataStructure>
	<ROOT type="array">
		<el type="array">
			<field_line type="array">
				<tx_templavoila type="array">
					<TypoScript><![CDATA[
	10 = CONTENT
	10 {
		table = tx_ebsprod_product
		select.pidInList = 45
		select {
			andWhere.wrap = uid=430
			selectFields = parameters
		}
		renderObj = COA
		renderObj {
			10 = RECORDS
			10 {
				source.field = parameters
				tables = tx_ebsprod_parameter
				dontCheckPid = 1
				conf.tx_ebsprod_parameter = COA
				conf.tx_ebsprod_parameter.10 = TEXT
				conf.tx_ebsprod_parameter.10.field = parametername
				conf.tx_ebsprod_parameter.10.wrap = <div class="flex-prodinfo-name">|</div>
			}
		}
	}
					]]></TypoScript>
				</tx_templavoila>
			</field_line>
		</el>
	</ROOT>
</T3DataStructure>

Mit diesem Script braucht ihr nur ein field, dass ihr mit den Daten aus der Datenbank befüllt. Da du ja auch schon einen Link in der Datenbank hast, könntest du diese beiden Felder ja mit typolink verknüpfen und hättest somit deine Liste. Beachte: Im Typolink musst du auch die ID des aktuellen Datensatzen mit angeben.
Auf einer zweiten Seite machst du Dir weiteres FCE und fragst mit field.data die $_GET-Variable mit der ID ab und greifst wieder mit einem ähnlichen Script wie oben auf die DB zu und holst dir die restlichen Felder.

pow ·

Bisschen komplex beschrieben (bin noch nicht so TS fit, werde es aber 8-) ) aber werde es mit meinem Kollegen zusammen probieren.

Danke dir, auch super Beispiel!

froemken ·

Jup...ist schon ziemlich komplex...hab da 6 Stunden für gebraucht bis das endlich lief, aber so brauch ich nicht wegen jedem Furz ne Extension zu schreiben. Derzeit verfeiner ich das Script noch, brauch nämlich ungefähr das gleiche wie du...hab ne Produktliste mit Namen und auf der nächsten Seite sollen die Produktdetails erscheinen.

froemken ·

So...und weitere Stunden weiter hab ich nun für die Liste folgenden TS:

lib.categoryList = CONTENT
lib.categoryList {
	table = tx_ebsprod_category
	select {
		pidInList = 72
		andWhere.data = GPvar:L
		andWhere.intval = 1
		andWhere.wrap = sys_language_uid=|
		orderBy = sorting
		selectFields = uid
	}
	renderObj = COA
	renderObj {
		10 = CONTENT
		10.table = tx_ebsprod_category
		10.select {
			pidInList = 72
			andWhere.field = uid
			andWhere.intval = 1
			andWhere.wrap = uid=|
			selectFields = uid AS CAT_ID,name
		}
		10.renderObj = COA
		10.renderObj {
			10 = TEXT
			10.field = name
			10.wrap = <p>|</p>
			10.typolink.parameter = 76
			10.typolink.additionalParams.data = field:CAT_ID
			10.typolink.additionalParams.wrap = &category=|
		}
	}
}

Die Produkte werden Sprachenübergreifend aufgelistet, sortiert und werden mit einem Link umschlossen. Die uid wird an die nächste Seite übergeben.

Boah...ich brauch mal Urlaub...ich seh nur noch TS-Doku, Scripte und Co. Mach jetzt erst mal Pause...sonst werd ich noch gaga 😃

Stefan

pow ·

Hast du dann eine eigene Extension gebaut, die ein neues Inhaltselement zur Verfügung stellt? Oder wie schreibt der User daten in tx_ebsprod_category ?

Grüße

froemken ·

Der User schreibt da gar nichts rein...wenn dann macht das ein BE-Admin/BE-User, weil an unserer Produktpalette soll ja ein User nix hinzufügen können :-)

Wenn in deinem Fall der FE-User etwas hinzufügen soll, dann musst du dir entweder diese fe_admin-Teile anschauen (echt tricky) oder tatsächlich eine eigene Ext basteln.

[NOT TESTED]
Unser Freund einpraegsam.net hat ja diese powermail-Ext gebastelt. Von ihm gibt es noch eine weitere Extension mit der man so Formulare aufbauen kann. Ich wollte diese Extension noch testen in wie weit man diese für unsere Zwecke "zweck entfremden" kann.

Ext: powermail_frontend

In der Doku steht: frontend-edit possible

Wenn das klappen sollte, dann brauchst du für die FE-Eingaben nicht mals mehr ne Extension basteln.
[/NOT TESTED]

Stefan

pow ·

Sorry, zwei wichtige Buchstaben vergessen. Ich meine natürlich BE-User (sprich: BE-Admin)

:o

froemken ·

Der BE-User kann doch einfach über Liste->Sysfolder->neue Datensätze eingeben?! Zumindest sollen unsere BE-User das so machen. Ich persönlich habe noch keine bessere Möglichkeit gefunden als TYPO3 um Daten in die DB einzutragen. Mit Hilfe von IRRE wird das sogar richtig geil: Dann kannst du nämlich, obwohl du dich in der Produkttabelle befindest, Datensätz in der Tabelle Produktkategorie eintragen. Ist so'ne AJAX-Sache...nennt sich "inline"

pow ·

Ich dachte du hast das vielleicht via Templavoila gelöst um das zu umgehen eine Extension anzulegen.

IRRE *gebookmarkt* 😉

froemken ·

Irgendwie habe ich das Gefühl wir reden ein ander vorbei?!?!

Hast du dann eine eigene Extension gebaut, die ein neues Inhaltselement zur Verfügung stellt?

Nein. Mein FCE sucht dank dem Script automatisch in der Datenbank nach Datensätzen und zeigt völlig automatisch ALLE gefundenen Datensätze an...und das mit nur EINEM FCE. Keine SECTIONS und keine mehreren FCEs.

Oder wie schreibt der User daten in tx_ebsprod_category ?

Wie schon geschildert, schreiben die BE-Users die Daten einfach über Liste->Sysfolder in die Datenbank.

Mein FCE findet diese neuen Datensätze nach Cache leeren automatisch...brauchst nix dran zu machen...

PS: Datensätze über ein TemplaVoila-Element in die Datenbank zu pflegen geht nicht...wär mir zumindest völlig neu...

froemken ·

Hast du noch was auf dem Herzen? Ansonsten mach mal einen Haken bei gelöst...

Danke Dir

Stefan