Hej,
Jag jobbar med Drupal 7 och har lagt till ett fält av typ textlista ( List (text) ) till min content type. Tillåtna värden (Allowed values) är nyckel/värdepar som framförallt kommer ha betydelse för administratören av sidan. Min tanke var sedan att givet nyckeln så skulle värdet genereras om en aning. Bland annat ska det läggas till en bild samt en länk. Denna information kommer hämtas från en databas som inte är direkt kopplat till Drupal, dvs en extern databas.
Mitt första försök på att lösa detta problem var att lägga in en theme_field-hook i min temamodul, där funktionen följer namngivningen enligt THEMENAME_field__body__article så att den bara anropas för just det fältet och content type. Dock så upptäckte jag att när denna hook anropas så finns inte information om nyckeln kvar utan bara värdet.
Nästa tanke var att implementera template_process_field(&$variables, $hook), men jag känner mig osäker på hur variables-trädet ska behandlas (parsas och modifieras).
Tredje tanken var att skapa en egen modul och ett eget fält som jag helt har kontroll över själv.
Tacksam för kommentarer och förslag på hur man bäst löser detta problem.
Mvh
Andreas
Comments
Lite svårt att veta exakt vad
Lite svårt att veta exakt vad du vill göra här, om det bara gäller att hämta data så skulle du kunna använda modulen Feeds för att hämta data och skapa noder (en innehållstyp du definerat där alla fält hos den externa databasen finns). Sedan kan göra vanliga noder med referens till noderna Feeds skapat. Feeds kan uppdatera befintliga noder från en XML fil på annan plats.
Vad är det du vill skapa för typ av innehåll på Drupalsajten och hur relaterar innehållet till den andra datan?
//Pontus Nilsson, Digitalist
Det är produktsidor
Tack för svaret Pontus.
I grunden handlar det om en webshop. Det finns redan idag en webshopslösning på plats med en backend som inte ska bytas ut. I dagens backend så finns redan uppbyggt ett arbetsflöde för att hantera kunder, beställningar, leveranser, fakturering, osv. Nuvarande frontend, dvs hemsida, ska dock fräschas upp och valet har hamnat på Drupal som CMS.
Det problem jag beskrev handlar om en produktsida. När man skapar en produktsida så kan man bland annat även välja relaterade produkter och det var här jag tänkt mig en lista där nyckel är artikelnummer och värde är produktbeskrivning. Artikelnummer samt beskrivning hämtas från backend (detta har jag fått rätt på).
När en kund besöker en produktsida så ska där finnas en flik med relaterade produkter, men listan ska inte bara innehålla produktbeskrivningen. T.ex så ska där finnas pris och lagerinformation (som hämtas från dagens backend).
Givet artikelnumret (nyckeln) så kan man hämta t.ex pris och lagerinformation.
/Andreas
Att dra in alla produkter och
Att dra in alla produkter och skapa noder kan vara en lösning om det inte är för mycket produkter. Jag har jobbat med en lösning på 50-150K produkter och det tog minst sagt lång tid att skapa upp noder från det. Vill man dessutom köra ImageCache på bilder osv så måste de också curl:as in lokalt vilket adderar ytterligare ett lager komplexitet.
Enklaste lösningen är nog att du (förutsatt att produktdatabasen är just en databas) att du importerar produktdatabasen till din drupaldatabas och kör med Views Table Wizard (http://drupal.org/node/452374) och därigenom kan visa produkterna och dess relaterade objekt genom Views.
Vet inte hur det ser ut riktigt i er miljö men en lösning vore annars att ladda produktinfo osv via javascript på de berörda sidorna. Antar att du på produktsidan vet artikelnummer eller nyckel och då kan du ju förmodligen läsa in nödvändig info som json eller xml från produktdatabasen och slänga ut det på sidan med jquery t.ex.
//Christopher
Tack för tipset
Tack för förslagen Christopher.
Det är inte tusentals produkter utan snarare ett par hundra så jag ska titta på dina förslag och se om de är lämpliga för att lösa detta problem.
Tack,
Andreas