![]() |
| | LinkBack | Themen-Optionen | Thema durchsuchen | Thema bewerten | Ansicht |
|
#1
| ||||
| ||||
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). |
|
#2
| ||||
| ||||
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 |
|
#3
| |||
| |||
| 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 |
|
#4
| ||||
| ||||
| 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. |
|
#5
| |||
| |||
| 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? |
|
#6
| ||||
| ||||
| 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, 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",
)
); 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). |
![]() |
| Themen-Optionen | Thema durchsuchen |
| Ansicht | Thema bewerten |
| |
Ä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 |