コード例 #1
0
 /**
  * Fill taxonomy autocomplete values.
  *
  * @param Form $formObject
  *   Form object.
  * @param string $field_name
  *   Field name.
  * @param array $values
  *   An array of values.
  *
  * @return mixed
  *   A path or an array of paths of images which are to be uploaded.
  */
 public static function fillTaxonomyAutocompleteValues(Form $formObject, $field_name, $values)
 {
     if (!Field::hasFieldAccess($formObject, $field_name)) {
         return new Response(FALSE, "", "Field " . Utils::getLeaf($field_name) . " is not accessible.");
     }
     $formObject->emptyField($field_name);
     $vocabulary = NULL;
     if (method_exists($formObject, 'getEntityObject')) {
         // This is an entity form.
         list($field, $instance, $num) = $formObject->getFieldDetails($field_name);
         $vocabulary = $field['settings']['allowed_values'][0]['vocabulary'];
     }
     $field_class = get_called_class();
     $names = $field_class::convertValues($values, $vocabulary, TRUE, FALSE);
     $field_value = is_array($names) ? implode(",", $names) : $names;
     $response = $formObject->fillValues($field_name, array(LANGUAGE_NONE => $field_value));
     if (!$response->getSuccess()) {
         return $response;
     }
     $termObjects = TaxonomyTerm::createTermObjectsFromNames($names, $vocabulary, FALSE);
     $response->setVar(Utils::normalize($termObjects));
     return $response;
 }