A API do core do Drupal é uma das melhores que conheço, muito bem detalhada, além de fácil de usar. Infelizmente nem sempre é tão fácil achar funções úteis dos módulos disponíveis na comunidade, mesmo os principais como CCK ou Views. Por vezes é preciso buscar pelo termo que queremos no google ou então dar aquela estudada no código.
Outro dia esbarrei em uma dessas funções úteis que nem sempre a gente sabe que existe, a content_allowed_values
. Ela retorna através de um array todas as opções possíveis de campos do tipo “select”. Um exemplo:
$content_field = content_fields('field_exemplo');
$allowed_values = content_allowed_values($content_field);
Se no campo de opções válidas do select você informou:
ex_1|Exemplo 1
ex_2|Exemplo 2
ex_3|Exemplo 3
A variável $allowed_values
vai receber um array, onde as chaves serão os valores antes do pipe (ex_1, ex_2 e ex_3) e os valores serão o que estiver depois do pipe (Exemplo 1, Exemplo 2, Exemplo 3).
Esta função pode ser útil, por exemplo, quando é preciso listar todos os valores possíveis em algum lugar mas não é possível usar uma view, seja porque seria um argumento muito complicado de montar ou porque ainda não há conteúdo em todas as opções.