Alt innhold i håndbøkene er bidratt av brukere. Det er viktig å vite at alle registrerte brukere til nettstedet kan bidra, og at de norske Drupalhåndbøkene er utviklet av Drupalbrukere for Drupalbrukere i Norge. Opprett bokside.
Oppgrader din utseendemal fra 5.x til 6.x
Har du en utseendemal for Drupal 5.x som du vil gjenbruke til Drupal 6.x? Det finnes en del forandringer som du må gjøre for å oppgradere din utseendemal.
.info-filer
I 5.x, begynte modulene å lagre metadataopplysninger ved bruk av. info-filer (f. eks., navnet, beskrivelse, versjon, avhengigheter, osv.). Fra 6. x, har også utseendemaler en .info-fil.
Eksempel themename.info (delvis liste.) :
Name = Johns_theme
Description = Theme used by Drupal Norge with 9 regions, suckerfish menu and theme api settings.
core = 6.x
engine = phptemplate
$body_classes variabel
I "page.tpl.php" kan du få layouten til siden med følgende kodesnutt:
5.x:
<?php
print $layout;
?>skal hente og printe strengen left, right, eller both, avhengig av hvilke sidestolper du bruker.
I 6.x er $body_classes også tilgjengelig:
<?php
print $body_classes;
?>som tilbyr spesialiserte class du kan bruke til din CSS-fil. Les mer om dette på http://drupal.org/node/171906
Navnendring til blokkregioner
Variabelnavn til sidestolper og footer -blokkregioner ble endret.
I 5.x, bruker regioner "left", "right" og "footer" variabler $sidebar_left, $sidebar_right og $footer_message i page.tpl.php.
I 6.x, er det lettere. Regioner "left", "right" og "footer" bruker variabler $left, $right og $footer. $footer_message er fortsatt i bruk som bunntekstmeldingen du har på Administrer » Innstillinger » Nettstedsopplysninger
$signature variabel
I Drupal 6.x, are signaturene dynamiske. Det betyr at det vises i kommentarer og ikke en del av selve kommentaren. Derfor må variablen $signature tilføyes til comment.tpl.php
I 5x:
<?php
print $content;
?>I 6.x:
<?php
print $content
?><?php
if ($signature):
?>
<?php
print $signature
?>
<?php
endif;
?>Tips: For å hindre dobbelvisning av signaturer fra gamle kommentarer:
<?php
print $content
?><?php
if ($signature && $comment->cid > 3443): // Siste kommentaren før oppgradering til Drupal 6
?>
<?php
print $signature
?>
<?php
endif;
?>Registeret
I 6.x, funksjoner må registreres. hook_theme() blir brukt til å registrere konfigurerbare snutter. Det er PHPTemplate som tar vare på registreringen på vegne av utseendemalen, slik at, i de meste situasjonene, skal du ikke måtte registrere manuelt.
Det finnes et unntak til dette. Skjemaene som ikke har en standardutseendemalimplementering blir ikke registrert. Det kan kanskje fikses i framtidige versjoner.
Viktig! Hver gang du tilføyer en ny funksjon eller skabelon i utseendemalen, må registeret tømmes! Du kan bruke Devel-modulen og aktivere devel-blokken. «Clear cache»-lenken skal gjenoppbygge registeret. Eller du kan bruke drupal_rebuild_theme_registry() i din template.php-fil. Husk å slette funksjonen når ditt nettsted åpnes til alle.
Konfigurering ved bruk av skabelonfiler
I 5.x, kunne konfigurerbare funksjoner tilsidesettes ved bruk av «themeEngine_hook()» eller «themeName_hook()». All markup kunne plasseres i «template.php».
For å kunne tillate bruk av funksjoner i separate skabelonfiler (.tpl.php), kan _phptemplate_callback() brukes. Ved å aktivere _phptemplate_callback(), kan du manipulere variabler med følgende kodesnutt:
<?php
function _phptemplate_variables($variables, $hook) {
switch ($hook) {
case 'page':
// process variables for page hook.
break;
case 'node':
// process variables for node hook.
break;
}
return $variables;
}
?>I 6.x, er _phptemplate_callback() ikke lenger i bruk. Funksjonen er nå en del av theme() funksjonen. Så lenge som funksjonen er registrert som en skabelon, skal skabelonfilen brukes.
Registrering som en normal funksjon er samme som å tilsidesette ved bruk av themeEngine_hook() eller themeName_hook() uten callback i 5.x.
PHPTemplate registrerer automatisk hook-en som en normal funksjon eller skabelon. For å registrere funksjonen som en skabelon, opprett en .tpl.php-fil med det samme navnet som hook-en. F.eks. menu_tree hook konfigureres. Opprett en skabelonfil på din utseendemalmappe med navnet menu-tree.tpl.php. Husk at understrek fra hook-navnet endres til bindestrek. Bygg registeret på nytt (clear_cache) og det er nå klar til bruk.
Variabelfunksjonen (Variable function) _phptemplate_variables() er ikke lenger i bruk. Viktige ting å tenke på er:
* Variabler er nå hentet ved henvisning(reference)
* Hver hook kan få egen variabelfunksjon.
* Argumenter $variables og $hook blir brukt for alle variabelfunksjoner.
* Mange variabelfunksjoner kan brukes for hver hook.
* PHPTemplate registrerer følgende automatisk:
- phptemplate_preprocess()
- phptemplate_preprocess_HOOK()
- themeName_preprocess()
- themeName_preprocess_HOOK()
* PHPTemplate kan registrere variabelfunksjoner for sin utseendemal så lenge som en skabelonfil for hook-en eksisterer på utseendemalmappen.
* Disse variabelfunksjoner er også kjent som "preprocess" funksjoner
For "menu_tree" hook-en, $say_hi blir tilgjengelig på menu-tree.tpl.php.
<?php
function themeName_preprocess_menu_tree(&$variables) {
$variables['say_hi'] = "hello menu_tree";
}
?>Det høres komplisert ut i begynnelsen men det er en stor forbedring til designere. Modulutviklere kan nå implementere designbare funksjoner i skabelonfiler som standard. Ved å kopiere skabelonfilen til din utseendemalmappe skal Drupal bruke din kopi. Det blir ingen kompliserte konfigurering og callback lenger. Men husk å bygge registreret på nytt.
Behandling av skabelonfiler
Skabelonfiler (.tpl.php) kan behandles lettere ved å organisere dem i undermapper. PHPTemplate kan finne dem og registrere plasseringer automatisk.
Nye skabelonfiler (.tpl.php)
Følgende skabelonfiler brukes av phptemplate.engine (utseendemalmappen)
- page.tpl.php
- node.tpl.php
- comment.tpl.php
- block.tpl.php
- box.tpl.php
Med de nye forandringene, er mye mer standard skabelonfiler tilgjengelig. Noen fra PHPTEmplate i 5.x er også flyttet. Les kommentarer på filene for å se hvor de er brukt før og hva er de tilgjengelige variabler.
For å tilsidesette disse skabelonfiler, må du bare kopiere dem til din utseendemalmappe og bygge registrere på nytt.
En fullstendig liste til nye skabelonfiler finnes på http://drupal.org/theme-guide
Forslag til nye skabelonfilnavn
Filnavn til skabelonfilen eksisterte for page.tpl.php (sti-basert), node.tpl.php (innleggstype-basert) og block.tpl.php (basert på regioner og moduler). Med de nye skabelonkonverteringer, er nye skabelonfilnavn tilgjengelig.
En fullstendig liste til nye skabelonfiler finnes på http://drupal.org/theme-guide

