Js in locale, js in remoto: differenze

4 contenuti / 0 new
Ultimo contenuto
Js in locale, js in remoto: differenze

Non so se è la sezione giusta per postare questa mia discussione, spero di sì. In caso fosse sbagliata chiedo venia ai moderatori del sito. ;)
Come al solito vengo a postare problemi che in parte ho già risolto ma di cui non capisco bene il perché succedano.
In questo caso si tratta di un problema legato ai js.
Ho aggiunto al mio tema un js che permette di ridimensionare il testo degli articoli. Il js oltre a ridimensionare il testo crea un cookie in modo che cambiando pagina e/o aggiornando la pagina su cui ci si trova mantenga la dimensione settata dall'utente invece di tornare a quella di default.
In locale tutto funziona perfettamente, ma trasportandolo (senza toccare nulla rispetto a come l'ho messo in locale) in remoto (hosting aruba linux) ha dei problemi.
In pratica il js funziona e ridimensiona il testo solo che cambiando e/o aggiornando pagina si "dimentica" e ritorna alle dimensioni di default del sito.
Ho scoperto che questo dipende dalle chiamate js di drupal. Cioé, in pratica, nelle pagine normali del sito non vengono richiamati altri js al di fuori del mio (che si chiama DevilFont.js)e quando si cambia/aggiorna la pagina le dimensioni ritornano alle dimensioni di default, quando invece sono in una pagina di "crea contenuto" (qualunque sia il tipo di contenuto) e drupal richiama anche i suoi js tutto funziona correttamente e il testo rimane della dimensione settata tramite DevilFont.js non tornando alle dimensioni originali del css del sito.
Ho provato ad aggiungere i vari js che vengono richiamati in crea contenuto alla page.tpl.php in modo da farglieli richiamare in tutte le pagine e non solo in quelle dove si scrivono i contenuti e infatti, facendo così, anche nelle pagine normali DevilFont.js torna a funzionare correttamente ricordandosi le dimensioni settate dal js invece di tornare alle dimensioni di default.
Ora, però, mi chiedo: come mai in locale tutto mi funziona correttamente mentre in remoto devo fare così?
Da cosa può dipendere?
In più, facendo così quando poi vado nelle pagine di crea contenuto i js di drupal vengono richiamati due volte e questo "no buono". ;)
Per risolvere le doppie chiamate il modo migliore è semplicemente aggiungere un if?
Aggiungo anche, in caso possa essere utile, che DevilFont.js si trova in una cartella situata dentro il mio tema (DevilHouseLite) chiamata js.
Comunque la struttura del sito e del tema è assolutamente identica fra le due versioni (quella in locale e quella in remoto) per cui mi chiedo: come mai il comportamento è diverso?
Grazie. :)

Aggiungi il JS direttamente nel tema (nel page.tpl.php) in modo che venga caricato SEMPRE una volta sola.

Quote:
Non so se è la sezione giusta per postare questa mia discussione, spero di sì. In caso fosse sbagliata chiedo venia ai moderatori del sito.

Se ci eviti il lavoro di spostamento è meglio, meno tempo per l'admin e più per poter rispondere alle domande :)

Ciao
Marco
--
My blog
Working at @agavee

Prima di tutto grazie per la risposta e scusa per il ritardo della mia. :)

Quindi, se ho capito bene, mi consigli di far caricare sempre i js levando la chiamata a $script (in modo da non farli chiamare due volte)?
In effetti era una soluzione a cui avevo pensato anch'io, ma nel frattempo ho capito qual'era la differenza fra il sito in locale e quello in remoto: alinks.
In locale quando ho implementato la possibilità di personalizzare la dimensione del testo tramite js alinks era già installato, mentre in remoto non lo avevo ancora installato.
In pratica le chiamate che servono al mio js le fa alinks e per questo in locale mi funzionava e in remoto no (anzi, meglio... in locale mi ricordava la dimensione precedentemente settata mentre in locale si resettava a ogni cambio/aggiornamento pagina).
Per cui, scoperto questo (avendo installato alinks anche in remoto e avendo appurato che ora funziona tutto a dovere), personalmente me ne potrei anche sbattere... ma dato che avevo intenzione di rilasciare una versione del tema (quando e se lo finirò mai), penso che dovrò dare un'occhiata ad alinks (e ai moduli in generale) per capire come funzionano e come fanno a chiamare i js una volta sola (anche quando più moduli fanno la stessa chiamata).
Una volta capito questo vedrò il da farsi.
Forse la cosa migliore è far diventare il ridimensionamento testo un modulo vero e proprio che faccia le sue dovute chiamate indipendentemente da alinks o meno. Però in questo modo non sarebbe implementato già nel tema ma bisognerebbe installare il modulo a parte e questo non mi va molto (vorrei che fosse presente e funzionante nel tema indipendemente dai moduli installati).
Comunque mi devo studiare un po' quali sono le basi con cui si costruisce un modulo drupal, ma penso che per un modulo così semplice dovrei anche farcela (in più sarebbe un buon esercizio per iniziare a capire come si costruiscono i moduli per drupal).
Al momento sono ancora in fase di costruzione del tema (e ancora solo con firefox), per cui me ne preoccuperò un po' più avanti. ;)

P.s. Cerco sempre di postare nel forum giusto, solo che ammetto che a volte mi trovo un po' spiazzato. Ovviamente è un mio parere ma trovo che le sezioni del forum siano poco definite e un po' poche in senso assoluto e a volte mi trovo a non sapere dove postare (e mi faccio traviare da post di altre persone che hanno postato nella sezione sbagliata e però non sono ancora state spostate).
Sarà un mio limite dovuto al fatto che sono abituato a forum divisi in modo più netto (la sezione js, la sezione moduli, la sezione css e così via).
Cercherò di migliorare. :)

Quote:
P.s. Cerco sempre di postare nel forum giusto, solo che ammetto che a volte mi trovo un po' spiazzato. Ovviamente è un mio parere ma trovo che le sezioni del forum siano poco definite e un po' poche in senso assoluto e a volte mi trovo a non sapere dove postare (e mi faccio traviare da postg di altre persone che hanno postato nella sezione sbagliata e però non sono ancora state spostate).
Sarà un mio limite dovuto al fatto che sono abituato a forum divisi in modo più netto (la sezione js, la sezione moduli, la sezione css e così via).

Apertissimi a nuove proposte per rendere il tutto più fruibile (ovviamente postale nella sezione corretta :) )

Ciao
Marco
--
My blog
Working at @agavee