Das Örtchen RSS-Feed
Kategorie
Kategorie: Blog
Buttons & Statistiken
Neueste Kommentare

Drupal: Wie treibe ich es richtig? (Teil 1)

Im Rahmen meiner Drupal-Optimierungen musste ich auch ein paar Veränderungen an meinem Theme vornehmen. So hatte ich bisher eine kleine JavaScript-Datei mit dem normalen Script-Tag einfach im head-Bereich meiner page.tpl.php eingebunden. Dies hatte jedoch den Nachteil, daß die Datei bei den JavaScript-Optimierungen nicht berücksichtigt wurde, was einen unnötigen Request nach sich zog.

Problem

Somit stellte sich die Frage, wie die korrekte Vorgehensweise ist, mit der man in Drupal 6 JavaScript-Dateien für ein Theme einbindet. Eine Suche mit Big G ergab nachfolgende Möglichkeiten.

Variante A

Diese Möglichkeit ist wirklich simpel, da es laut Recherche für Drupal 6 reicht, einfach eine Datei mit dem Namen script.js im Ordner des betreffenden Themes anzulegen. Diese Datei wird dann automatisch eingebunden.

Variante B

Will man mehrere JavaScript-Dateien einbinden oder den Namen der Datei nicht verändern, so kann man nachfolgende Ergänzung in der .info-Datei des Themes machen.

scripts[] = scripts.js

Bei dieser Möglichkeit sind wie gesagt beliebige Dateinamen möglich. Benötigt man zwei Dateien, so fügt man die Zeile einfach noch einmal mit dem zweiten Dateinamen hinzu.

Achtung: Die Änderung wird erst aktiv, wenn die Theme-Registry neu aufgebaut wird. Dies erledige ich im Normalfall mit dem Modul Administration Menu.

Variante C

Die bisherigen Möglichkeiten haben leider den Nachteil, daß man keinen Einfluss auf die Einbindung nehmen kann. So ist es meines Wissens nach nicht möglich, die Datei nur auf bestimmten Seiten einzubinden. Dies geht nur mit der dritten Variante:

  1. Öffnet die Datei template.php im Ordner des Themes
  2. Sollte diese nicht existieren, so erstellt eine neue Datei mit dem Namen
  3. Durchsucht die Datei nach der nachfolgenden PHP-Funktion
  4. Sollte sie nicht existieren, so ergänzt sie innerhalb von PHP-Tags
  5. Sollte sie schon existieren, so ergänzt nur die fettmarkierte Zeilen

Achtung: Auch diese Änderung wird erst aktiv, wenn die Theme-Registry neu aufgebaut wird.

function phptemplate_preprocess_page(&$vars) {
    // Add our scripts.js file
    drupal_add_js(
        path_to_theme() .'/scripts.js',
        'theme'
    );
    // Rebuild $scripts variable
    $vars['scripts'] = drupal_get_js();
}

Hinweis: Es kann möglich sein, daß der Funktionsname anstatt mit phptemplate mit dem Ordnernamen des Themes beginnt. Diese Variante habe ich persönlich aber nie zum Laufen gebracht.

Fazit

Ich habe mich für Variante C entschieden und kann deswegen keine Erfahrungswerte für die anderen beiden Möglichkeiten bieten. Theoretisch sollten jedoch alle drei Varianten zu einer Berücksichtigung bei der JavaScript-Optimierung führen und sind deswegen gegenüber dem normalen Script-Tag zu bevorzugen.

Hallo! Bist du neu hier? Dann abonniere doch den RSS-Feed dieses nicht mehr ganz so stillen Örtchens, um über meine geistigen Ergüsse auf dem Laufenden zu bleiben. Alternativ besteht auch die Möglichkeit, sich von FeedBurner per E-Mail über meine Ausscheidungen benachrichtigen zu lassen.

Neuen Kommentar schreiben

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
Der Inhalt dieses Feldes wird öffentlich zugänglich angezeigt, aber als rel="nofollow" markiert.
Hinweis

Kommentare beleben den Blog! Ich freue mich über jeden Kommentar. Du kannst hier offen Deine Meinung zum Artikel sagen, aber bitte beachte die Netiquette und vermeide es andere zu beleidigen.

Bitte unterlasst es die Kommentare zu SEO-Zwecken zu missbrauchen. Kommentare mit Links, die nicht zu Blogs führen (oder zu Blogs mit Grauzonen-Themen) und/oder Keywords als Namen verwenden, sind nicht erwünscht!

Möchtest Du mir einen Blog-Artikel schmackhaft machen, dann schreib die URL ohne HTML-Tag in den Kommentarbereich und ich werde diesen bei Gefallen verlinken.