Basicamente, quero colocar o nome e o sobrenome juntos em $ node-> field_par_contact_name
Mas isso me dá um aviso. (Ver abaixo)
função partner_node_presave ($ node) { if ($ node-> type == 'parceria') { $ first_name = $ node-> field_par_contact_first_name ['und'] [0] ['nome']; $ sobrenome = $ node-> field_par_contact_surname ['und'] [0] ['name']; // https://drupal.org/project/field_hidden // Variável oculta $ node-> field_par_contact_name ['und'] [0] ['value'] = $ first_name. ''. $ sobrenome; // Aviso após salvar: array_flip (): pode apenas inverter os valores STRING e INTEGER! em DrupalDefaultEntityController-> load () (linha 173 de ... / drupal-7.23 / includes / entity.inc } }
Atualizado , veja a imagem:
Respostas:
Para iniciantes, você provavelmente está usando a chave de matriz incorreta para o valor do campo que está salvando; 'name' deve ser 'value' lá.
Segundo, você está realmente usando os campos Referência de termos de taxonomia para os campos "primeiro nome" e "sobrenome". Um ponto importante sobre os campos de referência é que você nem sempre pode assumir que as entidades referenciadas foram totalmente carregadas e estão disponíveis no seu objeto. Por padrão, quando o objeto do nó é carregado, esse campo se parece apenas com isso:
Apenas a chave 'tid' está definitivamente lá. 'name' é uma propriedade do termo referenciado e geralmente não está disponível automaticamente. (O código subsequente pode realmente carregar o termo referenciado e disponibilizá-lo no objeto $ node, mas isso acontece apenas por acaso.)
Você teria muito mais facilidade se os campos "Primeiro nome" e "Sobrenome" fossem campos de texto em vez de referências. Em seguida, esses valores pertenceriam diretamente ao próprio nó, em vez de um termo de taxonomia separado sendo referenciado.
No entanto, se você estiver usando as referências a termos de taxonomia, faça um ponto no seu código para carregar o termo referenciado e obtenha os valores necessários na própria propriedade $ term-> name.
fonte