JS direkt ins Node einbinden (Drupal 7)
am 03.12.2011 - 16:39 Uhr in
Hallo,
ich hoffe meine Frage wurde nicht irgendwo schon ganz offensichtlich beantwortet- über die Suchfunktion habe ich jedenfalls das passende nicht finden können und auch Tutorials und Drupal.org haben mir direkt nicht weitergeholfen, ich hoffe die Frage ist hier also okay.
Ich habe eine statische Website, (statisch heißt in dem Falle also schlichtweg mit HTML, CSS und ein paar Javascripts), die ich jetzt gerne auf meine Drupal 7 Installation übertragen möchte. Nun möchte ich in einigen Nodes ein paar CSS und Javascript Befehle benutzen. Die Möglichkeit Scripts über das Theme einzubinden ist mir bekannt, ich benutze Corolla auf Drupal 7. Auch wie man allgemein Stylesheets einbindet weiß ich, das funktioniert soweit auch wie es scheint. Nun habe ich aber ein paar Javascript Lösungen, die neben einem integrierten .js File auch ein bisschen JS Code im Html Bereich haben. Ich selbst bin mit der Programmierung in JavaScript nicht wirklich bewandt und kann mir das daher nicht selbst logisch erklären.
Die Einbindung einer Script Datei über folgenden Befehl habe ich wie es scheint erfolgreich gemacht, es gibt zumindest keine Fehlermeldungen oder ähnliches.
<?php
drupal_add_js('js/coda-slider.1.1.1.pack.js');
?>
Soweit ich weiß ist mit drupal_add_js auch die Direkteingabe von Javascript Codes im Node möglich. Wenn ich das versuche, ernte ich aber Fehler wie den folgenden:
Parse error: syntax error, unexpected T_FUNCTION, expecting ')' in modules/php/php.module(74) : eval()'d code
Ich denke mal, dass ich bei der Übertragung des JS Codes irgendwo einen Fehler mache, vermutlich weil mir die Logik und Begrifflichkeiten von Javascript nicht so geläufig sind.
Um die Frage jetzt auf den Punkt zu bringen: Ist es möglich auf diese Art und Weise neben der Einbindung der .js Datei Javascript als direkten Code in das Node einzubinden? Und wenn ja, wie genau muss der Code aussehen? Es geht konkret um folgenden Code:
< script type="text/javascript">
var theInt = null;
var $crosslink, $navthumb;
var curclicked = 0;
theInterval = function(cur){
clearInterval(theInt);
if( typeof cur != 'undefined' )
curclicked = cur;
$crosslink.removeClass("active-thumb");
$navthumb.eq(curclicked).parent().addClass("active-thumb");
$(".stripNav ul li a").eq(curclicked).trigger('click');
theInt = setInterval(function(){
$crosslink.removeClass("active-thumb");
$navthumb.eq(curclicked).parent().addClass("active-thumb");
$(".stripNav ul li a").eq(curclicked).trigger('click');
curclicked++;
if( 6 == curclicked )
curclicked = 0;
}, 3000);
};
$(function(){
$("#main-photo-slider").codaSlider();
$navthumb = $(".nav-thumb");
$crosslink = $(".cross-link");
$navthumb
.click(function() {
var $this = $(this);
theInterval($this.parent().attr('href').slice(1) - 1);
return false;
});
theInterval();
});
// < /script>
So ist er in meiner HTML Datei notiert. Kann man ihn mit add_js einbinden und wenn ja, wie genau muss das aussehen?
Ich hoffe dass ich die Frage vernünftig gestellt habe und dass mir jemand weiterhelfen kann. Ich bedanke mich schonmal im Vorraus :)
Grüße
El_Corno
- Anmelden oder Registrieren um Kommentare zu schreiben
Drupal_add_js will einen Text
am 03.12.2011 - 19:06 Uhr
Drupal_add_js will einen Text als Übergabe bekommen. Dann mußt Du dafür sorgen, daß Du innerhalb des JavaScript textes nur " (doublequotes) benutzt. Dann kannst Du außen herum ' also singlequotes setzen. Dann ist das insgesamt ein Text. Ich vermute mal das Dein Problem daher kommt.
Ich würde aber immer die Einbindung über das Theme vornehmen und zwar in einer preprocess-Funktion eine js-Datei mittels drupal_add_js einbinden.
Beste Grüße
Werner