28.07.2013 Views

Hent teknisk dokumentation - Go Basic

Hent teknisk dokumentation - Go Basic

Hent teknisk dokumentation - Go Basic

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Som det ses i diagrammet, nedarver alle klasserne direkte, eller indirekte fra Entity<br />

klassen, som gør at CmsService klassen kan arbejde med dem.<br />

Eksempler på brugen af API-abstraktionen kommer her:<br />

var service = CmsService.Instance; // Returnerer via provider pattern en request<br />

scope instans af <strong>Go</strong><strong>Basic</strong>.UmbracoServices.UmbracoService.<br />

var module = service.GetItem(new Id(12)); Returnerer et typestærkt<br />

FormsModule objekt. Den tilsvarende kode i Umbraco ville være :<br />

var node = new NodeFactory.Node(12);<br />

eller<br />

var document = new Document(12);<br />

Modulsystem<br />

<strong>Go</strong> <strong>Basic</strong>s modulsystem er udviklet for at give redaktører en større fleksibilitet i forhold<br />

til opbygning af indhold. Et modul er basalt set en lille byggeklods som kan inkluderes<br />

på en eller flere sider. Der findes en række forskellige modultyper i <strong>Go</strong> <strong>Basic</strong>, bl.a. en<br />

nyhedsliste, en call-to-action box, et billedegalleri og en videoboks. Hver modultype<br />

har en række felter som gør, at det enkelte modul kan konfigureres på forskellige<br />

måder.<br />

Rent <strong>teknisk</strong> set, består et modul af en dokumenttype, en entitets klasse og en<br />

præsentationsklasse.<br />

Dokumenttypen skal nedarve fra GridModule dokumenttypen og skal navngives med<br />

postfix ”Module”, f.eks. ”MultiBox Module”. Det giver et dokumenttype alias som<br />

hedder følgende ”MultiBoxModule”. Der skal ikke specificeres en template ved<br />

oprettelsen. Derudover tilføjer man de felter man har behov for, for at konfigurere<br />

modulet.<br />

Entitetsklassen skal nedarve fra GridModule entiteten, og navnet skal svare til<br />

dokumenttypens alias. Dette sker helt automatisk ved at køre kodegenereringen. For<br />

at tilgå de enkelte felter på modulet oprettes en partiel klasse, hvorpå felterne oprettes<br />

som properties.<br />

Præsentationsklassen kan være en CustomControl eller en UserControl. Der er pt.<br />

ikke understøttelse af xslt renderinger. Præsentationsklassen skal hedde<br />

entitetsklassens navn plus postfikset ”Rendering”. Dvs. MultiBoxModuleRendering.<br />

Når et modul skal renderes leder systemet altså efter en præsentationsklasse som<br />

hedder modulets navn + ”Rendering”.<br />

Bemærk! Hvis man benytter sig af user controls til at implementere<br />

præsentationsklassen, skal den oprettes under /Modules folderen i roden af website<br />

projektet.<br />

Eksempel på tilføjelse af et modul<br />

I det følgende eksempel tager vi udgangspunkt i at benytte custom controls til at<br />

implementere et ”Hello World” modul.<br />

Opret dokumenttypen ”Hello World Module”.<br />

Log ind i Umbraco som administrator.<br />

Vælg ”settings” sektionen i venstre side i bunden.<br />

5

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!