Adicionando campos adicionais ao seu tema
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 Museus BR, 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:
Registar novos metadados
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:
Você também pode definir regras de validação para o campo, utilizando as opções da classe Validation, consulte sua documentação para todas as possibilidades.
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"
Criar um novo template para o campo
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.
Carregar novo template
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
Last updated