Bludit CMS | Plugins
Informações diversas sobre as extensões e seu desenvolvimento
Plugins são extensões de funcionalidades criadas tanto pelos desenvolvedores do Bludit quanto terceiros.
Essa função é localizada em Ajustes->Plugins no Painel de Administração do Bludit.
O CMS por padrão deixa ativo poucos plugins. O download de outros pode ser efetuado na página de plugins do Bludit, e descompactado na pasta bl-plugins. O usuário pode ativá-los ou desativá-los conforme a necessidade.
Clique na imagem para ver a lista de plugins padrões.
Extensões criadas por mim
Você pode verificar as extensões que desenvolvi no site fabianosantosnet - projetos e ideias.
Extensões pré-instaladas
No Bludit 3.12, as extensões ativas são:
- About - clicando em ajustes, coloque o titulo e um texto referente ao conteúdo do blog/site;
- Canonical - não deve ser desativado, utilizado pelos mecanismos de busca para tratar conteúdo duplicado [+];
- Robots - usado para informar aos sites de buscas para ignorar ou não uma determinada página, sendo configurado em Opções->SEO->Robots de um artigo [+];
- Simple Stats - mostra o número de visitas e visualizações de páginas por dia no seu painel de controle e estatística de conteúdo;
- TinyMCE - editor padrão do Bludit;
As extensões desativadas são:
- API - interface programável utilizada por desenvolvedores que queiram integrar o CMS em seus projetos;
- Backup - faz backup quanto restore da pasta /bl-content;
- Categories - mostra as categorias na barra lateral do site;
- Custom fields parser - defina o código para os campos personalizados e analisa o conteúdo da página;
- Disqus - ativa o comentário para o artigo (necessário prévio registro no site);
- EasyMDE - editor para quem gosta de usar o MarkDown [+]
- Hit Counter - mostra o número de visitantes únicos do site/blog na lateral da página;
- HTML Code - adicione código no cabeçalho ou no rodapé da página;
- Links - visualize links pré configurados na lateral da página;
- Maintenance mode - coloque o site no modo manutenção e mostre uma mensagem padrão;
- Navigation - um menu de navegação com subpáginas para a lateral do site/blog (sidebar);
- Open Graph - são meta tags específicas para compartilhamento de publicação em sites como Facebook ou outra rede que entenda as regras do protocolo [+];
- Remote Content - provê um jeito fácil de sincronizar conteúdo do GitHub e similares e sincronizar com o Bludit;
- RSS Feed - gera um conteúdo feed de seu site com padrão
https://seuSite.com.br/rss.xml
; - Search - implementa uma caixa de pesquisa para busca no site/blog;
- Sitemap - gera um sitemap.xml do site/blog para ser utilizado em mecanismos de busca;
- Static Pages - menu de navegação com as páginas estáticas criadas;
- Tags list - mostra todas as tags no painel lateral (sidebar);
- Twitter Cards - trata-se de uma versão do Open Graph mas específica para o Twitter que implementa meta tags que descrevem o conteúdo da postagem;
- Version - mostra a versão do Bludit na lateral do painel de administração e informa quando há novas atualizações;
Dica: desative o plugin TinyMCE, e ative os plugins Backup, Categories, Hit Counter, Links, Navigation, RSS Feed, Search, Sitemap, Static Pages e Tags list. Alguns deles são programados, dependendo do tema, para aparecerem em determinados locais ou no sidebar (barra lateral), e você pode alterar a posição em Plugins->Alterar as posições dos plugins. Verifique qual é o mais interessante para o modelo de seu site/blog e desative os que não usar.
Caso queira ignorar alguns plugins padrões, substitua pelos vários melhorados que criei: Header Content (substitui Meta Canonical, Robots, RSS e Maintenance mode - e adiciona Keywords e Description, Author, Copyright, Bloco CSS e Notificação de Navegador); FS SEO (substitui Twitter, OpenGraph e Sitemap); FS Essential Blocks (substitui Search, Tags e Categories - e adiciona o Caixa de Código); FS Page Menu (substitui Links, Navigation e Static Pages).
Plugins recomendados
Atenção ! Lembre-se de fazer backup antes de qualquer alteração.
Listo alguns plugins interessantes:
- Download plugins - Jeito fácil de fazer o download e instalar plugins (faça o download na página, e coloque dentro da pasta bl-plugins, em seguida ative);
- Theme Download - lista todos temas disponíveis no site oficial, baixa e instala;
- Theme Uninstaller - lista os temas instalados, e com um clique exclua;
- Extension Manager - Substitui os dois plugins acima, tem a função de baixar, instalar, desinstalar plugins e temas;
- TinyMCEfileman - plugin customizado com um gerenciador de arquivos, não esqueça de desativar o TinyMCE que vem por padrão;
- Cachy - gera o cache para as páginas do Bludit;
- Contact3 - adiciona um formulário de contato em uma página estática com suporte a CAPTCHA, SMTP além de suporte a GDPR;
- Simple Stats Plus - trata-se de versão melhorada do plugin Simple Stats (também depende dele para funcionar);
- Hit Counter Plus - implementa um contador personalizado para o seu projeto, e para funcionar precisa do Simple Stats Plus e Hit Counter ativo;
- Snicker - implementa um sistema de comentário próprio com captcha;
Use os plugins abaixo com cautela
- Auto Updater for Bludit 3.X - faz o download e atualiza o CMS com a última versão disponível no site oficial;
Estrutura de diretório
Pasta dos plugins
/bl-plugins/ <-- Contem todos os plugins
Novas extensões devem ser carregadas nessa pasta
pastaNomePlugin1/ <-- Nome da pasta do plugin
languages/ <-- Implementa os arquivos de idioma do plugin
O desenvolvedor pode criar uma ou mais versões de tradução
en.json <-- Arquivo de tradução inglesa
...
ja_JP.json <-- Tradução japonesa do plugin
metadata.json <-- Descreve informações do plugin
plugin.php <-- Classe com padrão plugin'NomePlugin' que herda a classe Plugin e
contém todas informações programáveis do plugin
pastaNomePlugin2/
...
pastaNomePlugin3/
...
Informações de Desenvolvimento
Nessa primeira introdução iremos analisar o plugin que insere a informação sobre o site ou pessoa na lateral da página.
O arquivo metadata.json apresenta algumas informações sobre o plugin, porém o que aparece na página de plugins são: a versão e o autor com o link da página.
{
"author": "Bludit",
"email": "",
"website": "https://plugins.bludit.com",
"version": "3.10.0",
"releaseDate": "2019-10-19",
"license": "MIT",
"compatible": "3.10.0",
"notes": ""
}
O arquivo na pasta en.json, por exemplo, localizado dentro da pasta languages, apresenta a descrição sobre o plugin que aparece na página de plugins. O arquivo apresenta a chave "plugin-data" (nome que não deve ser alterado) que engloba os dois pares name e description.
{
"plugin-data":
{
"name": "About",
"description": "Show a small description of your site or about yourself."
}
}
Caso queira adicionar mais traduções apenas adicione outra virgula e insira conforme exemplo abaixo. Depois é só criar o arquivo json com o outro idioma, exemplo um pt_BR.json e outro en.json e efetuar as traduções nos valores das chaves.
{
"plugin-data":
{
...
},
"chave1": "info chave1",
"chave2": "info chave2",
...
}
Caso queira retornar o valor da "chave1", por exemplo use $L->get('chave1'). O valor será retornado de acordo com o idioma que você deixou padrão no Bludit. O comando $L->get('Label') do exemplo abaixo retorna a chave definida em bl-languages, já que não existe no JSON desse plugin.
Verificando o código do pluginAbout abaixo (arquivo plugin.php), temos a noção de alguns padrões:
- O padrão de nome pluginNome nesse caso Nome é About ficando pluginAbout que herda da classe Plugin
- init() - Método padrão para iniciar as propriedades
- form() - Método padrão que mostrará o conteúdo de configuração do plugin (link Ajustes)
- siteSidebar() - Método implementado - chamado de hook, que será chamado se o modelo (template) executar esse gancho (hook), esse é o conteúdo que irá aparecer para o usuário quando acessa a página, note também as classes css padrões
<?php
class pluginAbout extends Plugin {
public function init()
{
$this->dbFields = array(
'label'=>'About',
'text'=>''
);
}
public function form()
{
global $L;
$html = '<div class="alert alert-primary" role="alert">';
$html .= $this->description();
$html .= '</div>';
$html .= '<div>';
$html .= '<label>'.$L->get('Label').'</label>';
$html .= '<input name="label" type="text" value="'.$this->getValue('label').'">';
$html .= '<span class="tip">'.$L->get('This title is almost always used in the sidebar'.
'of the site').'</span>';
$html .= '</div>';
$html .= '<div>';
$html .= '<label>'.$L->get('About').'</label>';
$html .= '<textarea name="text" id="jstext">'.$this->getValue('text').'</textarea>';
$html .= '</div>';
return $html;
}
public function siteSidebar()
{
$html = '<div class="plugin plugin-about">';
$html .= '<h2 class="plugin-label">'.$this->getValue('label').'</h2>';
$html .= '<div class="plugin-content">';
$html .= html_entity_decode(nl2br($this->getValue('text')));
$html .= '</div>';
$html .= '</div>';
return $html;
}
}
?>