summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorAngie Byron <webchick@24967.no-reply.drupal.org>2009-02-10 16:09:00 +0000
committerAngie Byron <webchick@24967.no-reply.drupal.org>2009-02-10 16:09:00 +0000
commit295feb1db47232b668c8d1e07b1fd9eeb4003038 (patch)
tree75fbfa90a2514a2e843b080c567a6eb2bf0c91a7 /modules
parent00e38fb0e313fc732dce1b7bc9125340519d5155 (diff)
downloadbrdo-295feb1db47232b668c8d1e07b1fd9eeb4003038.tar.gz
brdo-295feb1db47232b668c8d1e07b1fd9eeb4003038.tar.bz2
#370037 by bjaspan: Add means of getting all instances of a field.
Diffstat (limited to 'modules')
-rw-r--r--modules/field/field.autoload.inc9
-rw-r--r--modules/field/field.info.inc20
2 files changed, 23 insertions, 6 deletions
diff --git a/modules/field/field.autoload.inc b/modules/field/field.autoload.inc
index cce62e688..2a44f5817 100644
--- a/modules/field/field.autoload.inc
+++ b/modules/field/field.autoload.inc
@@ -505,7 +505,9 @@ function field_info_bundle_entity($bundle) {
* Return array of all field data, keyed by field name.
*
* @return
- * An array of Field objects.
+ * An array of Field objects. Each Field object has an additional
+ * property, bundles, which is an array of all the bundles to which
+ * this field belongs.
*
* This function is an autoloader for _field_info_fields() in modules/field/field.info.inc.
*/
@@ -518,6 +520,11 @@ function field_info_fields() {
* Return data about an individual field.
*
* @param $field_name
+ * The name of the field to retrieve.
+ * @return
+ * The named field object, or NULL. The Field object has an additional
+ * property, bundles, which is an array of all the bundles to which
+ * this field belongs.
*
* This function is an autoloader for _field_info_field() in modules/field/field.info.inc.
*/
diff --git a/modules/field/field.info.inc b/modules/field/field.info.inc
index 52ec413dd..ff3966922 100644
--- a/modules/field/field.info.inc
+++ b/modules/field/field.info.inc
@@ -156,10 +156,12 @@ function _field_info_collate_types($reset = FALSE) {
* If $reset is TRUE, nothing.
* If $reset is FALSE, an array containing the following elements:
*
- * fields: array of all defined Field objects, keyed by field name
- *
- * instances: array of bundled field info, keyed by bundle name
- * * contains all FieldInstance objects for this bundle, keyed by field name.
+ * - fields: array of all defined Field objects, keyed by field
+ * name. Each field has an additional element, bundles, which is
+ * an array of all bundles to which the field is assigned.
+ * - instances: array whose keys are bundle names and whose values
+ * are an array, keyed by field name, of all Instance objects in
+ * that bundle.
*/
function _field_info_collate_fields($reset = FALSE) {
static $info;
@@ -184,6 +186,7 @@ function _field_info_collate_fields($reset = FALSE) {
$instances = field_read_instances();
foreach ($instances as $instance) {
$info['instances'][$instance['bundle']][$instance['field_name']] = $instance;
+ $info['fields'][$instance['field_name']]['bundles'][] = $instance['bundle'];
}
cache_set('field_info_fields', $info, 'cache_field');
@@ -389,7 +392,9 @@ function _field_info_bundle_entity($bundle) {
* Return array of all field data, keyed by field name.
*
* @return
- * An array of Field objects.
+ * An array of Field objects. Each Field object has an additional
+ * property, bundles, which is an array of all the bundles to which
+ * this field belongs.
*/
function _field_info_fields() {
$info = _field_info_collate_fields();
@@ -400,6 +405,11 @@ function _field_info_fields() {
* Return data about an individual field.
*
* @param $field_name
+ * The name of the field to retrieve.
+ * @return
+ * The named field object, or NULL. The Field object has an additional
+ * property, bundles, which is an array of all the bundles to which
+ * this field belongs.
*/
function _field_info_field($field_name) {
$info = _field_info_collate_fields();