Jak programowo zaktualizować dozwolone wartości pola listy?


10

Utworzyłem listę wyboru dla konta Profile2 w Drupal 7. Na liście dozwolonych wartości dodałem kilka wartości. Teraz chciałbym programowo zaktualizować wartości na tej liście (dodać, usunąć lub zaktualizować). Nie chcę używać form_alter, ponieważ chcę, aby te aktualizacje były przypisane do bazy danych. Mój problem polega na tym, że nie mogę znaleźć, gdzie te wartości są przechowywane w bazie danych, ani jak pobrać te wartości z Profile2, zaktualizować je, a następnie zapisać.

Googled wysoko i nisko w tej konkretnej sprawie i nie mogę znaleźć odpowiedzi, jak to zrobić. Mam nadzieję, że ktoś może mi pomóc.

Dzięki.

Odpowiedzi:


23

Coś w stylu ...

// Get the field info
$info = field_info_field('field_some_field');

// Get a reference to the values
$values = &$info['settings']['allowed_values'];

// Manipulate the values in some way, e.g.
$values['new_value'] = 'New Value';

// Save the field
field_update_field($info);

gdzie muszę dodać ten fragment kodu?
Shivam

@shivam Musisz dodać ten kod do niestandardowego modułu, który tworzysz.
user5013

Umieść to w hook_update_N, aby uruchomić tylko raz.
Achraf JEDAY

Nie zmieni to również starych dozwolonych wartości, jeśli pole jest już w użyciu.
Achraf JEDAY

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.