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:
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