Criando Entidades com Fieldable Panels Panes (FPP)

Utilizando o módulo Fieldable Panels Panes (FPP), é possível criar Entidades com campos e inserir seus conteúdos direto da interface do Panels ( Panels UI ).

Ok! Mas o que são essas Entidades e para que servem?

Com essas Entidades é possível criar galerias, banners, bloco de vídeos, etc. Um exemplo prático de como são e funcionam essas Entidades, você pode ver, instalando a distribuição Panopoly.

No Panopoly, ao editar alguma página pelo Panels UI, na opção "Customize this page", você verá os seguintes exemplos de Entidades: Links, file, image, map, table, video, spotlight.

 

No tutorial de hoje, vamos aprender como criar uma nova entidade.

Obs.: O objetivo desse tutorial não será ensinar a configurar e usar o Panels. Estou partindo do princípio de que você já tenha este conhecimento.


Habilite o módulo Fieldable Panels Panes (FPP).

O próximo passo será criar um modulo custom, e nele, implementar o HOOK_entity_info_alter:

Esse Hook será o responsável por criar a Entidade. Veja o exemplo:

function MYMODULE_entity_info_alter(&$entity_info) {
  $entity_info['fieldable_panels_pane']['bundles']['my_bundle_name'] = array(
    'label' => t('My bundle name'),
    'pane category' => t('My category name'),
    'pane top level' => FALSE, // set to true to make this show as a top level icon
    'pane icon' => '/path/to/custom/icon/for/this/pane.png',
    'admin' => array(
      'path' => 'admin/structure/fieldable-panels-panes/manage/%fieldable_panels_pane_type',
      'bundle argument' => 4,
      // Note that this has all _ replaced with - from the bundle name.
      'real path' => 'admin/structure/fieldable-panels-panes/manage/my-bundle-name',
      'access arguments' => array('administer fieldable panels panes'),
    ),
  );
}

No meu exemplo, o nome do Bundle foi "Banner".

Após implementar o Hook, vamos criar os campos da nossa Entidade.

Vá em: Administração - Estrutura - Fieldable Panels Panes (/admin/structure/fieldable-panels-panes).

Nessa tela você verá a Entidade que foi criada via Hook.

Clique em "Gerenciar campos".

No meu exemplo, criei apenas um campo do tipo "imagem".

Feito isso, a minha Entidade "Banner" já está pronta para ser usada.

Vá até alguma página em que você tenha o Panels configurado, e via Panels UI, adicione um conteúdo do tipo "Banner", como nos passos abaixo:

Passo 1:

 

Passo 2:

Passo 3:

Passo 4:

 

Resultado:

No resultado final, teremos uma imagem cadastrada e adicionada em uma região da minha página.

Os conteúdos cadastrados podem ser administrados em: Administração - Estrutura - Fieldable Panels Panes - <Seu Bundle> - List (admin/structure/fieldable-panels-panes/manage/<seu-bundle>).

A versão do módulo usado neste tutorial foi 7.x-1.5 (2013-Aug-26). Nesta versão, não existe uma interface administrativa para criar um Bundle, sendo possível apenas via Hook, como mostrado anteriormente. Porém, na versão 7.x-1.x-dev (2015-Jan-05), é possível criar os Bundles via interface. 

 

Até o próximo Post galera! ;)