Mandag, 03 september 2012 11:06

Sådan undgår du at miste dine ændringer: Overrides

Skrevet af 

I dag vil vi skrive lidt om en vigtig funktion i Joomla, som gør CMS’en meget fleksibel: Overrides.

Overskrivninger

Overskrivninger (overrides) er en måde, hvorpå man kan ændre eller udvide Joomlas funktionalitet. Dette kan selvsagt være brugbart i mange situationer, og er uundværligt for Joomla-udviklere.

Man kunne selvfølgelig bare ændre direkte i Joomlas kernefiler, men ud over at det kan medføre uoprettelige fejl, bliver alle ændringerne også overskrevet hver gang Joomla bliver opdateres.

Template overrides

I den skabelon (template), som man bruger, kan man ændre den måde komponenter og moduler vises på. Det gøres ganske simpelt ved at kopiere layoutfilerne til din skabelon, og foretage ændringerne i kopien.

Det er dog ikke ligegyldigt hvor i skabelon-mappen du placerer dine ændringer. For moduler gælder det at modulet mod_eksempel har sine layoutfiler i mappen modules/mod_eksempel/tmpl. Indholdet af denne mappe (der oftest blot består af en index.html-fil og en default.php-fil) kopieres til din skabelon, til templates/din_skabelon/html/mod_eksempel/. Det er vigtigt at man opretter mappen html hvis den ikke er der, og at modulnavnet er præcis det samme. Filen default.php (eller hvilke layoutfiler der nu er tale om) kan så ændres som du har lyst i din skabelonmappe, og når denne skabelon er valgt, slår ændringerne automatisk igennem.

For komponenter gælder samme princip. Hvis man f.eks. vil ændre visningen medlemmer i komponentet com_eksempel, kopieres filerne fra components/com_eksempel/views/medlemmer/tmpl til /din_skabelon/html/com_eksempel/medlemmer/. Læg mærke til at det er mapper i komponentets views-mappe der kan laves overrides med, og at det kun er indholdet af tmpl-mappen.

Alternative layouts

En mere fleksibel metode er de såkaldte alternative layouts. Her kan man selv bestemme hvornår ens eget layout skal benyttes, og hvornår Joomlas standard skal benyttes.

Metoden er simpel. Ligesom ovenfor oprettes en mappe til komponentet eller modulet i templates/din_skabelon/html. Men i stedet for at navngive layoutfilen på samme måde som den opfindelse (f.eks. default.php) , vælger man et andet navn til sit alternative layout (f.eks. preview.php) i skabelonen.

Nu vil man få mulighed for at vælge mellem de forskellige layouts i Joomlas backend. For moduler gøres det i moduladministrationen under det pågældende modul. Under avancerede indstillinger kan der vælges et alternativt layout.

For komponenter gøres det inde under det enkelte element. Har man f.eks. lavet et alternativt layout til en artikel, kan dette vælges i administrationen under den enkelte artikel i ”artikelindstilinnger”.

Language overrides

I Joomla 2.5 er sprogstyringen blevet noget mere fleksibel, så man på en enkelt og elegant måde kan rette i Joomlas oversættelse af sprogets sætninger.

I mappen languages/overrides kan man placere sine alternative sætninger til Joomlas kerneoversættelse. Ved at oprette en fil kaldet da-DK.override.ini for dansk eller en-GB.override.ini for engelsk i overrides-mappen, kan man lave sine egne oversættelser af Joomlas foruddefinerede sætninger.

I samme ombæring vil jeg gøre opmærksom på Joomlas udmærkede sprog-debugging-system. I Globale indstillinger kan man sætte sprog-debugging til, hvorefter man hurtigt kan se hvilke sætninger der er oversat. Hvis indstillingen er sat til ja, vil oversatte sætninger på siden blive omkranset af **, mens sætninger der ikke kan findes i sprogfilerne omkranses af ??.

Et sidste tip er, at man i sprogfilerne sagtens kan benytte dobbelt citationstegn (”) i sine oversættelser. Benyt _QQ_ eller " i din sætning, og det vil blive vist som ” på Joomla-siden.

Andre overrides

Det slutter selvfølgelig ikke her. Der er flere muligheder med overrides, men de her nævnte er de mest almindeligt anvendte.

Læst 23738 gange Senest ændret Mandag, 03 september 2012 11:23
Lars Mogensen

Udvikler hos Webitall ApS. Webitall er et webudviklerhus som laver CMS-løsninger fortrinsvis baseret på Joomla. Vi laver egenudviklede løsninger som integreres i Joomla-platformen.

Skriv en kommentar

Sørg for du indtaster de påkrævede oplysninger (*).
HTML kode er ikke tilladt.