Nem tudo é Rails no mundo dos CRUDS. O CakePHP é um framework de desenvolvimento ágil assim como o Ruby Rails.
Segue abaixo os passos para usar Helpers Ajax com efeitos da biblioteca Scriptaculous. Se você não conhece o CakePHP viste
http://vinicius.biz/cakephp/introducao.php para obter mais informações.
Tendo o CakePHP funcionando devidamente é necessário instalar a lib Scriptaculous (
http://script.aculo.us/) . Para isso, basta descompactar os arquivos na pasta /app/webroot/js .
O primeiro passo é tornar disponível a biblioteca scriptaculous e prototype. Para isso inclua o código abaixo antes da tag no layout (/app/views/layout/default.thtml) .
< ?php if(isset($javascript)):
echo $javascript->link('prototype.js');
echo $javascript->link('scriptaculous.js?load=effects');
endif;
?>
Na classe Controle é preciso adicionar o helper 'Ajax' no array de helpers.
< ?php
class LoginController extends AppController { var $name = 'Login';
var $helpers = array('Form', 'Html', 'Javascript', 'Time', 'Ajax');
function index() {
$this->render('index');
}
function view($id) {
// use ajax layout
$this->render('index', 'ajax');
}//view()
}?>
Na classe View criamos um link Ajax que irá chamar o conteúdo de uma
especifica. No caso abaixo o link Ajax, com o nome de “Ajuda”, vai chamar a url “ /things/view” ( renderiza ela mesma) e vai aplicar os efeitos Appear e Fade em dois campos (divs) com um conteúdo qualquer identtificado por “divExemplo1” e “divExemplo2” .
< div id="help1">
< ?php echo ' | ';
// use an effect
echo $ajax->link('Ajuda', '/things/view/1',
array('loading' => 'Effect.Appear(\'divExemplo1\'), Effect.Fade(\'divExemplo2\')',FALSE)
); ?>
/div>
< ?php echo $ajax->div('divExemplo1'); ?>
< h2>/*Um conteúdo qualquer:links, imagens, xml, etc */ < /h2>
<?php echo $ajax->divEnd('divExemplo1'); ?>
Outros métodos que produzem diferentes efeitos pela Scriptaculous podem ser vistos em :
http://wiki.github.com/madrobby/scriptaculous