Har redan skrivit i forumet, men tänkte ta det här på svenska också eftersom det gäller en (blivande) svensk sajt.
Jag har börjat hacka ihop en sajt i Drupal 6, som ska bli något i stil med pricerunner och prisjakt, men jag hittar inga färdiga moduler för själva jämförelsen i Drupal.
Tanken är att man ska kunna visa en lista med tjänster där de viktigaste egenskaperna har varsin kolumn. Till vänster ska det vara checkboxar så man kan välja ut de rader som verkar mest intressanta. Sen klickar man på en knapp "Jämför" för att visa en detaljerad vy över det man har valt och då kommer en ny lista där de valda produkterna har varsin kolumn och alla egenskaper får varsin rad.
För att visa listan använder man förstås Views-modulen. För checkboxarna behöver jag något i stil med Views Bulk Operation, men istället för att göra någon "operation" på de utvalda noderna, så ska de skickas som argument till nästa vy där de ska visas. Detta tänkte jag alltså skriva en egen modul för.
Är det "rätt" sätt att göra det på eller finns det andra moduler man kan använda istället?
Tackar,
Adam

Comments
Fortfarande inget svar...
...vare sig här eller på drupalforumet.
Views Bulk Operation var inte helt trivial att sätta sig in i (som nybörjare), så om någon har någon alternativ lösning så vore jag väldigt tacksam. Det borde finnas något enkelt sätt att göra följande i Drupal:
Tackar,
Adam
Flags?
Jag har aldrig använt Flag-modulen, men den kanske kan hjälpa dig att göra det du vill. Med den kan varje användare för sig markera noder, och så kan du låta en annan View lista endast de noder som är flaggade. (Jag föreställer mig att man i Views kan visa ett fält som är någon form av checkbox eller liknande -- man vill ju inte behöva öppna varje nod för att flagga den.)
Det som blir problem är väl att nollställa flaggorna efter varje visning, så att man inte måste kryssa bort produkterna i efterhand.
Kanske kan vara ett steg på vägen i alla fall...
//Johan Falk, Solna
Tack
Har varit inne på det spåret, men jag tror inte det håller i längden att ändra state fram och tillbaka. Det vore bättre om de valda nodernas id kan skickas som argument till den andra vyn på något sätt. Då kan man också spara urvalet med hjälp av URL:en. Views Bulk Operation är det närmaste jag har hittat, så jag lägger några timmar till på det och ser om jag kan komma över tröskeln.
Några steg framåt
Tröskeln var klart högre än jag trodde. Tänkte meddela vad jag har gjort so far...
Analysen av VBO (Views Bulk Operations) var riktigt svår för en nybörjare som mig, så jag gick istället över på att lära mig Form API. Inte helt lätt det häller, men följande steg hjälpte:
Jag satte även upp eclipse som utvecklingsmiljö/IDE och Bitnami Drupal Stack som lokal testserver.
När jag gick tillbaka till analysen av VBO hittade jag att den inkluderar 'misc/tableselect.js' vilket ledde mig vidare till modulen Elements som har ett form-element som heter just tableselect. Den verkar också bli en del av Drupal 7 core.
Så nu är jag i valet och kvalet om jag ska:
Tableselect är betydligt enklare att förstå, men VBO känns som bättre långsiktigt då den är integrerad med Views.
Jag tar gärna emot tips och synpunkter på detta.
/Adam
Mitt råd är att du
Mitt råd är att du använder VBO. På NodeOne brukar vi säga "Koda mindre, leverera mer". Med det menar vi att man bör välja existerande lösningar snarare än återuppfinna egna. Det enda du behöver skriva i ett fall är en action som gör själva jämförelsen, VBO kan sköta alla gränssnittsbitar åt dig, du behöver alltså inte bekymra dig om Form API.
Jakob Persson - NodeOne
Jakob Persson – Leancept – Results-only digital and marketing consultants – Personal blog
Tackar
Var själv inne på det spåret från början, men såg inte hur en action skulle kunna leda till att man kommer till en ny godtycklig vy. Om det går så är det ju helt underbart. Kanske till och med finns någon modul för detta redan. Jag fortsätter på det spåret.
En vy kan ta argument och du
En vy kan ta argument och du kan skicka fler än ett argument. Du skulle alltså kunna skapa en vy som visar info om flera produkter och tar ett antal nid som argument. En action är en godtycklig callback vilket innebär att du har fullständig frihet att göra vad du vill.
Jakob Persson - NodeOne
Jakob Persson – Leancept – Results-only digital and marketing consultants – Personal blog
Nu är det nära
Det var inte action man skulle använda utan dess släkting Node operation.
/**
* Implementation of hook_node_operations().
*/
function views_argument_selector_node_operations() {
$operations = array(
'redirect' => array(
'label' => t('Compare'),
'callback' => 'views_argument_selector_redirect',
),
);
return $operations;
}
function views_argument_selector_redirect($nodes) {
drupal_goto('vps/2+3');
}
Nu är bara frågan hur jag ska få bort hårdkodningen av "2+3" så att det istället hämtas från arrayen $nodes som innehåller nid på de noder man har valt. Måste ju vara plättlätt, men som nybörjare på PHP tar jag gärna emot tips på detta.
Mission completed!
Blev klar med detta nyligen och har skickat koden till kratib som har hand om VBO. Det blev en action till slut nu när VBO har stöd för action-attributet aggregate.
Kratib gillade idén och la in koden som en del av VBO.
Har också skrivit en instruktion om någon skulle vilja prova.
/Adam