Håller på och (försöker) flytta över en del kod till en sida byggd i Drupal. Är själv ny i miljön men mycket nöjd och imponerad med hur smidigt det har gått hittills.
Ganska snart stötte jag dock på problem när det hela kom till formulär, när formuläret klickas kommer man inte till sidan specificerad i "action" utan istället till en annan del av sajten. (Samma del på olika formulär så gissar att den är satt som default)
Efter att ha surfat runt lite har jag stött på begreppet Form API och den lite annorlunda kodningen där. Jag antar att min fråga är ifall det verkligen är så illa att jag måste bygga om alla formulär och om det inte finns något smidigare sätt att klara mig undan?
Formuläret är vanlig HTML (i ett PHP-dokument iofs)
echo "<form name='Search1' action='?q=node/72&p=Part1&vet' method='POST'>";
echo "<table>
<tr><td>How much added: </td><td> <input type='text' name='added' value='0'></td><td> Include in search: </td><td>Yes <input type='radio' name='addedinclude' value='yes'></td><td>No <input type='radio' name='addedinclude' value='no' checked></td></tr>
<tr><td>How much guaranteed: </td><td> <input type='text' name='guaranteed' value='0'></td><td> Include in search: </td><td>Yes <input type='radio' name='guaranteedinclude' value='yes'></td><td>No <input type='radio' name='guaranteedinclude' value='no' checked></td></tr>
<tr><td>How big is the buy-in: </td><td> <input type='text' name='buyin' value='0'></td><td> Include in search: </td><td>Yes <input type='radio' name='buyininclude' value='yes'></td><td>No <input type='radio' name='buyininclude' value='no' checked></td></tr>
<tr><td>How big is the fee: </td><td>"
osv...
Comments
Använd ej <form>
Om du använder
<form>-elementet direkt i Drupal så är det nästan garanterat fel. Använd i stället Webform, CCK eller FormAPI.Vilken av de tre alternativen du skall använda beror på vad du vill åstadkomma.
Använd Webform om du vill skapa en sida med ett formulär som användare fyller i, t.ex. kontaktformulär, beställningsformulär, enkäter etc. Det är möjligt att bädda in formulär skapade på detta sätt i block, noder etc med lite PHP.
Använd CCK för att skapa nodtyper med annorlunda formulär för ifyllnad. Om du betänker att det är möjligt att låta anonyma användare skapa noder av viss typ så förstår du att det i kombination med triggers/actions skapar fantastiska möjligheter.
Använd FormAPI:et för att tillhandahålla formulär från moduler, teman eller kodsnuttar i block, noder etc.
Thomas Barregren – imBridge
Ja, tyvärr
"Jag antar att min fråga är ifall det verkligen är så illa att jag måste bygga om alla formulär och om det inte finns något smidigare sätt att klara mig undan?"
Svaret på den frågan är nog alltså ja, tyvärr. Jag är dock inte säker på att man ska vara ledsen för det - om du kör dina formulär genom Drupal får du samtidigt tillgång till alla temafunktioner, valideringar, säkerhetsspärrar och annat som Drupal tillhandahåller.
Hoppas att du lyckas överföra dina formulär på ett någorlunda smidigt sätt.
//Johan Falk