sfNicEditPlugin: Adicione um editor de texto rico aos seus forms no Symfony

Em meados de 2009 usei o framework Symfony para desenvolver um sistema em PHP para um projeto do qual eu era bolsista. Terminado o projeto, abandonei o framework. Agora reiniciei meus estudos e estou gostando bastante. Tanto que já desenvolvi meu primeiro plugin para compartilhar com a comunidade e já tenho muitos outros em mente.

O nome do plugin é sfNicEditPlugin. Ele adiciona uma instância do editor de texto rico NicEdit a um textarea. Esta é a primeira versão do plugin, ainda faltam alguns parâmetros que o NicEdit aceita, outros já estão disponíveis.

Você pode encontrar o plugin no meu GitHub ou na página de plugins do Symfony. Em ambos os locais você encontra instruções de instalação em inglês. Aqui no blog vou publicar a versão em português.

Instalação

Instalação (via pacote PEAR)

fonini@valhalla:$ symfony plugin:install sfNicEditPlugin

Instalação via Git

fonini@valhalla:$ git clone git://github.com/fonini/sfNicEditPlugin.git

Ou baixe o plugin aqui e extraia para a pasta plugins.

Você deve ativar o plugin, editando o arquivo config/ProjectConfiguration.class.php.

class ProjectConfiguration extends sfProjectConfiguration{
	public function setup(){
		$this->enablePlugins(array('sfDoctrinePlugin', 'sfNicEditPlugin', '...'));
	}
}

Após ativar o plugin, você deve publicar os arquivos CSS e JS utilizados por ele. Rode o seguinte comando:

fonini@valhalla:$ symfony plugin:publish-assets

Por último, limpe o cache:

fonini@valhalla:$ symfony cc

Usando o widget

Basta você editar a classe que gera o form em que você vai usar o NicEdit, por exemplo lib/form/doctrine/NewsForm.class.php.

public function configure(){
	$this->setWidget('text', new sfWidgetFormTextareaNicEdit(array('fullPanel' => true), array('cols' => 100, 'rows' => 20)));
}

Pretendo disponibilizar uma nova versão em breve com todos os parâmetros de configuração disponíves no NicEdit. Entre em contato em caso de dúvida. Abraço!