Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Themes & Theming ›

drupal_add_js nur für bestimmte Seiten benutzen

Eingetragen von brucebanner (9)
am 03.08.2010 - 10:29 Uhr in
  • Themes & Theming
  • Drupal 6.x

Hi zusammen,

habe folgendes Problem. Da es leichte Konflikte zwischen zwei js-Dateien gibt, möchte ich eine JS-Datei nur auf EINER bestimmten Seite integriert haben.

Momentan habe ich es wie folgt gelöst:

In der page.tpl:

<?php if ($title = 'termine') { add_termine(); } ?>

Und die Funktion in der template.php

function add_termine() {
  drupal_add_js(drupal_get_path('theme', 'testtheme') . '/js/termine.js');
}

Aber irgendwie scheint das ganze nicht zu greifen. Hat hier jemand noch ne andere Idee, wie man das lösen kann, dass eine bestimmte js nur auf einer Seite integriert wird?... ohne extra ein ganzes Modul zu programmieren!?

Vielen Dank schonmal

‹ node.tpl.php & deutsche Sonderzeichen [gelöst] Fehlermeldung im Theme ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich würde die Variable

Eingetragen von netzkoop (1820)
am 03.08.2010 - 11:08 Uhr

Ich würde die Variable $scripts mittels preprocess erweitern. Etwa so:

<?php
function deintheme_preprocess_page(&$variables) {
  if (
/* du bist meine seite */) {
   
drupal_add_js(drupal_get_path('theme', 'testtheme') . '/js/termine.js');
   
$variables['scripts'] = drupal_get_js();
  }
}
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Schonmal Danke für den Tipp.

Eingetragen von brucebanner (9)
am 03.08.2010 - 13:42 Uhr

Schonmal Danke für den Tipp. Habe jetzt nur folgendes in die template.php geschrieben:

if ($arg0 == "termine") { 
  drupal_add_js(drupal_get_path('theme', 'testtheme') . '/js/termine.js');
  $variables['scripts'] = drupal_get_js(); 
}

Aber irgendwie funktioniert auch das nicht. Hast du noch eine Idee?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Variablen

Eingetragen von stBorchert (6003)
am 03.08.2010 - 14:01 Uhr

Hallo.
Wo genau (also in welche Funktion) hast Du das geschrieben? Woher kommt $arg0?

Bitte nicht nur kleine Häppchen posten sondern den Code auch so zitieren, dass auch Außenstehende den Zusammenhang erkennen können.

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Habe das in die

Eingetragen von brucebanner (9)
am 03.08.2010 - 14:12 Uhr

Habe das in die "phptemplate_preprocess_page" Funktion geschrieben. $arg0 sollte mir ja eigentlich den Pagetitel liefern oder? Hier der ganze Auszug der Funktion:

<?php function phptemplate_preprocess_page(&$vars) {
 
$vars['tabs2'] = menu_secondary_local_tasks();

 
// Hook into color.module
 
if (module_exists('color')) {
   
_color_page_alter($vars);
  }
 
 
//Make sure shadowbox menu links use a different template
 
$arg0 = arg(0);
  if(
$arg0 == "node") {
     
$sbit = arg(2);
  }
  else if (
$arg0 == "contact") {
     
$sbit = arg(1);
  }
  if (isset(
$sbit) && $sbit=="sb"){
   
$vars['template_file'] = 'sb-popup';
  }
 
  if (
$arg0 == "termine") { 
 
drupal_add_js(drupal_get_path('theme', 'testtheme') . '/js/termine.js');
 
$variables['scripts'] = drupal_get_js();     
  }
}
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Debug-Ausgaben

Eingetragen von stBorchert (6003)
am 03.08.2010 - 14:40 Uhr

Lass Dir doch mal ausgeben, welchen Wert $arg0 enthält.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ok, ich gebe dir Recht. arg0

Eingetragen von brucebanner (9)
am 03.08.2010 - 20:35 Uhr

Ok, ich gebe dir Recht. arg0 war keine gute Lösung :))
Aber selbst wenn ich es über die Variable head_title versuche, will der die javascript Datei einfach nicht hinzufügen

if ($vars[head_title] == "termin") { 
    drupal_add_js(drupal_get_path('theme', 'testtheme') . '/js/termine.js');
    $variables['scripts'] = drupal_get_js(); 
}

Ich bin echt am verzweifeln :(

  • Anmelden oder Registrieren um Kommentare zu schreiben

termin = termine ? Oder war

Eingetragen von netzkoop (1820)
am 04.08.2010 - 07:50 Uhr

termin = termine ? Oder war das ein Tippfehlerteufel?
Und die Ausgabe von $vars[head_title] hast du ja schon geprüft, stimmts?
Und ob deine Änderungen direkt übernommen werden auch?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ne, Tippfehler waren keine

Eingetragen von brucebanner (9)
am 04.08.2010 - 09:06 Uhr

Ne, Tippfehler waren keine drin. Habs jetzt aber hinbekommen :) Und zwar habe ich das ganze einfach aus der phptemplate_preprocess_page-Funktion raus genommen und die node-ID als Abfragewert genommen und da lief es plötzlich. Das ganze liegt jetzt so einfach in der template.php:

<?php $nid = arg(1); 
if (
$nid == 14) { 
 
drupal_add_js(drupal_get_path('theme', 'testtheme') . '/js/termine.js');
 
$variables['scripts'] = drupal_get_js();     
}
?>

Auf jeden Fall Danke für die schnellen Antworten..

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 7 Stunden
  • Hey danke
    vor 2 Wochen 1 Tag
  • Update: jetzt gibt's ein
    vor 2 Wochen 1 Tag
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 6 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 6 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 3 Tagen
  • In der entsprechenden View
    vor 3 Wochen 3 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 3 Tagen
  • gelöst
    vor 6 Wochen 4 Stunden
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 1 Tag

Statistik

Beiträge im Forum: 250233
Registrierte User: 20453

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 26 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association