segunda-feira, 23 de maio de 2011

Ckeditor no zend framework, php, fckeditor

Olá!
Hoje vou explicar de forma simples como se usa o CKeditor no zend framework.

Para quem não sabe o CKeditor (antigo FCKeditor) é uma classe para editor de texto escrita em diversas linguagens.


Antes de mais nada baixe a classe ai no proprio site deles: http://ckeditor.com/download




Depois de baixar, descompacte e insira ela na sua pasta public...

no meu caso coloquei assim: nomedoprojeto\public_html\js\ckeditor
ou seja, dentro da public, e dentro da js eu inseri a pasta toda do ckeditor.


Precisamos antes de mais nada ir na view que vamos utilizar a classe e inserir o js, a minha view é a de noticias então adicionei na views/scripts/noticias/index.phtml

Eu chamo o js dessa forma:

< ? php

  //chamando ckeditor o js
  $this->headScript()->appendFile($this->baseUrl().'/js/ckeditor/ckeditor.js');
?  >

Percebam que pego o baseUrl + o diretório após o public...

Agora vamos criar um Helper para o CKeditor, vc não sabe o que são os helpers do ZEND?
Resumidamente o Helper é uma classe auxiliar para a view, imagina um caso na qual você precisa executar funções complexas na view como o de organizar a data, vc não faria isso na view certo? E se precisa utilizar 'n' vezes? E logicamente não faria no controller pq é ação expecifica para visão, sendo assim usamos os Helpers, q são classes que chamamos sem precisar carregar na view, basta criar uma pasta 'helpers' dentro da pasta views ao lado da scripts =]

Quer uma explicação mais detalhada? Documentação do ZEND


Então vamos la, criando esse diretório: /view/helpers vamos criar uma página php dentro dela chamada  SetupEditor.php (de o nome que vc quiser)

Dentro desse helper criado vamos adicionar:


class Zend_View_Helper_SetupEditor {

    f u n c t i o n setupEditor( $ textareaId ) {
        return "< script type=\"text/javascript\">
    CKEDITOR .replace ( '" . $textareaId . "' );
        < / script >";
    }
}
 
 
O que estamos fazendo é simples, apenas criando uma
 função que recebe o id do text area e retornamos 
ele com o script do ckeditor, isso poderia ser feito
 na view mas e se você precisa fazer várias vezes, 
não é melhor criar um helper?
 
 
 
Agora vamos voltar a nossa view e adicionar um text 
area: 
 
< textarea name="not_texto" id="not_texto"< 
/ textarea> 


depois de adicionar o textarea vamos apenas utilizar o 
helper com o mesmo nome do textarea assim:

 echo $this->setupEditor( 'not_texto' ); ?>

E PRONTO, vejam que não usei o zend form então no 
controller
eu receberia o dado pelo getParam mais o menos assim:

$request = $this->getRequest();
$noticia = $request->getParam('not_texto');

simples não é?!

Fala sério esse Helper é uma mão na RODAAAA xD
Vejam que não utilizamos a classe php do CKeditor 
mas sim a de JS.
Acho que é mais simples, uma vez q isso é FRONTEND.

Espero ter ajudado.


Baseado no tutorial do site norte americano Harikt

@pv_fusion

 
 

Nenhum comentário:

Postar um comentário