Como posso usar o jQuery 1.7 sem ter problemas nas páginas de administração?

11

Alguém está executando o jQuery 1.7 com sucesso? Estou usando um componente jQuery em minhas páginas que requer o jQuery 1.7 ou posterior. Essa versão causa alguns efeitos colaterais indesejados na interface do usuário do administrador, como caixas de seleção marcadas que não revelam controles adicionais quando disponíveis ou o widget de campo não está ativo.

Fiquei me perguntando se há uma solução que me permita trabalhar facilmente com o jQuery 1.7.

Eu vi essa resposta antes de perguntar. Até onde eu entendi, existem 2 problemas separados: atualizar o src do jQuery para 1.7.xe atualizar o javascript usado pelo administrador. Tentei usar o último instantâneo de desenvolvimento jquery_update e aplicar um patch , mas ele não resolve os problemas mencionados acima com a interface do usuário.

Artur
fonte
A política determina que a atualização das versões do Drupal não deve quebrar nada que dependa do jQuery, para que a versão permaneça consistente.
mpdonadio
Tecnicamente, esta questão é uma brincadeira de drupal.stackexchange.com/a/41394/809. Também sou um pouco tendenciosa, mas a outra pergunta tem uma resposta melhor.
ericduran

Respostas:

11

Gostaria de olhar para o conselho de Clive sobre como fazê-lo manualmente aqui:

Como atualizo o jQuery para a versão mais recente que posso baixar?

e adicione um pouco mais de inteligência ao script para não fazê-lo nas páginas de administração, por exemplo:

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

Você também teria que fazer isso nas páginas node/#/adde node/#/editetc, para não interromper nada "essencial" lá, ou, se quiser, mergulhar no núcleo drupal e elevar todo o resto até 1,7.

Dependendo da versão do Drupal que você está executando, isso também pode funcionar:

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);
  }
}

onde você pode definir "SUA CONDIÇÃO AQUI" como as páginas em que você deseja que o novo jquery, por exemplo, arg(0)!='admin'etc.

Jimajamma
fonte
Obrigado Jimajamma, eu não usei seu código, mas sua resposta me colocou no caminho certo. Encontrei um bom patch que adiciona a interface do usuário à tela de configuração do jquery_update, que permite usar diferentes versões do jQuery for admin. drupal.org/node/1524944 . Trabalhando bem até agora.
Artur
2
Lembre-se de que o ctools também teve um histórico de falhas com as atualizações do jquery. Pode ser necessário ajustar o patch para dar conta disso.
mpdonadio
Obrigado por apontar isso. Você tem uma idéia de qual seria a melhor maneira de testar isso?
Artur
3
Uma maneira simples e agradável de obter uma lista de todas as páginas de administrador que não têm 'admin' no URL é:$pages = module_invoke_all('admin_paths');
Clive
1
@Clive, isso captura ctools URLs AJAX? Como quando você usa um widget ctools em uma página "normal"?
mpdonadio
2

O jQuery Update agora tem a capacidade de ativar diferentes versões do jQuery para o front-end e o back-end. Baixe a versão mais recente do desenvolvedor e pronto: 1.5 no back-end, para que ele funcione com a UI do Views e 1.7 ou 1.8 no front-end, para obter mais vantagens do jQuery.

Renee
fonte