Adicionando campos adicionais ao seu tema
Last updated
Was this helpful?
Last updated
Was this helpful?
Ao estender o tema padrão do Mapas Culturais para personalizá-lo a sua realidade local ou setorial, além de poder modificar cores, textos e layouts, você também pode ter a necessidade de criar campos adicionais. Por exemplo, a plataforma , do Instituto Brasileiro de Museus, cataloga muitos dados adicionais, específicos para os museus, além das informações básicas já presentes por padrão na plataforma.
Para fazer isso no seu tema, são necessário basicamente 3 passos simples:
Para isso, dentro do método register() no arquivo classe Theme do arquivo Theme.php do seu tema, chame o método correspondente: registerAgentMetadata(), registerSpaceMetadata(), registerEventMetadata(), registerProjectMetadata() ou registerSealMetadata().
Esses métodos recebem dois parâmetros: $key e $cfg.
$key (string) é um identificado único para este metadado. Utilize nomes sem acentos ou espaços e, para evitar conflitos, utilize um prefixo com o nome do seu tema. Ex: 'meutema_cor_preferida'.
$cfg (array) Array contendo as configurações do campo.
Exemplo:
Exemplo adicionando um metadado em vários tipos de entidade:
Abaixo as opções e possibilidades de valores para a configuração do campo (em contrução):
label Nome de exibição do campo
type Tipo do campo. Por padrão, é exibido uma caixa de texto simples, mas alguns outros tipos já exibem campos diferentes no formlário. Valores possíveis: string (padrão), text, select, multiselect
validations Array com métodos de validação que devem ser acionados, sendo a chave o método e o valor a mensagem de erro. Veja exemplo acima.
options Array com as opções para os campos select e multiselect
private (bool) Padrao para false. Indica se o campo é ou não privado
allowOther (bool) Padrão para falso. Para campos select e multiselect, adiciona a opção 'outro' caso seja definido como true, que abre uma caixa de texto para inserção de um novo valor.
allowOtherText Caso allowOther seja true, define o texto do novo campo de texto. Por ex: "Especifique a cor"
Agora que já registramos o metadado, precisamos criar um template que vai exibí-lo. Para isso vamos criar um novo arquivo e salvá-lo na pasta layouts/parts do nosso tema. O conteúdo deste arquivo vai seguir o mesmo padrão dos outros campos, mas aqui você tem toda liberdade para exibir o campo da maneira que quiser.
Por exemplo, abaixo o conteúdo do arquivo layouts/parts/cor-preferida.php.
Agora basta carregarmos a parte no ponto em que desejarmos do tema. Para isso, utilizaremos os template hooks.
No tema BaseV1 existem hooks (ganchos) em várias partes do código onde vocẽ pode inserir ações sem precisar sobreescrever o arquivo. Essas ações devem ser colocadas no método init da classe Theme do seu Theme.php. Veja os exemplos abaixo.
Para inserir nosso campo como a primeira coisa da aba "sobre" dos agentes.
Para inserir o novo campo como última coisa da aba sobre de vários tipos de entidade
Você também pode definir regras de validação para o campo, utilizando as opções da classe , consulte sua para todas as possibilidades.