drupal entities – Inserte mediante programación una colección de campos de campos de teléfono

Pregunta:

Tengo un tipo de perfil profile2. En el tipo de perfil he creado la colección para almacenar la información de los campos del formulario.

He utilizado el módulo de teléfono para crear los campos de números de teléfono. Esta colección contiene los dos campos de números de teléfono, uno para la oficina y otro para el móvil.

Entonces mi escenario se da a continuación

--Profile type

--- Field collection to store the phone numbers

---- Two fields to store  phone numbers
    1. field_office_phone
    2. field_office_mobile

Ahora quiero guardar los datos del campo mediante programación. He utilizado el siguiente fragmento de aquí para crear y guardar la colección de campos mediante programación. En el código que figura a continuación, la compañía es mi paquete de perfil profile2.

module_load_include('inc', 'field_collection', 'field_collection.pages');
  // Load the profile we're adding the field to
  $profile_entity = profile2_load_by_user($account, 'company');

  // Define the values of the new field
  $values = array();
  $values['field_name'] = 'field_contact_number'; // field collection name
  $values['field_office_phone'][LANGUAGE_NONE][0]['#value']['number'] = 1234;
  $values['field_office_mobile'][LANGUAGE_NONE][0]['#value']['number'] = 12374;

  // Create the field collection entry and associate it with the profile
  $field_entity = entity_create('field_collection_item', $values);
  $field_entity->setHostEntity('profile2', $profile_entity);
  $field_entity->save();

El fragmento de código anterior solo crea un campo, pero no almacena los valores en el campo. No entiendo la razón por la que no establece los valores.

Respuesta:

Este código funciona bien para entidades de usuario bajo Drupal 7:

  $values['field_office_phone'][LANGUAGE_NONE][0]['number'] = '0412345678';
  $values['field_office_phone'][LANGUAGE_NONE][0]['country_codes'] = 'au';

Adapte el código de país al país de su usuario. No creo que esté usando Profile2 y hay varios módulos diferentes que implementan campos de números de teléfono. Mi servidor tiene cck_phone-7.x-1.x-dev instalado.

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım