Jag håller på med en sajt innehållande Recept på mat (typ).
Jag vill alltså visa maträtterna och bilderna i samma View
Hur man gör detta i SQL utanför Drupal är inte så svårt men i Drupal med CCK och views vet jag icke hur man gör.
Det kanske är enkelt eller så är det inte det.
Innehållet har jag från början i 2 olika CSV filer.
Recept-csv
maträtt maträtt_id smak_betyg
Makaroner 100 Betyg:3
Korvlåda 101 Betyg:4
Surströming 204 Betyg:2
.
.
Matbilder-csv
maträtt_id maträttbild
100 htp://Makaronbild.jpg
100 htp://Kokande Makaroner.jpg
100 htp://Tallriksbild.jpg
101 htp://Korvbild.jpg
101 htp://Korvtallrik.jpg
102 htp://Strömming.jpg
102 htp://Burkbild.jpg
102 htp://Snapsbild.jpg
102 htp://Tunnbrödsbild.jpg
.
.
Ursäkta formateringen i tabellerna men hoppas ni förstår CSV filerna.
Jag har skapat 2 CCK'r, en var för respektive fil mat_CCK och bild_CCK och importerat filerna till min sajt. Jag kan visa informationen med Views. Nu behöver jag skapa relationer mellan de två för att visa rätt bilder till rätt maträtt.
Hur gör man i detta? Har nosat, läst och funderat på Nodereference modulen men får det inte att fungera (förstår inte riktigt konceptet). Lite osäker på om den går att använda i detta fallet för att skapa relationer i Views. Jag får dessutom problem vid "Node Import" (modulen) vid användadet av Nodereference. OBS! Maträtt_id finns i båda filerna och visar vilka bilder som hör till vilka maträtter.
Hur kan man lösa detta? Det kan vara upp till 25 bilder per maträtt.
Filerna innehåller väldigt mycket mer information men försöker visa grundproblemet lite enklare här och observera att det är olika antal bilder per maträtt ibland.
Har förstås också funderat på att kombinera datat innan in csv-filerna (och endast skapa en CCK), men det visade sig inte heller vara helt lätt heller eftersom bilderna består av flera rader per maträtt.
Comments
Kan du skapa en nodtyp,
Kan du skapa en nodtyp, 'recept', med CCK-fält för t.ex. 'betyg' och 'bild'? Isåfall kan du skapa en nod för 'Makaroner', med tillhörande bilder i dess CCK-fält. Med det upplägget blir det busenkelt att skapa en vy som hämtar recept och deras tillhörande bilder.
Du blir tvungen att skriva ett eget import-script. Men jag är rädd att du kommer åka på det i vilket fall.
Tobias Sjösten | NodeOne
Tobias Sjösten
Ja, okej men..
Tack, väldigt tacksam för svar och förslag, men jag försökte förenkla lite för att göra exemplet enkelt när jag skrev frågan och därmed kanske sköt mig i foten lite. Men egentligen är det så att Recept csv'n innehåller upp till 20 fält med olika informationer. Totalt är det drygt 20 000+ recept det handlar om. Skulle jag göra som du föreslår om jag förstår dig rätt skulle det bli väldigt mycket dubbelinformation i databasen. Men jag är inte säker på att jag förstår hur du menar, är det något i denna stil?
Recept CCK:
Nod 1
Titel: Makaroner
CCK-fält1: Betyg
CCK-fält2: mat-typ
...
CCK-fält19: ...
CCK-fält20: htp://Makaronbild.jpg
Nod 2
Titel: Makaroner
CCK-fält1: Betyg (samma som i nod1)
CCK-fält2: mat-typ (samma som i nod1)
...
CCK-fält19: ... (samma som i nod1)
CCK-fält20: htp://Kokande Makaroner.jpg (nästa makarone bild)
.
.
.
Nod 6
Titel: Surströming
CCK-fält1: Betyg
CCK-fält2: mat-typ
...
CCK-fält19: ...
CCK-fält20: htp://Strömming.jpg
Nod 7
Titel: Surströming
CCK-fält1: Betyg (samma som i nod6)
CCK-fält2: mat-typ (samma som i nod6)
...
CCK-fält19: ... (samma som i nod6)
CCK-fält20: htp://Burkbild.jpg (nästa surströmmingsbild)
Detta upplägg skulle innebära väldigt mycket dubelinformation i databasen. Men det kanske är så man löser det?
Idag har jag 2 cck'r en för varje csv-fil och vill åstakomma någon slags relation dem emellan i views. Men din lösning kanske är bättre trots en massa extra i databasen. Eller missförstod jag något?
Eller så menar du:
Recept CCK:
Nod 1
Titel: Makaroner
CCK-fält1: Betyg
CCK-fält2: mat-typ
...
CCK-fält19: ...
CCK-fält20: htp://Makaronbild.jpg
CCK-fält21: htp://Kokande Makaroner.jpg (nästa makarone bild)
...
CCK-fält 35: htp://sistamakaronebilden
dvs alla bilder i samma nod/maträtt?
Men då är jag lite på ruta ett, och kommer i vissa fall få en massa tomma bild-cckfält i de noder med färre bilder (antalet varierar per maträtt). Jag började på en sån lösning men tänkte att jag måste fråga lite hur experterna gör.
--
Anders Olsén
Multiple values
Varje CCK-fält har ett val "multiple values", som gör det möjligt att ange mer än ett värde för ett fält. (Man får två fält till att börja med, och en knapp för att skapa fler fält efter behov.)
På det viset behöver du bara ha ett CCK-fält för bild, och kan ändå variera hur många bilder du har för varje nod.
Att lägga in bilderna direkt i noden låter definitivt som det smidigaste i ditt fall. Ett alternativ är att skapa Node reference-fält till separata bildnoder, vilket är ett vettigt alternativ om samma bild kommer att användas till olika maträtter.
Det går troligtvis att skriva PHP-kod som plockar ut bilder som har samma ursprungliga ID som receptet som visas, men du får i så fall sämre struktur på din data -- med risk att du får ännu mer jobb senare.
//Johan Falk, Solna