Du er ikke logget ind: Log ind eller opret profil
 
Artikler

Komplet oversigt over alle template variabler i Drupal 6

Når Drupal installeres, medfølger et antal templates (filerne der ender med .tpl.php). Installeres der derefter tredjeparts-moduler medfølger der sandsynligvis yderligere templates. Hvor i webstedets fil-struktur de enkelte templates placeres, afhænger af, hvilket theme der benyttes, og hvilke moduler der installeres.
Med disse themes kan man påvirke selve elementernes output (HTML outputtet). De 4 vigtigste templates er page.tpl.php, node.tpl.php, block.tpl.php og comment.tpl.php. Til disse 4 templates findes en række variabler, som listes og uddybes i denne artikel.
============================================Af Kenneth Nielsen, Submit.dk © Er skrevet med udgangspunkt i Drupal 6. ============================================
Variabler der kan kaldes fra alle template-filer (dvs. både page.tpl.php, node.tpl.php, block.tpl.php osv.)

  • $zebra: Værdien vil altid være enten odd (ulige) eller even (lige). Benyttes til eksempelvis at skifte baggrundsfarverne i en tabels rækker.
  • $id: Templatens id. 
  • $directory: Angiver stien til themet. Vises relativ til Drupal installationen som f.eks.: sites/all/themes/mytheme.
  • $db_is_active: Returnerer værdien 1 (True) hvis databasen kører. Såfremt databasen ikke kører, vil browseren give brugeren en besked om, at sitet er offline. En mulig årsag, hvis databasen ikke kører, kan være, hvis der er indtastet forkert brugernavn, adgangskode eller databasenavn i filen sites/default/settings.php. Desuden kan følgende variabler kaldes under betingelse af, at databasen  er aktiv, og at websitet ikke er sat i maintenance/vedligeholdelses -tilstand:
  • $is_admin: Returnerer 1 (True) hvis brugeren, som er logget ind, har rettigheder til at tilgå administrationssiderne. 
  • $is_front: Returnerer 1 (True) hvis det er forsiden der vises.
  • $logged_in: Returnerer 1 (True) hvis brugeren er logget ind.
  • $user: Det globale user-objekt som indeholder data om brugeren. Vær opmærksom på at nogle af disse data er indtastet af brugeren selv, og derfor bør egenskaber fra dette objekt aldrig bruges direkte i et theme uden først at være blevet renset.

Variabler der kan kaldes fra en page-template (page.tpl.php)

  • $base_path: Base-stien til Drupal installationen. Har du installeret Drupal direkte i roden er $base_path blot / (en slash). Har du installeret Drupal på f.eks. følgende URL: http://localhost/mysite er $base_path lig med /mysite/.
  • $body_classes: En super nyttig variabel der tilføjer en række CSS klasser til HTML elementet <body>. Eksempelvis kan Body-elementet se således ud: <body class=”front logged-in node-type-page”> hvilket betyder at:
    • den pågældende side er selve forsiden
    • brugeren der har kaldt siden, er logget ind
    • siden er af indholdstypen Page
  • $breadcrumb: Den enkelte sides brødkrummesti.
  • $closure: Lav aldrig en page.tpl.php uden at have denne variabel med! Flere Drupal moduler benytter sig af hook_footer(), som er en funktion, der tillader modulerne at indsætte HTML eller JavaScript i bunden af en side. For at modulerne kan benytte funktionen, skal variablen $closure benyttes i template filen, og den skal som regel placeres i slutningen af dokumentet umiddelbart før </body>.
  • $content: Returnerer HTML indholdet, som skal vises på den enkelte Drupal side.
  • $css: Returnerer en liste over CSS filer i sitet. Pas på med ikke at forveksle denne variabel med $styles som er den variabel der benyttes i <head></head> til at returnere HTML’en som linker til de relevante stylesheets.
  • $directory: Angiver stien til themet. Vises relativt til Drupal installationen - som f.eks. sites/all/themes/mytheme. Hvis $directory benyttes sammen med $base_path dannes en absolut sti. <?php print $base_path . $directory ?> vil således resultere i den absolutte sti:  /mysite/sites/all/themes/mytheme
  • $feed_icons: Såfremt modulet aggregator er aktiveret vil $feed_icons returnere et RSS feed ikon, der linker til RSS-feedet for den pågældende side.
  • $footer: Returnerer HTML’en for footer-regionen inkl. HTML’en for de blocks der hører til i regionen.
  • $footer_message: Returnerer den tekst, som evt. er indtastet via formularen: Administer > Site Configuration > Site Information > Footer Message.
  • $front_page: Udskriver sti til forsiden. Eksempelvis /mysite/. Hvis du vil lave et link til forsiden, brug da $front_page frem for $base_path, idet $front_page medtager language-domæme og prefix hvis du benytter disse.
  • $head: Udskriver det HTML, som skal placeres i HTML elementet <head></head>. Eksempelvis meta-tags, reference til favicon m.m. Bemærk at indholdet af HTML elementet <title></title> samt referencer til scripts og stylesheets – som jo alle placeres i <head></head> elementet – bruger selvstændig variabler som $head_title, $scripts og $styles.
  • $head_title: Returnerer den tekst der kommer til at stå mellem HTML  koderne <title> og </title>, og som altså udgør den enkelte sides titel.
  • $header: Må ikke forveksles med $head. $header returnerer HTML’en for header-regionen inkl. HTML’en for de blocks, der hører til regionen.
  • $help: Udskriver hjælpetekst på de enkelte sider – typisk administrationssider. Hvilke sider, der har en hjælpetekst, afhænger de enkelte moduler.
  • $is_front: Returnerer 1 (True), hvis det er forsiden der vises.
  • $language: Et objekt. Ved at kalde objektets egenskaber kan man udskrive det sprog som websitet benytter. Eksempelvis kunne $language->language udskrive da og $language->name kunne udskrive Danish.
  • $layout: Værdien af variablen afhænger af det antal sidebars som vises. Vises den venstre sidebar er værdien left. Visen den højre er værdien right og vises de begge er værdien both. Hvis ingen sidebar vises er værdien none. Variablen kan benyttes til at differentiere layoutet afhængig af antallet af sidebars.
  • $left: Returnerer HTML’en for left-regionen inkl. HTML’en for de blocks der hører til i regionen.
  • $logged_in: Returnerer 1 (True) hvis brugeren er logget ind.
  • $logo: Stien til logoet, som er defineret i Drupal:  Administer > Site Building > Themes.
  • $messages: Når man eksempelvis har opdateret en side får man en meddelelse om at ”siden er nu opdateret”. Denne meddelelse – og rigtig mange andre – hentes med variablen $messages.
  • $mission: Indeholder den tekst som er indtastet i Drupal via formularen: Administer > Site Configuration > Site Information > Mission.
  • $node: Er et objekt som har en masse egenskaber, som f.eks. $node->id, $node->type, $node->title og $node->body, som henholdsvis vil:
    • udskrive nodens id
    • udskrive nodens type (page, story eller ….)
    • udskrive indholdet af nodens titel-felt
    • udskrive indholdet af nodens body-felt Se http://drupal.org/node/49768 for en komplet oversigt over objektets egenskaber.
  • $primary_links: Et array som indeholder de primary links, som er blev sat op i Drupals menusystem (Administer > Site Configuration > Menus > Primary Links). Oftest kaldes $primary_links med funktionen theme('links') som vist herunder:<?php if (isset($primary_links)) : ?>             <?php print theme('links', $primary_links, array('class' => 'links primary-links')) ?>        <?php endif; ?>
  • $right: Returnerer HTML’en for right-regionen inkl. HTML’en for de blocks der hører til i regionen.
  • $scripts: Returnerer HTML’en for tags’ene <script> og </script>.
  • $search_box: Hvis modulet search er aktiveret returnerer variablen $search_box HTML’en for Drupal’s søgeformular.
  • $secondary_links: Et array som indeholder de secondary links, som er blev sat op i Drupals menusystem (Administer > Site Configuration > Menus > Secondary Links). Oftest kaldes $secondary_links med funktionen theme('links') som vist herunder: <?php if (isset($secondary_links)) : ?>              <?php print theme('links', $ secondary _links, array('class' => 'links secondary -links')) ?>         <?php endif; ?>
  • $site_name: Variabel som indeholder sitets navn, som er indtastet via Administer > Site Configuration > Site Information > Name. Vær opmærksom på at variablen er tom såfremt site name er deaktiveret via det pågældende theme’s konfigurationsside.
  • $site_slogan: Indeholder den tekst som er indtastet i Drupal via formularen: Administer > Site Configuration > Site Information > Slogan. Vær opmærksom på at variablen er tom såfremt site slogan er deaktiveret via det pågældende theme’s konfigurationsside.
  • $styles: Benyttes i <head></head> til at returnere HTML’en som linker til de relevante stylesheets.
  • $tabs: Returnerer HTML’en til de faneblade du finder på en node, når du er logget ind. Typisk er der tale om fanebladene med teksterne edit og view.
  • $template_files: Hvis du vil lave en template fil til en specifik side, kan du benytte $template_files til at returnere et array med forslag til filnavne (dog uden extension). Eksempelvis page-node-117.
  • $title: Returnerer titlen på den enkelte node. Det vil sige den tekst, du har indtastet i feltet ”title” på en node. Må ikke forveksles med $head_title, som returnerer den tekst der kommer til at stå mellem HTML  koderne <title> og </title>.

Variabler der kan kaldes fra en node-template (node.tpl.php)

  • $content: Returnerer indholdet af den specifikke node.
  • $date: Returnerer dato og klokkeslæt for oprettelsen af noden. Du kan ændre formatet ved at benytte $created. Eksempel: format_date($created, ’small’).
  • $links: Udskriver linkene Read more (hvis noden vises som teaser) og Add new comment (hvis nodetypen tillader kommentarer).
  • $name: Returnerer navnet på forfatteren til noden. Navnet bliver automatisk et link til vedkommendes profil.
  • $node: Hele node-objektet og alle dets egenskaber.
  • $node_url: Returnerer URL’en for den specifikke node. Eksempelvis vil stien http://drupal.dk/?q=node/117 give URL’en /node/117.
  • $page: Returnerer 1 (True) hvis den pågældende node bliver vist som en side. Bliver den derimod vist som en teaser – det vil sige på en side hvor flere noder bliver vist på en liste – returneres 0 (false).
  • $picture: Hvis man har valgt User pictures in posts via administer > site building > themes vil variablen returnere outputtet af theme(’user_picture’, $node).
  • $taxonomy: Returnerer et array af nodens taksonomi-termer i et format der kan benyttes af funktionen theme_links(). Eksempel: Array ( [taxonomy_term_1] => Array ( [title] => skønlitteratur [href] => taxonomy/term/1 [attributes] => Array ( [rel] => tag [title] => ) ) ) .
  • $teaser: Boolsk værdi der afgør om teaseren vises eller ej. Kan benyttes til at indikere om $content indeholder nodens body (True) eller teaseren (False).
  • $terms: Returnerer HTML’en med de taksonomi-termer, der er knyttet til den pågældende node. Hver term linker automatisk til sin egen taksonomi-term side.
  • $title: Titlen på noden. Hvis noden vises som en teaser, vil titlen desuden fungere som link til noden, hvor den vises som en side.
  • $submitted: Såfremt administrator under administer > site building > themes har aktiveret Display post information on for den pågældende nodetype, vil $submitted  returnere dato, klokkeslæt og navn på forfatteren til noden. Svarer altså til en kombination af $date og $name.

Variabler der kan kaldes fra en block-template (block.tpl.php)

  • $block: Genererer hele blok-elementet. Typisk benyttes $block->subject og $block->content som genererer henholdsvis overskrift og indhold.
  • $block_id: Generer et heltal der stiger, hver gang en blok genereres.
  • $block_zebra: Hver gang $block_id øges, skifter denne variabel frem og tilbage mellem odd (ulige) og even (lige).

Variabler der kan kaldes fra en comment-template (comment.tpl.php)

  • $author: Genererer forfatterens brugernavne som automatisk bliver et link til dennes profil-side.
  • $comment: Genererer selve kommentar objektet.
  • $content: Genererer body’en af kommentaren.
  • $date: Returnerer dato og klokkeslæt for oprettelsen af kommentaren. Du kan ændre formatet ved at benytte funktionen format_date(). Eksempel: format_date($comment->timestamp, ’small’).
  • $links: Returnerer HTML’en der generer de links der benyttes på en kommentar såsom edit, reply og delete.
  • $new: Returnerer teksten new ved de kommentarer, som  den pågældende bruger endnu ikke har læst, og updated ved de kommentarer, som er blevet opdateret. Dette gælder dog KUN for brugere, som er logget ind og således ikke for anonymous users.
  • $node: Hele node-objektet for den node, som kommentaren tilhører.
  • $picture: Returnerer HTML’en for bruger-fotoet for den person, der skriver kommentaren, hvis vel at mærke User pictures in posts er aktiveret (via administer > site building > themes).
  • $signature: Returnerer filtreret HTML, som genererer brugerens signatur – hvis vel at mærke signature support er aktiveret (via administer > user management > user settings) .
  • $status: Returnerer en af de tre stadier, en kommentar kan have: comment-preview, comment-unpublished eller comment-published.
  • $submitted: Returnerer dato, klokkeslæt og navn på forfatteren til kommentaren. Svarer altså til en kombination af $date og $name.
  • $title: Genererer titlen på kommentaren som automatisk bliver et link til den fulde kommentar.
5
Din bedømmelse: Ingen Gennemsnit: 5 (2 stemmer)

  • Det er gratis
  • Du kan skrive artikler og tips
  • Du kan få hjælp eller hjælpe andre 
  • - og meget mere …