Collection modulet

For en uges tid siden udgav jeg mit andet modul på Drupal.org: Collection.

Collection blev født af at vi på arbejde er i gang med flere sites der har en "tema" abstraktion (og andre ting der ligner). Modulet er rimelig simpelt da CCK leverer det meste der skal til via node reference modulet.

Det vi skulle bruge var en mulighed for at samle nogle givne artikler i en "tema" abstraktion. Når disse artikler blev vist, så skulle temaet også præsenteres på siden, og der skulle være mulighed for at vise en liste med andre artikler i temaet, og hoppe videre til en af dem.

Collection modulet implementerer det ved at man kan definere en node type som en collection. Det der kræves af collection typen er et CCK node reference felt der definerer hvilket noder (artikel noder) der er en del af denne collection (altså temaet). At der er et node reference felt er det eneste krav til collection node typen, opsætningen af feltet og alt andet på node typen er valgfrit.

Når man så har valgt et node reference felt på en content type, og oprettet en node af den type og valgt nogen andre noder (i tema eksemplet vil det være nogen artikel noder), så stiller collection modulet en blok til rådighed som, når man er inde på node view for en af del-noderne, vil vise hvilke collection noder den er del af, og en der viser hvilke andre artikler der er del af samme collections.

Med lidt theming er det ikke svært at lave collections blokken som f.eks. et slags banner, og der er også hooks der gør det muligt for andre moduler at justere hvilke collections der vises, og i hvilken rækkefølge. Og har man brug for helt specielle ting, så kan man kigge på $node->collections, som sættes når noderne loades, og arbejde derfra.

Det er ikke det mest komplicerede modul, det meste af dens arbejde består i at vedligeholde en tabel der fungerer som baglæns index over hvilke noder der er del af hvilke collections, men det leverer en grundfunktionalitet der er genbrugelig til forskellige formål.

Blog tags: