Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

zenfra

[Resolvido] cakePHP e FCKEditor

Recommended Posts

Boa noite..

 

Alguém já utilizou o cakePHP com o FCKEditor ... ? Estou tentando implementar ele, mas fica dando erro!

 

Coloquei na minha view o código conforme exemplo de integração abaixo:

 

<?php print $javascript->link('fckeditor'); ?>

 <div class="required">
  <?php echo $form->labelTag( 'Comment/body', 'Body' );?>
  <?php echo $html->textarea('Comment/body', array('cols' => '60', 'rows' => '10'));?>
  <?php echo $fck->load('Comment/body'); ?>
  <?php echo $html->tagErrorMsg('Comment/body', 'Please enter the Body.');?>
 </div>

 

Criei o arquivo helper e salvei em app/views/helpers também conforme manda o exemplo de integração:

 

<?php 
class FckHelper extends Helper
{
	function load($id, $toolbar = 'Default') {
		foreach (explode('/', $id) as $v) {
	 		$did .= ucfirst($v);
		}

		return <<<FCK_CODE
<script type="text/javascript">
fckLoader_$did = function () {
	var bFCKeditor_$did = new FCKeditor('$did');
	bFCKeditor_$did.BasePath = 'js/';
	bFCKeditor_$did.ToolbarSet = '$toolbar';
	bFCKeditor_$did.ReplaceTextarea();
}
fckLoader_$did();
</script>
FCK_CODE;
	}
}
?>

Atualize o arquivo .htaccess adicionando as linha solicitadas:

 

AddType application/x-javascript .js
AddType text/css .cs

Que ficou assim depois da atualização:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
	AddType application/x-javascript .js
AddType text/css .css
</IfModule>

 

Atualizei o arquivo config.php existente no caminho app/webroot/js/editor/filemaneger/connectors/php alterando as linhas abaixo conforme pedido:

 

$Config['Enabled'] = true;
$Config['UserFilesPath'] = '/app/webroot/files/';

Mas quando acesso a pagina que deveria exibir o editor, ele exibi os seguintes erros

 

 

Warning (512): Método FormHelper::labelTag não existe [CORE\cake\libs\view\helper.php, line 143]

Warning (512): Método HtmlHelper::textarea não existe [CORE\cake\libs\view\helper.php, line 143]

Notice (8): Undefined variable: did [APP\views\helpers\fck.php, line 6]

Warning (512): Método HtmlHelper::tagErrorMsg não existe [CORE\cake\libs\view\helper.php, line 143]

...

E um alert:

 

Error: The TEXTAREA with id or name set to CommentBody was not found

 

Alguém já configurou isso?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara

 

tentei esse e não funciona.. não acontece nada rs

 

Peguei o código abaixo e coloquei na pasta views/helpers com o nome fck.php

 

<?php 
class FckHelper extends Helper { 

    var $helpers = Array('Html', 'Javascript'); 

    function load($id) { 
        $did = ''; 
        foreach (explode('.', $id) as $v) { 
            $did .= ucfirst($v); 
        }  

        $code = "CKEDITOR.replace( '".$did."' );"; 
        return $this->Javascript->codeBlock($code);  
    } 
} 
?>

 

E adicionei esse código na view do controller que eu quero que aparece o editor:

 

<?php 
    echo $javascript->link('ckeditor/ckeditor', NULL, false); 

    echo $form->create('Usuariotipos', array('action' => 'add'));  
    echo $form->input('ds_descricao', array('cols' => '60', 'rows' => '3')); 
    echo $fck->load('Usuariotipos.ds_descricao'); 
    echo $form->input('id', array('type'=>'hidden'));  
    echo $form->end('Save Post'); 
?>

MAs nada acontece.. rs Só aparece o textarea

 

Eu acho que ele não esta carregando o js direito.. o html gerado é o que se encontra abaixo:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
 <head><title>opa</title> 
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
	<link rel="stylesheet" type="text/css" href="/cakestudo/css/estrutura.css" /> 
	<link rel="stylesheet" type="text/css" href="/cakestudo/css/formulario.css" /> 
 <script type="text/javascript" src="/cakestudo/js/ckeditor.js"></script> </head> 
 <body> 
   
    <div id="DivGeral"> 
	  <div id="DivTopo"> 
	   <div id="DivTopoTopo"> 
	     <ul> 
		   <li>[ Modo 800 x 600 ]</li> 
		   <li>[ Aumentar fonte A+ | A- ]</li> 
		   <li>[ Efetuar logon ] </li> 
		 </ul> 
	   </div> 
	   <div id="DivTopoCentro"> 
	    <div id="DivTopoCentroTopo"> 
		   São Paulo, 20 de Novembro de 2009		</div> 
	      <img src="/cakestudo/img/logo.jpg" alt="Franze Sobre Tecnolofia" />	   </div> 
	   <div id="DivTopoBase"></div> 
	  </div> 
	  <div id="DivCentro"> 
	    <div id="DivCentroTopo"> 
		    <p>Você esta em </p> 
		</div> 
		<div id="DivCentroEsquerda"></div> 
		<div id="DivCentroDireita"> 
		     <form id="UsuariotipoAddForm" method="post" action="/cakestudo/usuariotipos/add"><fieldset style="display:none;"><input type="hidden" name="_method" value="POST" /></fieldset><div class="input text"><label for="UsuariotipoDsDescricao">Ds Descricao</label><textarea name="data[Usuariotipo][ds_descricao]" cols="60" rows="3" maxlength="100" id="UsuariotipoDsDescricao" ></textarea></div><script type="text/javascript"> 
//<![CDATA[
CKEDITOR.replace( 'UsuariotipoDsDescricao' );
//]]>
</script><input type="hidden" name="data[Usuariotipo][id]" value="" id="UsuariotipoId" /><div class="submit"><input type="submit" value="Save Post" /></div></form> 
 
		</div> 
	  </div> 
	  <div id="DivFooter"> 
	  </div> 
	</div> 
   
   </div> 
         </div><!-- É aqui que eu quero que minhas views apareçam --> 
 
   <!-- Adicione um rodapé para cada página mostrada --> 
   <div id="footer">...</div> 
   </body> 
 </html><!-- 1.7952s --><table class="cake-sql-log" id="cakeSqlLog_12593660564b1066a8c2ddb6_33563546" summary="Cake SQL Log" cellspacing="0" border = "0"> 
<caption>(default) 1 query took 3 ms</caption> 
<thead> 
<tr><th>Nr</th><th>Query</th><th>Error</th><th>Affected</th><th>Num. rows</th><th>Took (ms)</th></tr> 
</thead> 
<tbody> 
<tr><td>1</td><td>DESCRIBE `usuariotipos`</td><td></td><td style = "text-align: right">9</td><td style = "text-align: right">9</td><td style = "text-align: right">3</td></tr> 
</tbody></table>

 

Se eu clico no link para ver o js

<script type="text/javascript" src="/cakestudo/js/ckeditor.js"></script>

Ele pede para criar um controller

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom pessoal,

 

A ultima dica do lucas deu certo rs

 

Eu é que estava esquecendo de passar o caminho direito na chamada do link para o javascript na view.

 

Anteriormente estava chamando assim:

echo $javascript->link('ckeditor', NULL , false); 
Sendo o correto assim para o nível de pasta onde se encontra o arquivo ckeditor.js

 

echo $javascript->link('ckeditor/ckeditor', NULL , false); 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.