jQuery Fehlermeldung mit der Funktion path_to_theme()
Eingetragen von montviso (2188)
am 14.12.2017 - 15:19 Uhr in
am 14.12.2017 - 15:19 Uhr in
Verwende ich die Funktion
$template_path = path_to_theme();
Dann bekomme ich einen Fehler
Uncaught ReferenceError: jQuery is not defined
Verwende ich den harten Pfad, dann ist alles OK
$template_path = "<pfad-auf-mein-drupal>/sites/all/themes/mygratis";
Das passiert mit und ohne jquery_update-Modul.
Irgendeine Idee? Wo ich da nach schauen kann?
- Anmelden oder Registrieren um Kommentare zu schreiben
Hi Montviso. Was gibt denn
am 14.12.2017 - 17:21 Uhr
Hi Montviso.
Was gibt denn $template_path zurück?
egentlich sollte er den global theme_path zurückgeben:
global $theme_path;
Weitere Möglichkeiten:
drupal_get_path('theme', 'THEME_NAME');
global $base_url
$base_ur.'/sites/all/themes'
MFG
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Zurück gibt die Funktion
am 14.12.2017 - 17:40 Uhr
Zurück gibt die Funktion genau das Gleiche, wie wenn ich
<?php
drupal_get_path('theme', 'mygratis');
?>
sites/all/themes/mygratis
Ich hätte es eben gerne unabhängig vom Theme, weil ich das Modul auf versch. Installationen mit versch. Theme-Namen verwende.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Hi Montviso, das ist ja ein
am 14.12.2017 - 18:45 Uhr
Hi Montviso,
das ist ja ein Javascript Fehler???
Uncaught ReferenceError: jQuery is not defined
Ich gehe mal davon aus dass Du den Cahce gelert hast ;-)
Da kann ich nur raten dass deine Abfrage wohl Einfluss nimmt,
bevor JQuery geladen wurde.
MfG
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Ich muss schmunzeln, weil
am 14.12.2017 - 19:11 Uhr
Ich muss schmunzeln, weil Cache leeren auch meine erste Predigt ist bei den Kunden.
Und selbst vergesse ich es doch immer wieder.
In dem Fall war es aber in der Tat mein erster Versuch.
Ganz verstehe ich es nicht.
Ich mache ja keine Abfrage, sondern binde nur eine Datei ein.
Und der Pfad auf die datei benötigt den Pfad zum Theme.
Wie geschrieben, liefern ja beide Methoden, diesen Pfad zu ermitteln das gleiche Ergebnis.
Unterschiede können eigentlich nur innerhalb der Funktionen statt finden.
Ist nicht gravierend, ich helfe mir nun mit der funktionierenden, aber weniger schönen Methode.
Hätte mich nur interessiert...Vermutlich muss ich mir die theme-Path-Funktion mal näher ansehen und debuggen.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Hi, in was für einer Datei
am 14.12.2017 - 20:42 Uhr
Hi,
in was für einer Datei möchtest Du den Pfad setzen,
und was heisst einbinden?????
Kann es sein, dass die Datei ausgeführt wird bevor Drupal
richtig gebootstrapped ist!
LG
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Einbinden heißt per include
am 15.12.2017 - 08:12 Uhr
Einbinden heißt per include in eine .module Datei.
Aber das kann doch nicht das Problem sein.
Der Aufruf der Datei ist doch 1:1 gleich bei funktionierender Variante und bei der mit dem jQuery-Fehler.
Ich rufe sie so auf:
<?php
include($meinpfad."/dateiname");
?>
Und $meinpfad wird einmal mit der einen und einmal mit der anderen Variante gebildet und liefert jeweils den gleichen String.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Hallo, das wundert mich
am 15.12.2017 - 13:00 Uhr
Hallo,
das wundert mich nicht:
Ein Template sollte von einem Theme Hook geladen werden,
damit es dem Theme zur Verfügung steht.
Einfach includen ist keine gute Idee
LG
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Wie geschrieben, tritt der
am 15.12.2017 - 16:18 Uhr
Wie geschrieben, tritt der Fehler nicht auf, wenn ich den Pfad auf die Include-Datei auf dem einen Weg ermittel (eine Drupal-Funktion), aber mit der anderen Drupal-Funktion.
Der einzige Unterschied existiert also zwischen den Drupal-Funktionen.
Dann sollte es ja nichts mit der Datei zu tun haben, die ich include.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Und um jegliche Unsicherheit
am 15.12.2017 - 16:20 Uhr
Und um jegliche Unsicherheit diesbezüglich aus der Welt zu schaffen:
Ich hatte den include-Befehl auch schon auskommentiert und nur die beiden Methoden getestet, den pfad auf das Theme in einer Variable zu schreiben.
Auch da trat der Fehler bei der einen Funktion auf und bei der anderen nicht.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Hi, Du kannst ein Template
am 15.12.2017 - 20:18 Uhr
Hi,
Du kannst ein Template nicht einfach in PHP includen.
Da ist noch gar kein Theme geladen, folglich kann da auch eine solche Variable auch nicht gesetzt sein.
Ein Template wird durch den Namen oder Theme Hooks geladen, wie Du es von Views kennst.
LG
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Robert, ich dachte
am 15.12.2017 - 21:27 Uhr
Robert, ich dachte eigentlich, Du wärest des Lesens kundig. ;-)
Wie oft soll ich noch erwähnen, dass das Problem nicht mit dem Includen des Themes kommt, sondern auch, wenn ich die Include-Befehl auskommentiere?
Er kommt mit Aufruf der Funktion path_to_theme().
Rufe ich stattdessen die Funktion drupal_get_path('theme', 'THEME_NAME'); auf, dann kommt der Fehler nicht.
Ich hätte es gerne unabhängig vom Namen des Themes.
Oder willst Du mir sagen, man darf die Funktion path_to_theme() nicht in einem Modul verwenden?
Wohl kaum, oder?
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Hai, genau das will ich Dir
am 15.12.2017 - 23:51 Uhr
Hai,
genau das will ich Dir die ganze Zeit damit sagen.
Wenn Du ein Template in einem Modul verwenden möchtest, musst Du über die Theme Hooks gehen,
da reicht ein include nicht!
Schau mal hier, so macht man das in einem Modul:
https://www.drupal.org/docs/7/creating-custom-modules/howtos/using-templ...
MfG
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)