Mambo Open Source

Mambo (også kalt Mambo Open Source eller MOS) er et publiseringsverktøy (engelsk: Content Management System, CMS) som er basert på åpen kildekode. Det brukes til å opprette, vedlikeholde og presentere innhold, og kjører på Apache/PHP/MySQL-plattformen. 
Det er lisensiert under GNU/GPL, og er gratis å bruke og modifisere.

Prosjektet

Mambo ble utviklet som et kommersielt produkt av Miro International i 2000. I april 2001 ble versjon 3 utgitt, og Miro utgir en GNU GPL-utgave av Mambo som kalles Mambo Open Source (MOS). Frem til midten av 2002 er Miro de eneste som vedlikeholder og oppdaterer MOS, mens de parallelt med dette videreutvikler den kommersielle versjonen. De blir så kontaktet av Robert Castley, og det ender med at han tar over prosjektlederstatusen fra Miro. Castley videreutvikler versjon 3 av MOS, og slipper versjon 4 beta. Andrew Eddie blir med Castley, men faller snart ut av tidsmessige grunner.
I mai 2003 kunngjør Miro at de ønsker å trekke tilbake MOS-koden for fiksing av feil og sikkerhetshull, og gir to av deres egne programmerere jobben. De uttaler også at de ønsker å endre lisensen til noe annet en GPL, på grunn av det hyppige misbruket av denne. Etter stort trykk fra miljøet rundt MOS blir de fort ferdig med oppgraderingen, og faller bort fra sin uttalelse om lisens, for å få MOS-prosjektet i gang igjen.
I kjølvannet av dette kommer MOS 4.5, og skillet mellom Mamboo CMS (Miro sin kommersielle versjon) blir betydelig større.
I 2005 foretok Miro et navneskifte, fra Mambo CMS til Jango. Dette førte til at Mambo Open Source også byttet navn, nemlig til Mambo. Dette hadde ingen juridiske følger, men var en formalitet fra Miro sin side.
Samme år ble også Mambo Foundation inc stiftet. Det ble foretatt en organisatorisk restrukturering for å gjøre Mambo-prosjektet mer oversiktlig og tilgjengelig, og for å forbedre koordinasjonen mellom de ulike teamene. Det førte til mange diskusjoner om hva Miro egentlig ville med dette, og mange mente at Miro nå forsøkte å ta over Mambo igjen, og fjerne det fra open-source-lilensen. Dette førte til at utviklerne av Mambo startet Open Source Matters.

Furthermore-saken

I 2004 ble Mambo stilt overfor et krav fra Brian Connolly hos Furthermore Inc., som gikk ut på at Mambo-prosjektet etter sigende brukte kode som han hadde opphavsretten til.
Saken begynte med at Connolly engasjerte en av Mambo-teamets utviklere, Emir Shakic, til å lage en utvidelse til hans eget innholdsbehandlingssystem. Etter å ha gjort dette, la Shakic til en liknende funksjon til Mambo. Connolly observerte dette, og skrev et i åpent brev til Mambo-samfunnet:
Hvis du per i dag bruker programvaren Mambo OS i en hvilken som helst utgivelse etter 3. oktober 2003, kan du og din organisasjon risikert å bli utsatt for en rettstvist og muligens en sivil rettsforfølgelse.
Connolly mente at Shakic hadde brukt koden han laget under ham i Mambo. Dette førte ifølge Connolly til at hans konkurrenter nå fikk tilgang til kode som var hans egen eiendom, og at han ikke lenger kunne tjene penger på Shakics arbeid, da det nå ble tilgjengelig for alle gjennom Mambo Open Source.
Shacik på sin side påstod at han ikke en gang hadde skrevet under arbeidskontrakten mellom ham og Connolly, og dermed ikke var pålagt å hemmeligholde koden han skrev for Connolly. Shakic påstod også at han ikke hadde brukt koden han skrev for Connolly, men at han hadde skrevet en helt ny kode for MOS, som hadde det samme resultatet, men hvor koden altså ikke var den samme.
Connolly ville ikke vise koden Shakic hadde skrevet for ham, og Shakic ville heller ikke vise en kopi av arbeidskontrakten.
Etter massive protester fra hele Mambo-miljøet, inkludert Miro International, gikk i mot Connolly, og det endte med at ingen ble anmeldt eller rettsforfulgt.

Teknisk

Mambo er konstruert for å operere under webserveren Apache. Det sies at den også virker under andre servertyper, men da noe ustabil. Den krever også at PHP og MySQL er installert i Apache, da den bruker PHP som språk og til kompilering, og MySQL til all databehandling.

Maler

En mal definerer utseendet til et Mambo-drevet nettsted, og er bygd opp av HTML og eventuell CSS-kode. Det finnes mange gratis maler som kan lastes ned fra ulike nettsteder, mens det også finnes firmaer som selger maler.

Komponenter

Komponenter er det som genererer innhold i MOS. Det lastes med mosMainBody()-funksjonen, og innholdet vises ut ifra det som er i itemid eller option-variabelen (se index.php).

Content-komponentet

MOS kommer med en rekke komponenter ferdig installert. Det mest sentrale er «content»-komponentet. Dette er integrert med en rekke andre komponenter og moduler som følger med mambo som standard, og det er dette som brukes til å lage grunnleggende innhold.
Det er to hoveddeler i «content»-komponentet: Content Sections og Static Content. Content Sections består av kategorier, som igjen består av Content Items, altså enkeltsider. Static Content er også slike enkeltsider, men de blir ikke kategorisert slik som enkeltsidene i Content Sections.
En enkeltside består av mange ulike felter: navn, tittel, dato for opprettelse, dato for siste endring, hven den er skrevet av, et felt for selve innholdet med flere.

Frontpage-komponentet

Dette er ment som forsiden i Mambo, og er det som vanligvis brukes – men man kan bruke et hvilket som helst komponent som forside. 
Denne viser alle enkeltsidene som er satt til å vises i dette komponentet, man kan hake av for «show on frontpage» for hver enkeltside. Innholdet vises ved at har enkeltsidene to separate felt: Intro text og Main text. Intro Text er en ingressfunksjon. Dersom en tekst vises i Frontpage-komponentet, vises innholdet i Intro Text-feltet. Velger man å lese hele enkeltsiden med "les mer"-funksjonen, vises først Intro Text-feltet, og deretter vises Main Text feltet. Dette hindrer lange tekster på forsiden.

Tilleggskomponenter

Mambo kan utvides med en rekke tilleggskomponenter som utvider mambos funskjonalitet ut over de komponentene som følger med. Det er et eget installsjonsgrensesnitt for dette, som laster opp en zip- eller gzip-fil, dekomprimerer denne og flytter filene på de representative stedene i mambo-installasjonen.
Disse komponentene kan være forum, gjestebøker, gallerier, filarkiver etc. – det er ingen grense for hva man kan gjøre med et komponent annet en tekniske begrensningene i rammeverket, Apache/PHP/MySql.

Moduler

Moduler er innhold utenfor hovedinholdet. Dette omfatter bl.a. menyen, innlogging, søkeboks o.l., altså boksene som vises rundt hoveddelen av siden.
I malen definerer en de ulike posisjonene. Man har standardposisjoner som «left» (venstre) og «right» (høyre), og disse defineres i malen (se ovenfor). Utvikleren av malen bestemer selv hvor de ulike posisjonene skal være i malen, så for eksempel «left»-posisjonen må ikke være til venstre i malen.
Modulene kan settes opp til å vises over alt, eller noen ganger. Man velger hvilke menylinker modulen skal være synlig på, eller at den skal være synlig over alt. Hovedmenyen bør vises på alle sidene, men en modul som viser de siste innleggene i forumet kan for eksempel kun vises på forsiden og i selve forumet.