Como é de praxe em sistemas gerenciadores de conteúdo, o b2evolution tem alguns pontos onde pode ter o seu comportamento alterado ou funcionalidades adicionadas pelo uso de plugins.
A pasta para a instalação de plugins é, coincidentemente, a pasta plugins 
Para escrever um plugin para o b2evolution, é preciso estender a classe plugin. Existe um arquivo chamado skeleton.plugin.php , que você pode usar como modelo para o seu primeiro plugin. A classe do plugin deve se chamar nomedoplugin_plugin e o arquivo deve se chamar _nomedoplugin.plugin.php. Se o seu plugin contiver vários arquivos além da classe PHP, você pode incluí-lo dentro de uma pasta chamada nomedoplugin_plugin.php, ficando a seguinte hierarquia:
plugins/nomedoplugin_plugin/_nomedoplugin.plugin.php
Vamos dar uma olhada no cabeçalho do skeleton.plugin.php:
{
/**
* Variables below MUST be overriden by plugin implementations,
* either in the subclass declaration or in the subclass constructor.
*/
var $name = 'PLUGIN_NAME';
/**
* Code, if this is a renderer or pingback plugin.
*/
var $code = '';
var $priority = 50;
var $version = '0.1-dev';
var $author = 'http://example.com/';
var $help_url = '';
var $apply_rendering = 'opt-in';
O code é um texto usado para identificar o seu plugin internamente, é e usado com os plugins renderizadores. priority é a prioridade de seu plugin. No caso de uma mesma ação disparar diversos plugins, será disparado primeiro o plugin com menor prioridade. version é, sem segredo, a versão do seu plugin. author é um link para o site do desenvolvedor do plugin, help_url é um link para uma página que contenha a documentação do plugin. apply_rendering diz respeito a aplicação de plugins renderizadores de texto e de que forma eles serão aplicados.
Plugins renderizadores de texto
Plugins renderizadores de texto são plugins que modificam o texto que você escreveu de alguma forma. Exemplos de plugins renderizadores são o plugin de smilies, que transforma seus smilies em imagens, o auto_p, que transforma quebras de linhas em parágrafos. Você pode escolher post a post quais plugins você renderizadores você quer que sejam aplicados a esse post, e a váriavel apply_rendering em cada plugin especifica como isso será exibido na tela de edição de posts:
- stealth: é sempre usado, mas não é exibido como uma opção
- always: é sempre usado e exibido como um checkbox desabilitado
- opt-out: habilitado por padrão
- opt-in: desabilitado por padrão
- lazy: checkbox é exibida, mas desabilitada
- never: não pode ser usado como um renderizador
Para quem tem experiência com o wordpress, um plugin renderizador é de certa forma semelhante a um plugin do wordpress que filtre o "the_content".
Um plugin renderizador deve implementar um dos seguintes métodos: RenderItemAsHtml, RenderItemAsXml, DisplayItemAsHtml, DisplayItemAsXml. Os dois primeiros (que começam com Render) são salvos em cache e portanto, são aplicados apenas na primeira vez que o item é exibido. Os dois últimos, que começam com Display, são aplicados todos as vezes que o item é exibido, e sua saída não é salva no cache. RenderItemAsHtml e DisplayItemAsHtml se aplicam a visualização html do item, RenderItemAsXml e DisplayItemAsXml são usados na exibição xml do item (por exemplo, na exibição de um feed rss). Assim, é possível exibir elementos apenas na visualização comum do post, eliminando do rss items que não façam sentido num leitor de feeds, ou o contrário, exibir alguma coisa apenas no feed e não no blog.
Como exercício para o leitor, sugiro dar uma olhada nos plugins que já vem com o b2evolution, no próximo artigo mostrarei um exemplo de um plugin renderizador completo!


Comentários Recentes