kotori web solutions Maren Arnhold


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');
 
?>


Autorin: Maren Arnhold



comments powered by Disqus
ANZEIGE
kotori web solutions Maren Arnhold bietet einen Komplettservice rund um Webdesign, Webprogrammierung und Webhosting. Suchen Sie nach einer Lösung für Ihre private Homepage? Möchten Sie ein eigenes Blog betreiben und suchen dafür ein geeignetes CMS und entsprechenden Webspace? Oder interessieren Sie sich für E-Commerce und benötigen einen Webshop? Dann sollten wir uns kennenlernen - eine kostenlose Erstberatung ist selbstverständlich!
© 2013 kotori web solutions Maren Arnhold. Alle Rechte vorbehalten/All rights reserved..