| Versionen | |
|---|---|
| drupal7 | field_read_instances($params = array(), $include_additional = array()) |
Read in field instances that match an array of conditions.
$param An array of properties to use in selecting a field instance. Valid keys include any column of the field_config_instance table. If NULL, all instances will be returned.
$include_additional The default behavior of this function is to not return field instances that are inactive or have been marked deleted. Setting $include_additional['include_inactive'] or $include_additional['include_deleted'] to TRUE will override this behavior.
An array of instances matching the arguments.
modules/
<?php
function field_read_instances($params = array(), $include_additional = array()) {
$query = db_select('field_config_instance', 'fci', array('fetch' => PDO::FETCH_ASSOC));
$query->join('field_config', 'fc', 'fc.id = fci.field_id');
$query->fields('fci');
#$query->fields('fc', array('type'));
// Turn the conditions into a query.
foreach ($params as $key => $value) {
$query->condition('fci.' . $key, $value);
}
$query->condition('fc.active', 1);
if (!isset($include_additional['include_inactive']) || !$include_additional['include_inactive']) {
$query->condition('fci.widget_active', 1);
}
if (!isset($include_additional['include_deleted']) || !$include_additional['include_deleted']) {
$query->condition('fc.deleted', 0);
$query->condition('fci.deleted', 0);
}
$instances = array();
$results = $query->execute();
foreach ($results as $record) {
$instance = unserialize($record['data']);
$instance['id'] = $record['id'];
$instance['field_id'] = $record['field_id'];
$instance['field_name'] = $record['field_name'];
$instance['bundle'] = $record['bundle'];
$instance['weight'] = $record['weight'];
$instance['deleted'] = $record['deleted'];
$instance['widget']['type'] = $record['widget_type'];
$instance['widget']['module'] = $record['widget_module'];
$instance['widget']['active'] = $record['widget_active'];
// TODO D7 : Set default widget settings, default instance settings, default display settings.
// (the modules that defined them might have changed since the instance was last saved).
module_invoke_all('field_read_instance', $instance);
$instances[] = $instance;
}
return $instances;
}
?>
Kommentare
Kommentar hinzufügen