Varför phptemplate i Garland?

Events happening in the community are now at Drupal community events on www.drupal.org.
Itangalo's picture

Jag håller på att lära mig lite mer om theming, och måste säga att det ju är skitkul.
På vägen har jag hittat en sak som jag blev fundersam över: Om man kollar in template.php-filen för core-temat Garland heter alla temafunktioner något med phptemplate_ (så som phptemplate_breadcrumb).

Varför börjar inte funktionsnamnen med garland_?

Frågan kanske borde se ut så här istället: Varför finns inte den funktionen i phptemplate, med en override i Garland-temat?
På api.drupal.org framgår det att funktionen hör hemma i Garland-temat, vilket jag tycker borde betyda att det inte finns någon default-funktion för breadcrumbs om man inte har Garland aktivt.

Men uppenbarligen har jag fel någonstans.
Är det någon som vet var?

//Johan

Comments

phptemplate_ som standard?!

Itangalo's picture

Ett par sidor senare i boken fick jag ett överraskande svar på frågan:

If your site uses a theme engine, common practice is to name the function themeengine_functionname, but this is not required; either naming convention (themename_functionname or themeengine_functionname) will work fine.
The advantage of following the themeengine_functionname format is portability. By giving the overrides generic names, you can copy them into other themes or even duplicate an entire theme directory as the first step to writing a new theme, all without having to worry about renaming all the overrides.

Det låter ju skitsmart, men då dyker två nya frågor upp:
1. Vad händer om man skapar underteman och även där använder themeengine_functionname? Blir det krock?
2. Hur kommer det sig att alla jag hört hittills förespråkar konventionen themename_functionname, och den till exempel används i Zen?

Någon med expertkunskaper får gärna hjälpa mig att komma till rätta i theming-tillvaron...

//Johan Falk

Ny med Drupal? Kolla in den stabila sidan med tips och guider!
Har du fått problem? Kolla in FAQ-sidan med kilovis av besvarade frågor.

Johan Albin har en del att

Tack!

Itangalo's picture

Det gjorde saken klarare. Tack!

För er som inte läst igenom länkarna (här når du John Albins inlägg) kan jag summera:

Båda metoderna fungerar i Drupal 6, men av blandade anledningar är det bättre att använda themename_ som prefix. En av anledningarna är att prefixet enginename_ inte kommer att fungera i Drupal 7.

//Johan Falk

Ny med Drupal? Kolla in sidan med tips och guider!
Har du fått problem? Kolla in FAQ-sidan med besvarade frågor.

Det är kul att

henrrrik's picture

Det är kul att temasituationen blir så mycket bättre i D7. När jag tog mina första stapplande steg med en rykande färsk D5 så utgick jag, som så många andra, ifrån att det bästa var att börja peta i en kopia av Garland när man skulle göra ett nytt tema. Man utgår ju lätt ifrån att det som följer med i lådan följer best practice, men icke. Stark kommer att göra livet mycket lättare för de som hoppar på tåget när 7:an kommer.