Ho un menu animato tramite alcune funzionalità di JQuery.
Mi accorgo che "ogni tanto" il sito non funziona bene.
Controllo...
Mi accorgo che "ogni tanto" (ad esempio quando creo una nuova pagina) drupal
nell'head richiama il jquery (che sarà quella "z" in fondo??)
<script type="text/javascript" src="/prt/misc/jquery.js?z"></script>
Io, che non lo sapevo, per animare il menu avevo fatto una chiamata a jquery in fondo alla pagina del mio tema page.tpl.php in questo modo:
<script type="text/javascript" src="/prt/misc/jquery.js"></script>
Ecco quindi che quando vado a creare una nuova pagina, quando uso le funzionalità di jquery le due chiamate si danno fastidio e ottengo degli errori (form che non funzionano etc...)
Come fare ad avere sempre soltanto una chiamata?
Se tolgo la mia da page.tpl.php quando non sono in creazione nuova pagina non ho più nessun richiamo di jquery e il menu non funziona più...
Non devi includere jQuery in quel modo. Basta che inserisci i tuoi script con un comando PHP drupal_add_js() http://api.drupal.org/api/function/drupal_add_js/6
Ci penserà Drupal a fare l'include, una volta sola.
Al posto del mio
<script type="text/javascript" src="/prt/misc/jquery.js"></script>
Ho messo
<?php drupal_add_js('/prt/misc/jquery.js'); ?>
Ma non funziona :(
Che sbaglio?
Cosa ti esce nel codice?
E' questo il punto... non esce nulla!!
Neanche un spazio bianco!!
(Ho messo quel codice in tre punti diversi: nel tag Head, nel Body prima del "print $closure" e dopo, e poi anche fuori dal Body... )
Ma nell'head non c'è il richiamo a jQuery?
drupal_add_js() non funziona come pensi tu. Non inserisce il codice nel punto in cui inserisci il comando. C'è un parametro $scope che decide dove va messo il codice. Se non fosse così, mettendo il comando nei moduli il JS verrebbe sempre messo prima dei tag HTML!!
Inoltre, se ricordo bene, non è necessario che tu includa con drupal_add_js il file di jQuery: in pratica, basta richiamare il comando e Drupal pensa autonomamente a richiamare jQuery.
Accidenti... ieri nella ricerca mi era sfuggito un post...
Ho trovato la soluzione qui...
http://www.drupalitalia.org/node/2963