afbeelding van scuba_fly

create field instance


$instance = array(
'field_name' => 'city',
'entity_type' => 'user',
'label' => 'Stad',
'bundle' => 'user',
'required' => TRUE,
'settings' => array(
'user_register_form' => 1,
),
'widget' => array(
'type' => 'taxonomy_autocomplete',
),
);
field_create_instance($instance);

Ik heb een taxonomie term genaamd stad waarvan de machine_name 'city' is maar wanneer ik deze op bovenstaande manier probeer toe te voegen krijg ik "Taxonomy field city not found." terug.

Het veld is wel zichtbaar op de "user edit" pagina.
Echter wanneer ik wat intyp in het veld krijg ik een javascript popup met de volgende melding:

An AJAX HTTP error occurred.
HTTP Result Code: 200
Debugging information follows.
Path: http://d7.dev/?q=taxonomy/autocomplete/city
StatusText: OK
ResponseText: Taxonomy field city not found.

Wanneer ik "http://d7.dev/?q=taxonomy/autocomplete/city" in de adresbalk intyp krijg ik dezelfde melding. welke string moet ik ipv city invoeren, hoe kom ik daar achter?

Thnx,

Drupalversie: 
7.x
Auteur: 
scuba_fly
afbeelding van scuba_fly
Door scuba_fly op 27 juni, 2012 - 13:33

Ik heb het werkend gekregen door 'field_' aan de naam van het veld toe te voegen.
Ik heb er een functie voor geschreven die voor mij in deze omstandigheden voldoet aan het aanmaken van velden. Voel je vrij om dit te gebruiken en misbruiken voor je eigen module:

function _popover_create_user_instance($field_name, $label, $type, $widget_type, $vocabulary_id, $description = "", $required = TRUE) {
$popover_user_instance_field = array(
'field_name' => $field_name,
'entity_type' => 'user',
'label' => t($label),
'bundle' => 'user',
'type' => $type,
'required' => $required,
'description' => t($description),
'widget' => array(
'type' => $widget_type,
'weight' => 10,
),
'settings' => array(
'user_register_form' => TRUE,
'allowed_values' => array(
array(
'vid' => $vocabulary_id,
'vocabulary' => $field_name,
'parent' => 0,
),
),
),
);
field_create_instance($popover_user_instance_field);
}

@scuba_fly / Jack Vliegendhart

Bookmark and Share

Drupal is een geregistreerd merk van Dries Buytaert. | Powered by Pantheon.

Drupal.be/Drupal.nl is de website van de Nederlandstalige Drupalgemeenschap.

onomatopee