Gostaria de adicionar essa funcionalidade ao widget de preenchimento automático no campo Referência da entidade para mostrar o ID do nó ao lado dos títulos na lista suspensa. A razão por trás da ideia é diferenciar entre vários nós com o mesmo título.
Exemplo:
- Este é um título (3)
- Este é um título (2)
- Este é um título (1)
Sei que o ID do nó é mostrado depois que uma seleção é feita, mas gosto de mostrá-lo na lista suspensa para escolher o nó certo rapidamente, com base no ID do nó.
Respostas:
Instale os módulos Views e Entity Reference , crie uma nova View e adicione uma exibição de referência de entidade:
Em seguida, adicione nos campos o título do conteúdo e o nid, clique no nid e marque Excluir da exibição, Salvar e clique no título e reescreva a saída do título como
[title] - ([nid])
Vá para editar as configurações do formato e verifique o título, isso permitirá que você pesquise por título.
Salve a vista.
Vá para editar o campo Referência da entidade e selecione nas Visualizações de modo: .... (como na imagem a seguir) e selecione sua Visualização (nesse caso, o nome é: articles_with_id) e salve as configurações:
Então vá para ver o resultado:
EDIT: Agora está funcionando no Drupal 8, pelo menos na versão 8.3.4.
fonte
Campo Criar referência de entidade com a configuração padrão
A função entityreference_autocomplete_callback_get_matches determina qual deve ser a saída do preenchimento automático.
a última linha
$matches[$prefix . $key] = '<div class="reference-autocomplete">'
determina a saída e$entity_id
está disponível qual é o ID. Você pode fazer o que fiz nessa linha (mostrada por**
), basta escrever:você pode usar
$entity_id
para buscar outros campos e o que quiser.Mais uma coisa!
Algumas vezes, não é uma boa ideia alterar a função do módulo principal (se não for importante para você, a solução acima é suficiente).
Se você precisar substituir a função principal do
entity_reference
módulo, crie um pequeno módulo e nomeie-oelabel
isto é
elabel.info
e isso é
elabel.module
Eu tentei esse código e ele funciona perfeitamente Se houver outro tipo de referência de entidade e você não precisar fazer isso por eles, basta adicionar uma
IF
instrução e verificar o tipo de pacote ou conteúdo.fonte