segunda-feira, 10 de novembro de 2008

FCK Editor

UTILIDADE:

FCKeditor é um editor de texto HTML rico em ferramentas de formatação. Suas ferramentas são equivalentes às do MS Office. Uma demonstração pode ser vista neste link.

INSTALAÇÃO:
Baixe o pacote .tar.gz ou o .zip e coloque na raiz do seu projeto.
<?php
//Inclue as funções necessárias
include "fckeditor/fckeditor.php";
//Defina normalmente o formulário. Neste exemplo é enviado por AJAX
?>
<form onsubmit="cadastroexterno('','form','recebe.php','resposta');
return false;" method="post" id="form" name="form">
<?php
//Cria um nova instância do FCKeditor
$oFCKeditor = new FCKeditor('idDoTextarea') ;
//Informar o endereço da pasta do FCKeditor
$oFCKeditor->BasePath = "../fckeditor/";
//Caso seja necessário, criar um arquivo de configurações
//personalizadas e infomar sua localização aqui
$oFCKeditor->Config['CustomConfigurationsPath'] = '../myconfig.js';
//Informa o nome das configurações da barra de ferramentas
$oFCKeditor->ToolbarSet = "Basic2";
//Define o tamanho vertical do editor
$oFCKeditor->Height = 300;
//Define o tamanho horizontal do editor
$oFCKeditor->Height = 400;
//Define o texto inicial do editor
$oFCKeditor->Value = 'Texto inicial.';
//Cria o editor
$oFCKeditor->Create() ;
?>


O arquivo de configurações personalizadas possue as configurações da
barra de botões. Exemplo:


FCKConfig.AutoDetectLanguage = false;
FCKConfig.DefaultLanguage = "pt-br";
FCKConfig.ToolbarSets["Basic2"] = [
['Bold','Italic','Underline','-',
'StrikeThrough','Subscript','Superscript',
'JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
['Link','Unlink','Anchor'],
['Image','Table'],
['Undo','Redo','PasteWord'],
'/',
['FontFormat','FontName','FontSize','TextColor'],
] ;

Nesse arquivo é definido a linguagem da descrição dos botões e
a definição dos botões que aparecerão na barra.
Os botões podem ser:

['item1',...,'itemN'] define um grupo de botões
'-' mostra um pipe ('|')
'/' define uma quebra de linha
Todos os botões possíveis podem ser definidos assim :

FCKConfig.ToolbarSets["Default"] = [
['Source','DocProps','-','Save','NewPage','Preview','-','Templates'],
['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],
['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
['Form','Checkbox','Radio','TextField','Textarea','Select',
'Button','ImageButton','HiddenField'],
'/',
['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
['OrderedList','UnorderedList','-','Outdent','Indent','Blockquote'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
['Link','Unlink','Anchor'],
['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],
'/',
['Style','FontFormat','FontName','FontSize'],
['TextColor','BGColor'],
['FitWindow','ShowBlocks','-','About'] // No comma for the last row.
] ;



Antes de enviar o formulário por AJAX, é necessário atualizar os dados
?><input type="submit" value="Submit"
onclick="FCKeditorAPI.Instances.idDoTextarea.UpdateLinkedField();" />
</form>
</pre>

5 comentários:

  1. Estou com um probleminha.. quando envio os dados, para pagina que ira efetuar o cadastro, por ajax. os caracteres são trocados. E como caracters especiais tem um ; no final dá dando zica no php como faço para resolver?

    ResponderExcluir
  2. ah entendi...
    cara o que ocorre é que o FCKEditor faz um htmlentites...

    tu vai ter que usar um html_entity_decode na variável que recebe o texto...

    o legal é deixar assim mesmo, pois se seu texto for exibido numa pagina HTML não há problema, é até melhor...
    mas se for gerar um documento .PDF, .CSV, .DOC etc., tu pode fazer o hmtl_entity_decode() antes de gerar o documento.

    Espero ter ajudado! Qualquer coisa estamos aí! Valeu o comentário!
    Add no Friend Connect aih...
    Vlw!

    ResponderExcluir
  3. Bom dia eu estou com o mesmo problema que o Matt eu crio as minha pagina no fck mais quando eu crio um pagina em php ele nao mostra como php vc poderia me ajudar. ja quando eu crio em html ela fica normal

    ResponderExcluir
  4. claro velho!
    me segue no twitter ( www.twitter.com/maiquelleonel )
    que é mais fácil... ou me manda um email que eu te mando meu M$N

    ResponderExcluir