Estou usando o Drupal 7, que usa o jQuery 1.4 como padrão? Como posso atualizá-lo para a versão mais recente (atualmente 1.7)?
Estou usando o Drupal 7, que usa o jQuery 1.4 como padrão? Como posso atualizá-lo para a versão mais recente (atualmente 1.7)?
Respostas:
Uma maneira é instalar a versão dev do jQuery Update , que oferece a opção de usar o jQuery 1.7 (visitando a página de configurações em http://mysite.com/admin/config/development/jquery_update ).
Cuidado, no entanto, atualmente é conhecido por quebrar o JavaScript em outro local do site (por exemplo, o menu suspenso do widget em uma página Gerenciar campos não funcionará mais). Se você está preparado para consertar isso e outros pequenos aborrecimentos, essa provavelmente é sua melhor aposta. Você também deve observar que o uso da versão dev de um módulo não apresenta riscos, pois as chances de haver bugs são muito maiores do que o uso de uma versão específica.
Se você quiser fazer isso manualmente, terá um monte de código javascript principal para reescrever para que seu site funcione conforme o esperado; O jQuery mudou muito entre as versões 1.4 / 1.5 e 1.7, portanto, grande parte do código javascript do Drupal simplesmente não funciona com ele.
Se você quiser apenas inserir uma versão do jQuery 1.7, provavelmente poderá implementar hook_js_alter()
, desarmar o arquivo principal do jQuery e adicionar o seu no seu lugar:
function MYMODULE_js_alter(&$js) {
$path = drupal_get_path('module', 'MYMODULE') . '/path/to/jquery.1.7.js';
// Copy the current jQuery file settings and change
$js[$path] = $js['misc/jquery.js'];
// Update necessary settings
$js[$path]['version'] = 1.7;
$js[$path]['data'] = $path;
// Finally remove the original jQuery
unset($js['misc/jquery.js']);
}
Depois de fazer isso, abra as Ferramentas do desenvolvedor / Firebug e você verá todas as alterações necessárias para fazer com que o restante do site JS funcione :)
ATUALIZAR
A versão mais recente da atualização do jQuery ( 7.x-2.3 no momento da redação) permitirá agora que você atualize o jQuery para a v1.8. Muito legal.
O módulo jQuery Multi é outra opção, graças ao goron por apontar isso nos comentários. Como ele também observa, este módulo possui uma versão estável e não quebra nenhum javascript existente.
Inspirado na documentação do hook_js_alter , o seguinte funciona. Você pode colocá-lo no template.php do seu tema. Isso requer que você use um tema de administração diferente para evitar conflitos com o núcleo do Drupal e pressupõe que o jquery-1.8.3.min.js esteja localizado em uma pasta chamada 'js' dentro do tema (ajuste de acordo com a necessidade).
function [theme_machine_name]_js_alter(&$javascript) {
$javascript['misc/jquery.js']['data'] = drupal_get_path('theme', '[theme_machine_name]') .
'/js/jquery-1.8.3.min.js';
$javascript['misc/jquery.js']['version'] = '1.8.3';
}
Não sei ao certo qual é o seu objetivo, mas quando precisei de uma versão específica para o desenvolvimento de módulos personalizados, consegui fazer isso usando jQuery.noConflict .
É um trabalho extra comparado ao módulo jquery_update (que o OP não parece se importar), mas significa que você não precisa se preocupar se vai estragar toda a instalação do drupal.