Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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;
}
}
?>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
Hmm, tente este:
http://bakery.cakephp.org/articles/view/ckeditor-3-x-new-fckeditor-version
Esse que você esta tentando está com um código um tanto obsoleto :P
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">](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"></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
Mas você linkou o helper ao controller?
var $helpers = array('Fkc');
E cheque se
webroot/js/ckeditor.js existe.
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
Já segui esses links rs
Mas nada Renan Lima
Robin Thomas
Mas nenhum funciona!