Drupal Theme mit Haml erstellen

Haml ist eine alternative Template-Engine, ursprünglich entwickelt für Ruby, kann aber auch im PHP-Kontext eingesetzt werden

Seit Jahren auf der Suche nach alternativen Template-Engines bin ich mal wieder auf der Drupal Website fündig geworden. Haml (XHTML Abstraction Markup Language) nennt sich das Grundkonzept, und es kann auch problemlos in Drupal eingesetzt werden. Die Konstruktion neuer Templates ist spielend einfach. Hier eine minimale Anleitung.

 
  1. Als erstes muss die Engine installiert werden. Man lädt sie hier runter, und entpackt sie in das Verzeichnis themes/engines/. Den Ordner sollte man noch umbenennen in „haml“.
  2. Dann muss phphaml noch installiert werden. Das Paket lädt man hier runter, und entpackt es in themes/engines/haml/.
  3. Nun kann das neue haml-Theme bereits angelegt werden. Wie das Erstellen von Themes in Drupal funktioniert, soll hier nicht im Detail erklärt werden (mehr Infos dazu findet man auf der Drupal-Seite). Wir legen also im Theme-Ordner ein neues Verzeichnis hamltheme/ an. Darin wird erst die Datei hamltheme.info erstellt mit dem Unterschied zu anderen Theme-Info-Dateien, dass wir hier haml als Templateengine aktivieren:
    1
    2
    3
    4
    5
    6
    7
    
    name = Haml Theme
    description = 
    version = VERSION
    core = 6.x
    engine = haml
     
    ; etc.
  4. Nun wird noch das Page-Template erstellt. Dazu legen wir eine neue Datei page.haml an. Als Basis-Inhalte fügen wir Folgendes ein (Einrückung beachten!*):
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    
    !!!
    %html
      %head
        = $head
        %title= $head_title
        = $styles
        = $scripts
      %body
        #container
          / primary links as styled list
          %ul#primary
            - foreach($primary_links as $link)
              %li
                %a{:href => $base_path.$link[href]}= $link[title]
          #header= $header
          #left= $left
          #main
            = $tabs
            = $messages
            = $help
            %h2.title= $title
            #content= $content
            #right= $right
            #footer= $footer
  5. *Achtung: Bei der haml-Syntax ist die Einrückung (Leerstellen, Tabulator) entscheiden, ob ein Element als children oder als sibling erstellt wird.
  6. Danach kann man das Theme bereits unter admin/build/themes aktivieren.
  7. Nun müssen natürlich ggf. noch Anpassungen für die anderen Templates (node.haml usw.) gemacht werden.

Interessant ist auch, dass man selbst HTML und PHP-Code in die Templates integrieren kann. Damit sollte am besten jeder selbst einmal etwas rumexperimentieren. Einige Beispiele für die Syntax finden sich im Ordner themes/engines/haml/phpHaml/tpl/.

Viel Spaß!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *