Os módulos e temas do HubSpot oferecem suporte à personalização pelos criadores de conteúdo por meio de campos. Os desenvolvedores criam e organizam os campos por meio do arquivo fields.json.
fields.json
, que será traduzido para os editores de tema e conteúdo.
fields.json
de um módulo localmente através da CLI do HubSpot e no editor de módulos no aplicativo. Para adicionar campos a um tema, você deve atualizar o arquivo fields.json
do tema localmente usando a CLI.
fields.json
dentro da pasta do módulo ou tema. Para os módulos, esse arquivo será criado automaticamente ao usar o comando hs create module
. Todas as opções de campo disponíveis no editor de módulo estão disponíveis como propriedades que você pode adicionar ou editar no arquivo fields.json
. Isso inclui campos repetidores, grupos e condições. Um dos benefícios da edição local é que ela facilita a inclusão de módulos em sistemas de controle de versão como o git.
display_width
aos campos no arquivo fields.json
com um valor de half_width
.
display_width
igual a half_width
aparecerá como meia-largura no editor de conteúdo. Quando o campo acima ou abaixo desse campo no arquivo fields.json
estiver definido para half_width
, ele será exibido lado a lado.
fields.json
crie um objeto com o type
de "group"
. Em seguida, inclua uma matriz children
para conter os campos que você deseja agrupar.
"group"
dentro do primeiro parâmetro children
. Em seguida, construa o grupo de campo da mesma forma que acima, usando children
para conter os campos. Você pode aninhar grupos de campos até uma profundidade de três.
Parâmetro | Tipo | Descrição |
---|---|---|
display | String | O estilo de exibição do grupo de campos. Pode ser um dos seguintes:
|
icon | Objeto | Adiciona um ícone à esquerda do rótulo. Contém os seguintes parâmetros:
|
expanded | Booleano | Se o grupo de campos é expandido por padrão. |
group_occurrence_meta
na configuração do grupo de campos. Esta propriedade armazena as seguintes propriedades:
featured_enabled
: defina como true
para habilitar itens em destaque.featured_limit
: o número máximo de itens em destaque permitidos.occurrence
.
hs_meta
. O código abaixo usa um loop for para verificar os itens do grupo de campos definidos como em destaque e, em seguida, exibe o título de cada um como um cabeçalho h3
.
{{ repeated_group_item.hs_meta.occurrence.featured }}
fields.json
do tema que fornece aos criadores de conteúdo controle sobre o estilo de um módulo ou tema na página e no editor de temas. Abaixo, saiba como adicionar campos de estilo para um módulo ou tema. Conheça as práticas recomendadas para a utilização e organização de campos de estilo.
fields.json
de um módulo, você os adiciona dentro de um grupo de estilos. Esse grupo, no entanto, pode conter vários grupos, como mostrado abaixo:
fields.json
de um módulo.
fields.json
de um tema serão adicionados à barra lateral esquerda do editor de temas, ao invés de precisar colocá-los sob um grupo de estilos, como mostrado abaixo:
fields.json
de um tema.
fields.json
pode resultar na perda de dados de instâncias de módulos existentes. Em vez disso, você deve adicionar novos campos de estilo, ou criar uma nova listagem que tenha os campos devidamente agrupados. Isso evitará que as suas atualizações sejam um problema para os clientes que utilizam os seus temas. Para promover caminhos de migração para módulos antigos, confira o fórum de ideias da HubSpot..css
gerada:
Parâmetro | Tipo | Descrição | Padrão |
---|---|---|---|
max | Inteiro | Número máximo de ocorrências deste grupo. Evita que o criador do conteúdo adicione mais do que este número de itens na IU. | null |
min | Inteiro | Número mínimo de ocorrências deste grupo de campos. Evita que os usuários tenham menos do que este número de itens na IU. | null |
sorting_label_field | String | Este é o ID do campo do qual obter o texto para mostrar na IU nos cartões arrastáveis. A configuração padrão é o primeiro campo do grupo. |
inherited_value
pode ser configurada para fazer com que um campo herde seu valor padrão de outros campos. Para definir o valor padrão de um campo a partir do valor de outro campo, defina default_value_path
para o caminho do nome do campo de destino. Se default_value_path
estiver definido, qualquer default
definido no campo será ignorado.
Para acessar os valores de outros campos, os caminhos devem incluir o prefixo module.
, como se você estivesse acessando o valor no código HubL do módulo.
font
e font_set
, você deve incluir ambos para herança de campo de fonte. Saiba mais sobre o campo de fonte.property_value_path
. Quaisquer caminhos referidos em inherited_value
também podem incluir chaves do valor de um campo para campos complexos.
Por exemplo, campos de cor têm valores de objeto que contêm a própria cor, bem como a opacidade. Para obter o valor real da cor sem a opacidade, o caminho terminaria em .color
. Por exemplo, um campo de fonte pode herdar apenas a sua cor de um campo de cor separado:
default_value_path
e property_value_paths
para herdar um valor padrão de um campo enquanto herda um valor de propriedade específico de outro campo:
default_value_path
ou property_value_paths
não afetarão mais o valor do campo.
visibility
ao campo no arquivo fields.json
. Por exemplo, você pode definir um módulo de formulário para exibir uma área de rich text quando a mensagem de agradecimento for selecionada, mas um seletor de página quando um redirecionamento for selecionado.
Você pode definir a visibilidade com base no valor de um controlling_field_path
ou em uma propriedade específica dentro desse campo usando o parâmetro property
. Você também pode aplicar a visibilidade a um campo individual ou a um grupo de campos para controlar a visibilidade de todos os elementos no grupo.
Parâmetro | Tipo | Descrição |
---|---|---|
controlling_field_path | String | O caminho separado por ponto do campo que controla a condição de exibição.
|
controlling_value_regex | String | A expressão regular no campo de controle que precisa estar presente para o campo ser exibido. A regex deve corresponder a toda a string (não a um subconjunto) e será executada diferenciando letras maiúsculas de minúsculas. |
operator | String | O operador que define como o valor controlling_value_regex deve ser atendido. Os operadores podem ser um dos seguintes:
|
property | String | Define a visibilidade com base em uma propriedade específica do campo de destino. Por exemplo, você pode ativar a visibilidade quando a propriedade src de um campo de imagem for igual a um valor específico. Por padrão, se nenhum valor for fornecido para esse campo, a visibilidade será baseada no valor de controlling_value_regex da string. |
occurrence_options
dentro do objeto visibility
para atingir a contagem de valores de um campo repetido. Este objeto deve incluir o count
para comparar e uma definição operator
. Por exemplo, para mostrar um campo de texto somente quando outro campo repetido tiver pelo menos dois itens, você pode definir visibility
do seguinte modo:
operater
:
"NOT_EQUAL"
"EQUAL"
"EMPTY"
"NOT_EMPTY"
"GREATER_THAN"
"GREATER_THAN_OR_EQUAL"
"LESS_THAN"
"LESS_THAN_OR_EQUAL"
visibility
pode suportar apenas um critério por vez. Para incluir vários critérios com vários operadores, bem como a ordem das operações, você pode usar advanced_visibility
.
Parâmetro | Tipo | Descrição |
---|---|---|
visibility_rules | String | Por padrão, esse valor é definido como SIMPLE . Para usar advanced_visibility , defina como ADVANCED . |
boolean_operator | String | O operador booleano para os critérios condicionais. Pode ser AND ou OR . |
criteria | Matriz | Uma matriz de objetos de visibilidade que define os critérios condicionais que precisam ser atendidos para que o campo seja exibido. |
controlling_field_path | String | O caminho separado por ponto do campo que controla a condição de exibição.
|
controlling_value_regex | String | O valor no campo de controle que precisa ser atendido para exibir o campo. Ao usar o operador MATCHES_REGEX , o regex deve corresponder à string inteira (não a um subconjunto) e é executado com distinção entre maiúsculas e minúsculas. Um campo com controlling_field_path mas não com controlling_value_regex ficará visível se o campo de controle tiver um valor diferente de nulo que não esteja em branco. |
operator | String | O operador que define como o valor controlling_value_regex deve ser atendido. Os operadores podem ser um dos seguintes:
MATCHES_REGEX . |
fields.json
do módulo.
payment
) é um campo obrigatório (menu suspenso), que permite ao criador de conteúdo selecionar um link de pagamento específico. No HubSpot, um criador de conteúdo verá o seguinte ao adicionar o módulo à página pela primeira vez:checkout_location
, button_text
e icon
) serão exibidos. Isso ocorre porque os campos têm um atributo de visibility
que é controlado pelo campo de payment
e exige um valor de ID no parâmetro de id
do campo de pagamento.icon
usa advanced_visibility
para ser exibido somente quando houver um link de pagamento presente no campo de payment
E quando a caixa de seleção add_icon
estiver selecionada.
Além de definir a visibilidade dentro de fields.json
, também é possível fazer isso no gerenciador de design, editando as opções de Condições de exibição de um campo.
visibility
no arquivo fields.json
do módulo.
disabled_controls
. As condições para tornar um campo editável são definidas no objeto rules
, que segue o mesmo formato de advanced_visibility.
O código abaixo mostra uma implementação simples e avançada dos critérios rules
:
simple_page
inclui lógica para ser desativado se o campo text_field
estiver definido como testing
.fancy_page
inclui lógica para ser desativado se text_field
ou text_field_2
estiver definido como qualquer valor diferente de testing
e testing2
respectivamente.Parâmetro | Tipo | Descrição |
---|---|---|
message | String | A mensagem a ser exibida no editor de conteúdo quando o campo estiver desabilitado. |
rules | Objeto | As condições para habilitar o campo para edição. |
criteria | Matriz | Uma matriz de objetos de condição que define os critérios que precisam ser atendidos para que o campo seja exibido. Esta matriz pode conter vários objetos de condição separados pela lógica AND ou OR por meio do parâmetro boolean_operator . |
boolean_operator | String | O operador booleano para os critérios condicionais. Pode ser AND ou OR . Quando não especificado, assume o padrão AND . |
controlling_field_path | String | O caminho separado por ponto do campo que controla a condição de exibição.
|
controlling_value_regex | String | O valor no campo de controle que precisa ser atendido para exibir o campo. Ao usar o operador MATCHES_REGEX , o regex deve corresponder à string inteira (não a um subconjunto) e é executado com distinção entre maiúsculas e minúsculas. Um campo com controlling_field_path mas não com controlling_value_regex ficará visível se o campo de controle tiver um valor diferente de nulo que não esteja em branco. |
operator | String | O operador que define como o valor controlling_value_regex deve ser atendido. Os operadores podem ser um dos seguintes:
MATCHES_REGEX . |
editor-preview.json
no diretório raiz do tema para mapear os campos a uma lista de seletores CSS. No arquivo, você incluirá uma matriz para cada campo de estilo que deseja destacar e que contém os seletores CSS relevantes, usando o seguinte formato:
editor-preview.json
do tema Crescimento padrão.
Descrição | Parâmetro |
---|---|
theme-directory-path | O caminho para o diretório de temas. |
editor-preview.json
para garantir que os campos e os seletores sejam mapeados corretamente. Embora o comando generate-selectors faça uma suposição rudimentar sobre os campos que afetam os seletores, você precisará fazer correções com base em como seu tema é construído. Por exemplo, este comando não detecta quando os módulos substituem o estilo ou quando você usa macros.
Para testar esses mapeamentos, carregue o tema em uma conta e exiba o editor de temas nessa conta (Configurações > Site > Temas > Exibir tema).