Hej!
Jag har en egenutvecklad sida i php som jag funderar att porta till Drupal. Jag undrar nu om detta är möjligt att göra. För att vara så konkret som möjligt i min fåga kommer jag nu beskriva den nuvarande sidan och dess funktioner.
Det är en föreningssida för en hundrasklubb. Jag har i databasen drygt 8000 hundar som är kopplade till varandra (en hund har en far och en mor etc.). Till dessa hundar har jag även tävlingsresultat kopplade samt möjlighet att anmäla hundar till olika tävlingar som också finns listade på sidan.
Vi har också andra kopplingar till den här hundtabellen i databasen.
Sidan har dessutom vanliga sidor med artiklar/nyheter etc.
Min fråga är om det i drupals administeationsgränssnitt går att bygg "plug-ins" som hanterar hundarna/tävlingarna/resultaten etc. och använda Drupals egna funktioner för att hantera artiklar/nyheter etc.?
Tack på förhand!
/Jonas

Comments
I Drupal kallas plugins för
I Drupal kallas plugins för moduler och lägger till nya funktioner eller modifierar existerande funktioner i Drupal. Om du är nyfiken på att utveckla moduler rekommenderar jag boken Pro Drupal Development.
Du borde dock kunna flytta hela ditt innehåll till Drupal genom att göra varje hund till en nod och sedan använda nodrelations-fältet till CCK för själv arvsrelationen mellan förälder och barn.
mvh
Jakob Persson
NodeOne
Jakob Persson – Leancept – Results-only digital and marketing consultants – Personal blog
Skriva egen modul och extern databas
Jag instämmer med Solipsist, dock kan man skriva en modul som använder en extern databas. Med "externa databas" menar jag annan databas än den som Drupal använder. Drupal kan hantera flera databaser och man kan byta mellan dem. Min rekommendation är att du istället exporterar de nödvändigaste tabellerna till samma databas som Drupal ligger på, om de är kompatibla, så man slipper byta mellan dem.
Jag vet inte hur din kunskaper i PHP är, men du bör ha grundläggande kunskaper. Läser själv Pro Drupal Development och hunnit läsa halva hittills. Jag rekommenderar den varmt!
Tackar för svaren!
Jag skall testa och se om det kan fungera med CCK. Jag antar att man kan referera en nod till flera olika nod-typer (andra hundar, bilder, tävlingar etc.) med hjälp av CCK?
Jag kan en del php, men är egentligen ASP.Net utvecklare i grunden. Dock så lockar Drupal med sitt open source, när man skall bygga sidor åt ideella föreningar :)
Hur skall man bygga en stamtavla?
Hej!
Nu har jag börjat att komma igån med cck och det fungerar bra. Jag har skapat en content type eom heter hund där jag har två fält, mor och far, som refererar hundens mor och far hund-noder. Har dock en fråga, när jag skall rendera en hund nodsida så skulle jag vilja se hundens föräldrar i t.ex. tre generationer bakåt. Men jag får ju bara tag på den information som är sparad i content typen, dvs. bara mor och far. Det är inte realistiskt att jag på varje hund lista far, farmor, farfar, mormor, morfar etc. Den informationen borde man kunna hämta rekursivt från föräldrar noderna.
Måste jag bygga en modul som automatiskt hämtar ut de totalt 14 hundarna som behövs för att rendera en stamtavla i tre generationer? Eller går detta lösa med views eller liknande?
Bifogar en bild som visar på den tabellstruktur som jag vill rendera genom en template.
Tacksam för lite vägledning...
Underbara Views
Det är som klippt och skuret för allas vår favorit - Views! :)
Skapa först en ny vy och lägg till ett argument för "Node: nid". Som default-argument väljer du att hämta nid:en från URL:en. Då får du en vy som hämtar in den nod du besöker.
CCK-fältet Node reference har en tillhörande relations-handler som du kan använda för att hämta in relaterade noder i en vy. Skapa en ny relation i din vy, med "Content: Node reference", som du döper till "Parents". Den relationen kommer att hämta in noder som är relaterade till från den nod du befinner dig på. Sedan skapar du ännu en relation på samma sätt, vilken använder "Parents". Döp den andra relationen till "Grand parents". Därefter skapar du nya, "Grand grand parents", "Grand grand grand parents", tills du känner att det räcker.
Lägg sedan till fältet title - för varje relation. Du ska alltså ha "(Parents) Title", "(Grand parents) Title", etc. Det är all information du behöver! Lägg sedan till lämplig sortering för att få det hela att komma i rätt ordning.
Nästa steg, för att få det som du vill att det ska se ut, är att tema det hela. Klicka på vyns "Theme information" - där har du information om vilka template-filer du ska kopiera till ditt tema och redigera för att styra utseendet. Du kommer behöva skriva lite PHP för att få till det men den biten verkar du ha koll på.
Hoppas det hjälpte!
Tobias Sjösten | NodeOne
Tobias Sjösten
Stort tack!
Tack för ett snabbt och utförligt svar!
Jag återkommer efter att ha testat det hela senare i veckan.
Mvh Jonas
Får bara med en nivå av parents
Hej igen!
Har nu testat. Men får det inte riktigt att fungera med views.
I min content type "hund" har jag 2 node references, "Mor" och "Far".
I min vy kan jag skapa två referenser "Mor" och "Far" och använda dem i mina fields. Problemet börjar när jag skall referera till MorFar.
Jag skapar en ny relation av Content: Far - (field_far) som jag döper till "MorFar" och väljer relationship "Mor". Jag får ändå bara upp det fält som väljs i fields, alltså samma som mor eller far, inte morfar eller mormor.
Det låter ju konstigt att man igenom SQL skulle kunna skapa joiner i flera led till samma tabell. I min nuvarande site gör jag en ny sql fråga som hämtar ut föräldrarna till varje hund i varje generation.
Kanske måste jag göra om min content type för att ditt förslag skall fungera, eller?
Mvh Jonas
Det låter som att du gör
Det låter som att du gör rätt och det borde fungera.
När du väljer vilka fält som ska visas, använder du "MorFar" som relation för "title" också?
Tobias Sjösten | NodeOne
Tobias Sjösten
Tyvärr verkar det inte fungera
Ja jag använder de olika relationerna som är skapade på varandra. Man skulle kunna fixa det med subselects i SQL, men Views verkar inte kunna bygga sådana utan bara joins mellan olika tabeller. Men jag kan ha fel. Det skulle vara så bra om man kunde få views att fungera i det här fallet.
Väljer jag "Full node" i Format för fields, så ser jag att MorFar och MorMor är länkade men jag få bara ut Mor noden.
Mvh Jonas
Min erfarenhet är att
Min erfarenhet är att subselects är långsamma. I många av fallen är de dessutom onödiga. För att bygga ditt familjeträd ska det räcka med joins för att få in alla relationer.
Jag försökte tidigare bygga en vy som listade ditt familjeträd. Jag stötte dock på vad jag tror är en bugg i CCK (eller Views - jag är osäker), vilken jag rapporterade i issue-kön. Det verkar som att Views-handlern för Node reference skapar ett moment-22 i SQL-queryn som byggs. I andra, liknande fall, har detta fungerat perfekt för mig men jag kan tyvärr inte återskapa skillnanden eller se skälet till varför det här fallet blir fel. Vi får avvakta och se ifall issuen får någon feedback.
Tobias Sjösten | NodeOne
Tobias Sjösten