Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten Ansicht
  #1  
Alt 28.02.07, 08:35
Benutzerbild von mensch
Forum Stammgast
 
Registriert seit: 11.01.07
Ort: NRW, Köln
Alter: 53
Beiträge: 109

Kickstarter: Wie eine MM-Relationen mit eigenen Attributen generieren?


Moin,
beschäftige mich derzeit mit dem Kickstarter und habe folgendes Problem:
Tabelle Rezepte und Tabelle Zutaten
Einem Rezept können mehrere Zutaten zugeordnet werden.
Beim Zuordnen der Zutat muss die Menge angegeben werden.

Gelöst habe ich dies im Kickstarter folgendermassen:
Tabelle Rezepte generiert
Tabelle Zutaten generiert
Tabelle Rezeptzutaten (mit den Feldern: Menge + Masseinheit) generiert

Nur, meine Freundinnen, die noch ärgere Dummies sind als ich, müssten zuerst die Rezepte und Zutaten eingeben. Danach müssten sie neue Datensätze in den Rezeptzutaten anlegen, jeweils mit dem Rezept und der gewünschten Zutat und den Mengen.

Hätten die Rezeptzutaten keine Mengenangaben, so könnte ich relativ einfach bei den Rezepten eine MM-Relation definieren und meine Freundinnen könnten während sie das Rezept eingeben, direkt auch die Zutat mit der Menge zuordnen bzw. neu anlegen + zuordnen.

Gäbe es eine Möglichkeit, genau dies auch mit einer MM-Relation mit zusätzlichen Attribute zu erreichen?

Gruss Mensch
__________________
Noch immer Typ3Dummie: Wenn ich weiss, dass ich nichts weiss, weiss ich mehr, als wenn ich nicht weiss, dass ich nichts weiss.

Geändert von mensch (05.03.07 um 14:07 Uhr).
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #2  
Alt 28.02.07, 09:08
Benutzerbild von mensch
Forum Stammgast
 
Registriert seit: 11.01.07
Ort: NRW, Köln
Alter: 53
Beiträge: 109

4 winzige Tipps zum Kickstarter


Ich glaube ich stand auf meiner eigenen Leitung: Die Lösung ist die Rezeptzutaten als MM-Relation bei den Rezepten zu definieren.
Das ist NICHT die LÖSUNG! "Hier läuft die Eingabe auf einen Fehler raus: Warning: mysql_fetch_assoc(:sad: supplied argument is not a valid MySQL result resource in /var/www/virtual/xyz.com/typo3_src-4.0.4/t3lib/class.t3lib_db.php on line 802
Unknown column 'tx_xyz_rz.rid' in 'field list' This may indicate a table defined in tables.php is not existing in the database!"

Um nicht immer zu nehmen, möchte ich folgende Erfahrungen (eines Dummies) mit Interessierten teilen:

1. Label-Field
Hier sollte ein Feld manuell vorbelegt werden. Sonst erscheint die UID als Datensatzinformation, und die ist nicht besonders informativ.

2. Integer
Felder dieses Types werden IMMER mit INT(11) generiert. Will man dies nicht, so muss man die ext_tables.sql vor dem Installieren der Extension anpassen. Grundsätzlich sollte man danach die Datei sichern, da bei jedem Bearbeiten im Kickstarter alle Dateien wieder auf die Kickstarter-Default-Version umgestellt werden!

Ein weiteres Problem ist, dass INT-Felder in der TCA automatisch mit einem Wertbereich 10 - 1000 initialisiert werden. Bei der Eingabe von Daten wirkt sich das folgendermassen aus: Man trägt eine 1 ein und beim Speichern wird daraus eine 10. Den Von-Bereich muss man deshalb für das jeweilige Feld in der tca.php anpassen. Auch hier gilt wieder: SICHERN!

3. MM-Relationen
Für alle, die mit einem ER-Diagramm an Typo3/Kickstarter rangehen gilt: Relationentabellen (m:n) generiert der Kickstarter von sich aus und mit seinen eigenen Konditionen, je nachdem, was man an Einstellungen bei "Database relation" angibt. Das ER-Diagramm muss also in diesem Bereich Typo3-konform angepasst werden. Hier gilt die Devise: Probieren geht über studieren, da ich bisher keine allumfassende Information hierüber habe finden können.

4. Möchte man verhindern, dass der Redakteur beim Eingeben von Daten für m:n-Relationen im Backend mit unzusammenhängenden Hin-/Herklicks hantiert ...

kann man in der zentralen Eingabetabelle die Relation so definieren, dass direkt hieraus der abhängige Datensatz bearbeitet werden kann. Folgenden Lösungsansatz wende ich an:
Field-Type: Database relation
Create relation to table: Gewünschte n-Tabelle
Type: Selectorbox, select global
Max number of relations: x
Size of selectorbox: x
True M-M relations: aktiviert
Add "Add record" link: aktiviert
Add "List records" link: brauch ich nicht
Add "Edit record" link: aktiviert

Aus diesen Einstellung heraus generiert der Kickstarter nicht nur die M-Tabelle sondern auch automatisch die MN-Relationentabelle, die dann so aussieht:

Tabelle: tx_kochrezepte_[Name der M-Tabelle]_[Spalte über die referenziert wird]_mm
Spalte: uid_local [UID Primärschlüssel M-Tabelle]
Spalte: uid_foreign [UID Primärschlüssel N-Tabelle]
Spalte: tablenames
Spalte: sorting

Vielleicht gibt es ja eine bessere Methode ... ?

Gruss Mensch
__________________
Noch immer Typ3Dummie: Wenn ich weiss, dass ich nichts weiss, weiss ich mehr, als wenn ich nicht weiss, dass ich nichts weiss.

Geändert von mensch (01.03.07 um 06:37 Uhr). Grund: geht doch nicht
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #3  
Alt 03.03.07, 13:57
Forum Aktivist
 
Registriert seit: 04.10.06
Alter: 20
Beiträge: 66

Hallo!
Ich hätte da eine andere Frage, und zwar hast du es schon geschafft, dass in der Selectorbox nicht die ID angezeigt wird, sondern der Wert des Datensatzes?
Also nicht 1,2,3,4 Sondern der Text der Eingegeben wurde.

mfg
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #4  
Alt 04.03.07, 09:09
Benutzerbild von mensch
Forum Stammgast
 
Registriert seit: 11.01.07
Ort: NRW, Köln
Alter: 53
Beiträge: 109

Moin, ja das habe ich.
Und zwar musst Du beim Erstellen der Extension-Tabellen ein Feld als Labelfeld auswählen (liegt so in etwa im oberen Bereich und heisst Label-Field).

Diese Einstellung wirkt sich
1. auf die Datensatzanzeige und
2. auf die Listenanzeige aus.

Derzeit bin ich mit dem "label_alt" in der TCA-Konfiguration zugange. Vielleicht auch ganz interessant für Dich:
Gründe: Ich habe eine Tabelle für Rezeptkategorien mit den Feldern Kategorie1, Kategorie2 und Kategorie3. Für meine Freundinnen ist die Anzeige der Kategorie1 nicht informativ genug. Also muss ich auf irgendeine Art und Weise auch die Kategorie2+3 als Label definieren können. Sonst sehen die nur "Gemüse" anstelle
"Gemüse, Tomaten, Strauchtomate"
"Gemüse, Birnen, Williamsbirne"

Habs aber noch nicht gelöst.

Gruss Mensch
__________________
Noch immer Typ3Dummie: Wenn ich weiss, dass ich nichts weiss, weiss ich mehr, als wenn ich nicht weiss, dass ich nichts weiss.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #5  
Alt 06.03.07, 11:54
Forum Aktivist
 
Registriert seit: 04.10.06
Alter: 20
Beiträge: 66

willst du im backend die labels zur auswahl haben oder nur im frontend angezeigt bekommen?
sonnst kannst du dir dass ja mit dem select befehl hinbiegen oder?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #6  
Alt 06.03.07, 12:02
Benutzerbild von mensch
Forum Stammgast
 
Registriert seit: 11.01.07
Ort: NRW, Köln
Alter: 53
Beiträge: 109

Danke zuerst einmal für Deine Rückmeldung, die Lösung für das Backend ist folgende:
In der Datei ext_tables.php bei der jeweiligen Tabelle folgende zwei Zeilen einfügen:
Code:
		'label_alt' => 'zk20, zk30',
		'label_alt_force' => TRUE,
Somit würde der Array für die jeweilige Tabelle in der ext_tables.php ungefähr so aussehen:
Code:
t3lib_extMgm::allowTableOnStandardPages('tabelle');

$TCA["tabelle"] = array (
	"ctrl" => array (
		'title' => 'LLL:EXT:xyz/locallang_db.xml:tabelle',		
		'label' => 'zk10',	
		'label_alt' => 'zk20, zk30',
		'label_alt_force' => TRUE,
		'tstamp' => 'tstamp',
		'crdate' => 'crdate',
		'cruser_id' => 'cruser_id',
		'default_sortby' => "ORDER BY zk10",	
		'enablecolumns' => array (		
			'disabled' => 'hidden',
		),
		'dynamicConfigFile' => t3lib_extMgm::extPath($_EXTKEY).'tca.php',
		'iconfile' => t3lib_extMgm::extRelPath($_EXTKEY).'icon_tabelle.gif',
	),
	"feInterface" => array (
		"fe_admin_fieldList" => "hidden, zk10, zk20, zk30, zk11, zk21, zk31, zk12, zk22, zk32",
	)
);
Gruss Mensch

PS: Leider hatte ich vergessen zu erwähnen, dass mir klar war, das die Lösung für das Frontend in Select-Statements liegt.
__________________
Noch immer Typ3Dummie: Wenn ich weiss, dass ich nichts weiss, weiss ich mehr, als wenn ich nicht weiss, dass ich nichts weiss.

Geändert von mensch (06.03.07 um 12:09 Uhr).
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
Antwort


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are An


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
FE-User für eine Seite generieren spacedani Extension suchen und neue vorschlagen 0 02.05.08 11:36
Newb: Wie binde ich eine PHP Funktion in eine Extension ein? bluefire Extension modifizieren oder neu erstellen 1 13.03.08 18:14
Wie kommen die Feldinhalte ins BE-Interface bei der Definition von Relationen? smantscheff Extension modifizieren oder neu erstellen 4 31.12.07 11:12
Verständnisfrage Datenbank: Relationen zwischen Tabellen belbono TYPO3 4.x Fragen und Probleme 0 03.08.07 12:07
TSconfig: zwei Spalten nur für eine Seite definieren - andere Seiten nur eine Spalte StGaensler TYPO3 3.x Fragen und Probleme 4 27.01.06 19:35


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:07 Uhr.


Powered by vBulletin® Version 3.6.8 Patch Level 2 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0
Template-Modifikationen durch TMS