Como atualizar Prototype + Scriptaculous no WordPress
por Vinicius Braga, domingo, 10 de fevereiro de 2008 às 10:26
Segue como atualizei a dobradinha Prototype + Scriptaculous no WordPress da série 2.0
ATENÇÃO: Este procedimento não é para novatos, mas para pessoas com algum entendimento do WordPress. Não vou me responsabilizar caso você venha esculhambar o seu WordPress. Siga por sua própria conta e risco.
Atualmente, o WordPress vem com as versões do Scriptaculous 1.7.1-b3 e do Prototype 1.5.1.1, contudo as versões destes códigos já estão no 1.8.1 para o Scriptaculous e 1.6.0.2 para o Prototype .
Antes de tudo, você deve baixar as últimas versão dos códigos nos seus respectivos sites.
Detalhe: o Scriptaculous vem com uma versão do Prototype, nem sempre a mais atual. Eu uso sempre a mais atual, com isto, eu corro o risco de sofrer com bugs não documentados na versão do Scriptaculous. Então, você poder usar a versão do Prototype que acompanha o Scriptaculous, mas o importante é saber qual é esta versão para atualizar nos códigos do WordPress, como veremos.

Para começar, iremos trabalhar dentro da pasta wp-includes/js/, fazendo uma cópia de segurança do arquivo prototype.js existente, e da pasta scriptaculous. Eu renomeei a minha para scriptaculous.old.bkp” e o arquivo para *prototype.js.bkp
Depois disto, atualizei todos os arquivos listados na pasta scriptaculous, com os arquivos mais atuais do Scriptaculous baixados do site.
De todos os arquivos desta pasta, somente o wp-scriptaculous.js é original do WordPress e iremos modificá-lo agora. Abra este arquivo, e atualize as versões indicadas dentro deste arquivo nas linhas de código:
var Scriptaculous = {
Version: '1.8.1',
[...]
REQUIRED_PROTOTYPE: '1.6.0.2',
[...] A pasta scriptaculous está atualizada. Agora iremos copiar o mais novo código do Prototype para a pasta wp-includes/js/, nomeando o arquivo como prototype.js.
Até este ponto, você atualizou o Prototype que está dentro do wp-includes/js/ e os arquivos do Scriptaculous dentro da pasta scriptaculous. Estamos quase terminando agora, falta apenas um arquivo para ser modificado no WordPress.
O próximo e último arquivo é o wp-includes/script-loader.php . Ele é responsável por carregar os Javascripts necessários do WordPress. Elé é um pouco confuso caso você não esteja acostumado, por isso, tenha bastante atenção no que está fazendo. A operação será simples, ela consiste em modificar apenas o número das versões, como fizemos no arquivo anterior.
Abra no arquivo, e procure pela linha a ser modificada:
$this->add( 'prototype', '/wp-includes/js/prototype.js', false, '1.5.1.1');
e modifique para a versão do seu Prototype. No meu caso a 1.6.0.2:
$this->add( 'prototype', '/wp-includes/js/prototype.js', false, '1.6.0.2');
Ainda neste documento, procure pelas seguintes linhas abaixo, correspondentes ao Scriptaculous:
$this->add( 'scriptaculous-root', '/wp-includes/js/scriptaculous/scriptaculous.js', array('prototype'), '1.7.1-b3');
$this->add( 'scriptaculous-builder', '/wp-includes/js/scriptaculous/builder.js', array('scriptaculous-root'), '1.7.1-b3');
$this->add( 'scriptaculous-dragdrop', '/wp-includes/js/scriptaculous/dragdrop.js', array('scriptaculous-builder', 'scriptaculous-effects'), '1.7.1-b3');
$this->add( 'scriptaculous-effects', '/wp-includes/js/scriptaculous/effects.js', array('scriptaculous-root'), '1.7.1-b3');
$this->add( 'scriptaculous-slider', '/wp-includes/js/scriptaculous/slider.js', array('scriptaculous-effects'), '1.7.1-b3');
$this->add( 'scriptaculous-sound', '/wp-includes/js/scriptaculous/sound.js', array( 'scriptaculous-root' ), '1.7.1-b3' );
$this->add( 'scriptaculous-controls', '/wp-includes/js/scriptaculous/controls.js', array('scriptaculous-root'), '1.7.1-b3');
$this->add( 'scriptaculous', '', array('scriptaculous-dragdrop', 'scriptaculous-slider', 'scriptaculous-controls'), '1.7.1-b3');
e modifique a versão do Scriptaculous. No meu caso a 1.8.1:
$this->add( 'scriptaculous-root', '/wp-includes/js/scriptaculous/scriptaculous.js', array('prototype'), '1.8.1');
$this->add( 'scriptaculous-builder', '/wp-includes/js/scriptaculous/builder.js', array('scriptaculous-root'), '1.8.1');
$this->add( 'scriptaculous-dragdrop', '/wp-includes/js/scriptaculous/dragdrop.js', array('scriptaculous-builder', 'scriptaculous-effects'), '1.8.1');
$this->add( 'scriptaculous-effects', '/wp-includes/js/scriptaculous/effects.js', array('scriptaculous-root'), '1.8.1');
$this->add( 'scriptaculous-slider', '/wp-includes/js/scriptaculous/slider.js', array('scriptaculous-effects'), '1.8.1');
$this->add( 'scriptaculous-sound', '/wp-includes/js/scriptaculous/sound.js', array( 'scriptaculous-root' ), '1.8.1' );
$this->add( 'scriptaculous-controls', '/wp-includes/js/scriptaculous/controls.js', array('scriptaculous-root'), '1.8.1');
$this->add( 'scriptaculous', '', array('scriptaculous-dragdrop', 'scriptaculous-slider', 'scriptaculous-controls'), '1.8.1');
Após fazer a atualização das versões, basta salvar o arquivo, e o WordPress já carregará as novas versões.
Bom, pode até ser que tenha um Plug-In para WordPress atualizando as versões do Prototype + Scriptaculous, mas não encontrei e ficaria grato se alguém soubesse. Este tipo de atualização tem seus próprios problemas. Você terá que modificar estes arquivos novamente caso atualize o código do WordPress por inteiro. Então, isso não é muito prático, contudo este artigo serve para esclarecer como modificar por conta própria esses códigos.
Até a próxima.