Come posso usare jQuery 1.7 senza problemi nelle pagine di amministrazione?


11

Qualcuno sta eseguendo correttamente jQuery 1.7? Sto usando un componente jQuery sulle mie pagine che richiede jQuery 1.7 o successivo. Questa versione provoca alcuni effetti collaterali indesiderati nell'interfaccia utente dell'amministratore, come caselle di controllo selezionate che non rivelano controlli aggiuntivi quando disponibili o widget di campo non attivi.

Mi chiedevo se esistesse una soluzione che potesse permettermi di lavorare facilmente con jQuery 1.7.

Ho visto questa risposta prima di chiedere. Per quanto ho capito, ci sono 2 problemi separati: l'aggiornamento di src di jQuery a 1.7.xe l'aggiornamento di javascript utilizzato dall'amministratore. Ho provato a utilizzare l'ultima istantanea di sviluppo jquery_update e ad applicare una patch , ma non risolve i problemi di cui sopra con l'interfaccia utente.


La politica impone praticamente che l'aggiornamento delle versioni di Drupal non debba interrompere nulla che si basi su jQuery, quindi la versione rimane coerente.
mpdonadio

Tecnicamente questo problema è una copia di drupal.stackexchange.com/a/41394/809 Inoltre sono un po ' incline all'altra, ma l'altra domanda ha una risposta migliore.
ericduran,

Risposte:


11

Vorrei dare un'occhiata ai consigli di Clive su come farlo manualmente qui:

Come faccio ad aggiornare jQuery all'ultima versione che posso scaricare?

e aggiungi un po 'più di intelligenza nello script per non farlo nelle pagine di amministrazione, ad esempio:

if (arg(0)=='admin') {
  return;
}

Dovresti anche farlo su node/#/adde node/#/editpagine ecc. In modo da non interrompere nulla di "core" lì, o, se vuoi, tuffarti nel core di drupal e portare tutto il resto fino a 1,7.

A seconda della versione di Drupal in esecuzione, potrebbe funzionare anche:

function YOURTHEME_preprocess_page(&$vars) {
  if (YOUR CONDITION HERE) {
    $scripts = drupal_add_js('PATH TO YOUR JQUERY FILE');
    unset($scripts['core']['PATH TO DRUPAL JQUERY FILE']);
    $variables['scripts'] = drupal_get_js('header', $scripts);
  }
}

dove puoi impostare "LA TUA CONDIZIONE QUI" in modo che siano le pagine su cui vuoi che il nuovo jquery, ad esempio, arg(0)!='admin'ecc.


Grazie Jimajamma, non ho usato il tuo codice, ma la tua risposta mi ha messo sulla buona strada. Ho trovato una bella patch che aggiunge l'interfaccia utente alla schermata di configurazione di jquery_update, che consente di utilizzare diverse versioni di jQuery per l'amministratore. drupal.org/node/1524944 . Finora funziona bene.
Artur,

2
Tieni presente che anche ctools ha avuto una storia di rottura, con aggiornamenti jquery. Potrebbe essere necessario regolare la patch per tenere conto di ciò.
mpdonadio

Grazie per averlo segnalato. Hai idea di quale sarebbe il modo migliore per metterti alla prova?
Artur,

3
+1 Un bel modo semplice per ottenere un elenco di tutte le pagine di amministrazione che non hanno "admin" nell'URL è:$pages = module_invoke_all('admin_paths');
Clive

1
@Clive, questo cattura ctools URL AJAX? Come quando usi un widget ctools su una pagina "normale"?
mpdonadio

2

jQuery Update ora ha la possibilità di abilitare diverse versioni di jQuery per il front-end e il back-end. Scarica l'ultima versione di sviluppo e sei a posto: 1.5 nel back-end, quindi funziona con l'interfaccia utente di Views e 1.7 o 1.8 nel front-end, per ulteriore bontà di jQuery.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.