WG FieldX - Adicionando campo extra no artigo do Joomla

Destaque

O WG FieldX é um plugin adaptado do código original que pode ser encontrado na documentação oficial do Joomla.

A adaptação do plugin nasceu da necessidade de manipular mais informações simples de forma independente no componente de artigo nativo sem que eu precisasse instalar um CCK.

Este plugin tem o intuito de adicionar campos extras diretamente no formulário de criação/edição de artigos do Joomla.

A adptação feita foi simplesmente colocar a opção do usuário escolher em qual visão deseja mostrar os campos extras e deixar uma explicação melhor de como tirar maior proveito da funcionalidade.

A função do plugin não é injetar os campos de forma automática no formulário de edição, mas sim evitar que o desenvolvedor manipule diretamente o banco de dados e precise fazer hacks desnecessários diretamente no componente.

Utilização do Plugin

Após a instalação do plugin, você deverá ativá-lo e poderá escolher em qual formulário deseja que os campos extras sejam mostrados. Em seguida deverá criar os campos que deseja adicionar no formulário de edição. Essa operação é manual e para isso terás que modificar o arquivo content.xml localizado em plugins/content/wgfieldx/forms/.

Ao abrir o arquivo, um campo  de exemplo já estará disponível para teste e já poderá vê-lo em funcionamento ao pedir um novo artigo no gerenciador de artigos.

Adicionando campos

Adicione os campos usando como referência esta documentação https://docs.joomla.org/Form_field. Escolha o tipo de campo, copie o script xml e cole no arquivo mencionado acima.

OBSERVAÇÃO: O parâmetro name dos campos deverá ser único e é ele que será utilizado para renderizar os campos dentro do artigo e no formulário de edição. Utilize os parâmetros label para nomear o campo e description para uma descrição detalhada do campo. Após adicionado os campos, faça um backup do arquivo caso precise atualizar o plugin futuramente, pois esse procedimento não é um override e as configurações poderão ser perdidas na atualização do plugin.

Feito a inserção dos campos no arquivo content.xml, é hora de fazer com que essas informações sejam vistas no front-end. Para isso será necessário que você crie um override no arquivo de visão do artigo.

Override no arquivo de visão do artigo

No painel administrativo do joomla vá em: Extensões > Gerenciador de temas; no menu localizado a esquerda, selecione Temas; agora clique no seu tema > selecione a aba Criar Substituições; na coluna Componentes selecione com_content e clique em article. Com isso o joomla já cria automaticamente as pastas e o arquivo de substituição dentro da pasta html localizada na pasta do seu template. Caminho do arquivo de substituição (/template/SEU_TEMA/html/com_content/article/default.php).

Abra o arquivo e insira o código a seguir no local onde você deseja que a informação do campo extra apareça.

<?php
$attributes = json_decode($this->item->attribs);
echo $attributes->exemplo;
?>

Troque a palavra exemplo pela string colocada no parâmetro name do campo xml no arquivo content.xml.

Salve o arquivo e faça um teste criando um novo artigo e preenchendo o campo extra.

IMPORTANTE: O script da linha 3 deverá ser implementado para cada campo adicionado.

Agora logue no front-end e edite o arquivo que acabou de criar para teste, você irá perceber que o campo extra não aparece no front-end. Então para que ele apareça você deverá criar um outro override. Da mesma forma que o do artigo, mas agora em vez de clicar em article clique em form. O joomla criará as pastas e o arquivo de substituição. Caminho do arquivo de substituição (/template/SEU_TEMA/html/com_content/form/edit.php).

Abra o arquivo e insira o código a seguir no local onde você deseja que o campo extra apareça para o usuário inserir a informação.

<?php
if ($this->item->id) {
//mostra a informação no campo para edição 
$attributes = json_decode($this->item->attribs);
$this->form->setValue('exemplo', 'attribs', $attribs->exemplo);
}
//mostra o campo
echo $this->form->renderField('exemplo','attribs');
?>

Da mesma forma que o script anterior, troque a palavra exemplo pela string colocada no parâmetro name do campo xml no arquivo content.xml.

IMPORTANTE: Também para cada campo adicionado, deverá haver um script. Neste caso a linha 4 não precisa ser repetida para cada campo.

INFORMAÇÃO: As informações inseridos no campo adicional, são salvas na tabela #__content na coluna attribs. As informações são salvas em formato jSon, por isso é necessário utilizar a função json_decode() para extrair os dados.

Porque usar este plugin

Em alguns casos há a necessidade de utilizar apenas um ou dois campos simples para nos atender. Com a utilização correta do plugin, você evita instalar um CCK como K2 e Seblod para gerenciar poucos campos simples gerando talvez, códigos desnecessários e diminuição de desempenho da aplicação. Pra quem usa o K2, talvez não veja grandes vantagens em utilizar o plugin, mas pra quem gosta de trabalhar com componentes nativos como eu, ele tem sido uma mão na roda.

Espero que tenham gostado do plugin e do artigo explicando sua utilização. O projeto está no GitHub livre para que vocês colaborem. Quem sabe alguém ai fera em desenvolvimento de extensões joomla tenha uma solução para melhorar a funcionalidade do plugin.

BAIXAR PLUGIN


Viu algum erro, tem uma crítica ou sugestão, não hesite em deixar um comentário e compartilhar. Isso ajuda muito o blog ficar de pé.

Última modificação em Sexta, 07 Agosto 2015 22:52
(0 votos)
Lido 3131 vezes

Deixe um comentário

Certifique-se de preencher os campos indicados com (*). Não é permitido código HTML.

Receba conteúdos exclusivos

Please wait