Submitted by andriana on
Bonjour,
J'ai un sous-thème de zurb_foundation que j'ai configuré sur mon site drupal 7. Bref tout est ok au niveau du theme (affichage, rendu...)
Le problème est que dans le dossier js il y a un fochier scripts.js qui est uniquement dédié à mettre du code js personnalisé. J'ai beau mettre du code DANS ce fichier mais quand je rafraichit la page, il n'ya rien qui se passe. Dans le code source pourtant, le fichier est bien chargé.
Alors je vide le cache, j'ouvre le thème et je l'enregistre. Je vais même dans la bdd pour vider le cache (les tables qui contiennent "_cache") mais rien....le petit alert que je crée avec jquery(dans une closure) ne MARCHE pas.
Le même phénomène est également présent quand j'utilse Sassy (le compilateur sass) qui est bien configuré et marche très bien mais aucun changement sur le front. Je suis persuadé que ce doit être une histoire de cache mais je ne sais pas comment remédier à ce soucis.
Ah oui et une remarque aussi, j'ai désactivé "memcached" sur le serveur mais ça ne change rien non plus.
S'il-vous plaît, si vous avez des suggestions, je suis preneur.
Merci beaucoup de votre aide et bon week end !
Il me semble qu'il faut
Permalien Soumis par vincent59 le 8 Mai, 2015 - 22:50
Il me semble qu'il faut passer par des "Drupal behaviors" .
Par exemple, dans mon fichier custom.js, j'ai ça :
(function($) {
Drupal.behaviors.monModule = {
attach: function (context, settings) {
$('#hide').click(function () {
$('.view-presentation').hide('slow');
});
}
};
})(jQuery);
Bonjour Vincent !
Permalien Soumis par andriana le 9 Mai, 2015 - 16:16
Bonjour Vincent !
Alors dans mon theme, j'ai un fichier scripts.js (prévu pour les custom scripts) et j'ai rajouté un peu de contenu..mais ça ne s'affiche pas ! lool
Voici son contenu:
(ou "mon_theme"est le nom que j'ai remplacé car à la base il y avait ecrit: Drupal.behaviors.STARTER{})
(function ($, Drupal) {
Drupal.behaviors.mon_theme = {
attach: function(context, settings) {
// Get your Yeti started.
$('h2').html('need this !');
})(jQuery, Drupal);
t'en penses quoi ?
Merci.
Est-ce que tu as essayé sans
Permalien Soumis par vincent59 le 9 Mai, 2015 - 21:04
le Drupal :
(function ($) {
Drupal.behaviors.mon_theme = {
attach: function(context, settings) {
// Get your Yeti started.
$('h2').html('need this !');
})(jQuery);
Et il ne faut pas oublier non plus de déclarer le .js dans le fichier .info du thème
sans quoi tu veux dire ?
Permalien Soumis par andriana le 9 Mai, 2015 - 20:34
sans quoi tu veux dire ?
Ca marche toujours pas....
Permalien Soumis par andriana le 9 Mai, 2015 - 22:57
Ca marche toujours pas....
en fait c'est cette syntaxe que je ne comprends pas
Drupal.behaviors.mon_theme
"mon_theme" devrait être un module et pas le nom de mon thème non ? Et si c'est un module, comment savoir quel module appeler parmi toutes celles existantes ?
Je ne pense pas qu ce soit un
Permalien Soumis par vincent59 le 10 Mai, 2015 - 11:41
Je ne pense pas qu ce soit un thème, c'est juste un identifiant unique, ou plutôt un "namespace" (espace de nom).
Voir l'explication sur http://www.amazeelabs.com/en/blog/drupal-behaviors-quick-how
Merci vincent59,
Permalien Soumis par andriana le 6 Juin, 2015 - 00:26
Merci vincent59,
effectivement ça marche mieux ainsi.
Bon week à tous !
Bonjour,
Permalien Soumis par dani0175 le 12 Mai, 2015 - 10:25
Bonjour,
chez moi pour faire fonctionner du jQuery je n'ai pas utilisé les behaviors.
essaye ça :
(function($){
$(function() { //Le changement
$('#hide').click(function () {
$('.view-presentation').hide('slow');
});
};
})(jQuery);