Logo

Bludit CMS

Informações referente ao Bludit CMS em lingua portuguesa

GitHub deste site

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.

Ajustes - Plugins

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 queriram integrar o CMS em seus projetos;
  • Backup - considere ativar e fazer backups regulares, inclusive salvando em outro servidor;
  • Categories - mostra as categorias na barra lateral;
  • 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 - protocolo que define alguns padrões para descrição de conteúdo web através das meta tags [+];
  • 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 - define pequenos blocos que pode ser disponibilizado fotos, vídeos e tweets ajudando no trafego da sua página web;
  • 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.

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 plugin 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 sobrescrito - chamado de hook, que será chamado se o modelo (template) implementar essa função, 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; } } ?>