Drupal 7: Einbinden von Stylesheets, JavaScript und RSS-Feeds
Wenn man - wie wohl die meisten professionellen Nutzer - in Drupal 7 viele verschiedene Inhaltstypen mit jeweils eigenen Templatedateien definiert hat und einsetzt, liegt es auch nahe, über die Einstellungen in der
(Name des Themes).info hinaus auch für jeden einzelnen dieser Inhaltstypen individuelle Features wie Stylesheets, Skriptdateien oder RSS-Feeds einzubinden. Es ist zum Beispiel hinsichtlich der Performance nicht sinnvoll, auf allen Seiten eines Angebotes auch alle JavaScript-Bibliotheken zur Verfügung zu stellen, die man irgendwo vereinzelt einmal benötigt. Abweichende CSS-Definitionen können wiederum eingesetzt werden, um Rubriken einer inhaltlich heterogen aufgebauten Website optisch deutlich zu unterscheiden.
Drupal stellt hierzu drei Funktionen zur Verfügung (je eine für CSS, JavaScript und RSS-XML), die in die Templatedatei des jeweiligen Inhaltstyps direkt hinter die Renderfunktion des Headers gesetzt werden; wenn wir z. B. einen Inhaltstyp
wissensartikel im Theme
meintheme definiert haben, so bearbeiten wir im Theme-Directory (
/sites/all/themes/meintheme/) das Template
page--wissensartikel.tpl.php.
JavaScript einbinden
Hier kommt die Funktion
drupal_add_js() (
genaue Dokumentation der Parameter siehe hier) zum Einsatz. Wir übergeben ihr der Einfachheit halber nur den Dateinamen inklusive Pfad der einzubindenen Skriptdatei (wenn kein weiteres Argument angegeben wird, geht Drupal automatisch davon aus, dass eine Datei zu laden ist). Dies ist entweder relativ zum Drupal-Installationsverzeichnis möglich, wie in der oberen Lösung, oder auch gleich direkt relativ zum aktuellen Theme-Verzeichnis (unten).
1: 2: 3: 4: 5: 6: 7: 8: 9:
| <?php
// $Id: page--wissensartikel.tpl.php $
?>
<?php print render($page['header']); ?>
<?php
drupal_add_js('/sites/all/themes/meintheme/js/anwendung/skript.js');
?> |
1: 2: 3: 4: 5: 6: 7: 8: 9:
| <?php
// $Id: page--wissensartikel.tpl.php $
?>
<?php print render($page['header']); ?>
<?php
drupal_add_js(drupal_get_path('theme', 'meintheme') .'/js/anwendung/skript.js');
?> |
CSS einbinden
Etwas anders sieht die Funktion
drupal_add_css() (
Dokumentation) aus. Der Unterschied besteht vor allem darin, dass ein Optionsarray übergeben wird, das u. a. die Gruppe festlegt, der das Stylesheet hinzugefügt werden soll, sowie dessen Quelle. Auch ein URL kann angegeben werden.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| <?php
// $Id: page--wissensartikel.tpl.php $
?>
<?php print render($page['header']); ?>
<?php
drupal_add_css('/sites/all/themes/meintheme/css/stildatei.css',
array('group' => CSS_THEME, 'type' => 'external'));
?> |
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| <?php
// $Id: page--wissensartikel.tpl.php $
?>
<?php print render($page['header']); ?>
<?php
drupal_add_css(drupal_get_path('theme', 'meintheme') .'/css/stildatei.css',
array('group' => CSS_THEME, 'type' => 'external'));
?> |
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| <?php
// $Id: page--wissensartikel.tpl.php $
?>
<?php print render($page['header']); ?>
<?php
drupal_add_css('http://www.meinedomain.endung/sites/all/themes/meintheme/css/stildatei.css',
array('group' => CSS_THEME, 'type' => 'external'));
?> |
RSS-Feed einbinden
Hierzu dient die Funktion
drupal_add_feed() (
Dokumentation). Neben der Pfadangabe relativ zum Installationsverzeichnis ist auch die Verwendung eines URL möglich:
1: 2: 3: 4: 5: 6: 7: 8: 9:
| <?php
// $Id: page--wissensartikel.tpl.php $
?>
<?php print render($page['header']); ?>
<?php
drupal_add_feed('/rss.xml');
?> |
1: 2: 3: 4: 5: 6: 7: 8: 9:
| <?php
// $Id: page--wissensartikel.tpl.php $
?>
<?php print render($page['header']); ?>
<?php
drupal_add_feed('http://www.meinedomain.endung/rss.xml');
?> |