| Versionen | |
|---|---|
| drupal7 | field_read_fields($params = array(), $include_additional = array()) |
Read in fields that match an array of conditions.
array $params An array of conditions to match against.
array $include_additional The default behavior of this function is to not return fields that are inactive or have been deleted. Setting $include_additional['include_inactive'] or $include_additional['include_deleted'] to TRUE will override this behavior.
An array of fields matching $params.
modules/
<?php
function field_read_fields($params = array(), $include_additional = array()) {
$query = db_select('field_config', 'fc', array('fetch' => PDO::FETCH_ASSOC));
$query->fields('fc');
// Turn the conditions into a query.
foreach ($params as $key => $value) {
$query->condition($key, $value);
}
if (!isset($include_additional['include_inactive']) || !$include_additional['include_inactive']) {
$query->condition('fc.active', 1);
}
if (!isset($include_additional['include_deleted']) || !$include_additional['include_deleted']) {
$query->condition('fc.deleted', 0);
}
$fields = array();
$results = $query->execute();
foreach ($results as $field) {
// Extract serialized data.
$data = unserialize($field['data']);
unset($field['data']);
$field += $data;
module_invoke_all('field_read_field', $field);
// Populate storage information.
$schema = (array) module_invoke($field['module'], 'field_schema', $field);
$schema += array('columns' => array(), 'indexes' => array());
$field['columns'] = $schema['columns'];
$fields[$field['field_name']] = $field;
}
return $fields;
}
?>
Kommentare
Kommentar hinzufügen