Javascript und CSS-Dateien einbinden
Um totsicher das Einbinden von Javascript- und CSS-Dateien zu realisieren die generell bzw. seitenweit verwendet werden sollen kann man die Datei "template.php" verwendet. Dort schafft man sich irgendwo Platz und trägt den entsprechenden Code ein.
Das kann so aussehen
Snipped aus einer "template.php" des Sky Theme:
<?php
// Sky Javascipt
drupal_add_js(path_to_theme() . '/js/sky.js');
drupal_add_js(path_to_theme() . '/js/toggle-r-sidebar.js', 'theme', 'footer');
// Sky CSS
drupal_add_css(path_to_theme() . '/css/d6box.css', 'theme');
?>
Möglichkeiten der 3 Funktionen drupal_add_js(), drupal_add_css() und path_to_theme() können auf der von Drupal nachgelesen werden.
- Anmelden oder Registrieren um Kommentare zu schreiben
Eine Ergänzung
am 15.09.2008 - 16:12 Uhr
Gerade gestern habe ich zu diesem Thema zwei neue Erkenntnisse gewonnen:
1.) Das Einbinden muss nicht zwingend in template.php erfolgen, es kann bspw. auch in einem Modul erfolgen, das die Ausgabe des entsprechenden Nodes beeinflusst.
2.) Muss eine externe Javascript-Datei eingebunden werden, funktionniert drupal_ad_js nicht. Abhilfe schafft folgender Code:
<?php
// drupal_add_js('http://www.google.com/jsapi', 'module', 'header');
// die obere Zeile geht nicht, da externer Link, deshalb
drupal_set_html_head('<script src="http://www.google.com/jsapi" type="text/javascript"></script>');
?>
Inspiration: http://drupal.org/node/37786
Getestet mit Drupal 5.10
Dies bedeutet indirekt das ich ein Modul hacken müsste.
am 09.10.2008 - 12:50 Uhr
Natürlich kann man CSS- und JS-Dateien auch in Modulen einbinden.
Mein Post erfolgte unter dem Gesichtspunkt des reinen Theming - also wenn kein eigenes, selbst geschriebenes, Modul verfügbar ist.
es kann bspw. auch in einem Modul erfolgen, das die Ausgabe des entsprechenden Nodes beeinflusst
Dies bedeutet indirekt das ich ein Modul hacken müsste. Um dies nicht tun zu müssen bietet sich die "template.php" an.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Node spezifisch Code einfügen?
am 21.07.2010 - 12:33 Uhr
Gut erklärt.
Aber wie kann ich JS bzw. CSS Dateien Node-spezifisch einbinden?
Oder wirft man den Code in alle Seiten, obwohl er nur von einem Nodetype benötigt wird?
Matthias
Webseite im Stil von Nachrichtenportalen aufgesetzt mit Drupal 6.X
Neues und Tests über Geotagging, Fotografie und Android auf
www.mawosch.de