Commit 069597ea authored by webchick's avatar webchick
Browse files

#369562 by yched: More Field API clean-ups.

parent 4ce3ff3d
......@@ -17,11 +17,11 @@
*
* name: The human-readable name of the type.
* id key: The object property that contains the primary id for the
* object. Every object passed to the Field API must
* object. Every object passed to the Field API must
* have this property and its value must be numeric.
* revision key: The object property that contains the revision id
* for the object, or NULL if the object type is not
* versioned. The Field API assumes that all revision ids are
* versioned. The Field API assumes that all revision ids are
* unique across all instances of a type; this means, for example,
* that every object's revision ids cannot be 0, 1, 2, ...
* bundle key: The object property that contains the bundle name for
......@@ -31,7 +31,7 @@
* loaded fields for each object, reducing the cost of
* field_attach_load().
* bundles: An array of all existing bundle names for this object
* type. TODO: Define format. TODO: I'm unclear why we need
* type. TODO: Define format. TODO: I'm unclear why we need
* this.
*/
function hook_fieldable_info() {
......@@ -60,7 +60,7 @@ function hook_fieldable_info() {
* @{
* Define field types, widget types, and display formatter types.
*
* The bulk of the Field Types API are related to field types. A
* The bulk of the Field Types API are related to field types. A
* field type represents a particular data storage type (integer,
* string, date, etc.) that can be attached to a fieldable object.
* hook_field_info() defines the basic properties of a field type, and
......@@ -68,10 +68,10 @@ function hook_fieldable_info() {
* to perform field-type-specific actions.
*
* The Field Types API also defines widget types via
* hook_field_widget_info(). Widgets are Form API elements with
* additional processing capabilities. A field module can define
* hook_field_widget_info(). Widgets are Form API elements with
* additional processing capabilities. A field module can define
* widgets that work with its own field types or with any other
* module's field types. Widget hooks are typically called by the
* module's field types. Widget hooks are typically called by the
* Field Attach API when creating the field form elements during
* field_attach_form().
*
......@@ -119,8 +119,8 @@ function hook_field_info() {
* A field structure.
* @return
* A Field API schema is an array of Schema API column
* specifications, keyed by field-independent column name. For
* example, a field may declare a column named 'value'. The SQL
* specifications, keyed by field-independent column name. For
* example, a field may declare a column named 'value'. The SQL
* storage engine may create a table with a column named
* <fieldname>_value_0, but the Field API schema column name is
* still 'value'.
......@@ -214,7 +214,7 @@ function hook_field_load($obj_type, $object, $field, $instance, $items) {
* @param $items
* $object->{$field['field_name']}, or an empty array if unset.
* @param $form
* The form structure being validated. NOTE: This parameter will
* The form structure being validated. NOTE: This parameter will
* become obsolete (see field_attach_validate()).
*/
function hook_field_validate($obj_type, $object, $field, $instance, $items, $form) {
......@@ -274,7 +274,7 @@ function hook_field_update($obj_type, $object, $field, $instance, $items) {
}
/**
* Define custom delete behavior for this module's field types. This
* Define custom delete behavior for this module's field types. This
* hook is invoked just before the data is deleted from field storage.
*
* @param $obj_type
......@@ -293,7 +293,7 @@ function hook_field_delete($obj_type, $object, $field, $instance, $items) {
/**
* Define custom delete_revision behavior for this module's field
* types. This hook is invoked just before the data is deleted from
* types. This hook is invoked just before the data is deleted from
* field storage, and will only be called for fieldable types that are
* versioned.
*
......@@ -355,7 +355,7 @@ function hook_field_prepare_translation($obj_type, $object, $field, $instance, $
* provide it with valid $field information.
*
* Field API will set the weight, field name and delta values for each
* form element. If there are multiple values for this field, the
* form element. If there are multiple values for this field, the
* Field API will call this function as many times as needed.
*
* @param $form
......@@ -393,7 +393,7 @@ function hook_field_widget(&$form, &$form_state, $field, $instance, $items, $del
*/
/**
* Act on field_attach_form. This hook is invoked after the field module
* Act on field_attach_form. This hook is invoked after the field module
* has performed the operation.
*
* See field_attach_form() for details and arguments.
......@@ -402,17 +402,17 @@ function hook_field_attach_form($obj_type, $object, &$form, &$form_state) {
}
/**
* Act on field_attach_load. This hook is invoked after the field module
* Act on field_attach_load. This hook is invoked after the field module
* has performed the operation.
*
* See field_attach_load() for details and arguments. TODO:
* See field_attach_load() for details and arguments. TODO:
* Currently, this hook only accepts a single object a time.
*/
function hook_field_attach_load($obj_type, $object) {
}
/**
* Act on field_attach_validate. This hook is invoked after the field module
* Act on field_attach_validate. This hook is invoked after the field module
* has performed the operation.
*
* See field_attach_validate() for details and arguments.
......@@ -421,7 +421,7 @@ function hook_field_attach_validate($obj_type, $object, &$form) {
}
/**
* Act on field_attach_submit. This hook is invoked after the field module
* Act on field_attach_submit. This hook is invoked after the field module
* has performed the operation.
*
* See field_attach_submit() for details and arguments.
......@@ -430,7 +430,7 @@ function hook_field_attach_submit($obj_type, $object, $form, &$form_state) {
}
/**
* Act on field_attach_presave. This hook is invoked after the field module
* Act on field_attach_presave. This hook is invoked after the field module
* has performed the operation.
*
* See field_attach_presave() for details and arguments.
......@@ -439,7 +439,7 @@ function hook_field_attach_presave($obj_type, $object) {
}
/**
* Act on field_attach_insert. This hook is invoked after the field module
* Act on field_attach_insert. This hook is invoked after the field module
* has performed the operation.
*
* See field_attach_insert() for details and arguments.
......@@ -448,7 +448,7 @@ function hook_field_attach_insert($obj_type, $object) {
}
/**
* Act on field_attach_update. This hook is invoked after the field module
* Act on field_attach_update. This hook is invoked after the field module
* has performed the operation.
*
* See field_attach_update() for details and arguments.
......@@ -457,7 +457,7 @@ function hook_field_attach_update($obj_type, $object) {
}
/**
* Act on field_attach_delete. This hook is invoked after the field module
* Act on field_attach_delete. This hook is invoked after the field module
* has performed the operation.
*
* See field_attach_delete() for details and arguments.
......@@ -466,7 +466,7 @@ function hook_field_attach_delete($obj_type, $object) {
}
/**
* Act on field_attach_delete_revision. This hook is invoked after
* Act on field_attach_delete_revision. This hook is invoked after
* the field module has performed the operation.
*
* See field_attach_delete_revision() for details and arguments.
......@@ -475,7 +475,7 @@ function hook_field_attach_delete_revision($obj_type, $object) {
}
/**
* Act on field_attach_view. This hook is invoked after the field module
* Act on field_attach_view. This hook is invoked after the field module
* has performed the operation.
*
* @param $output
......@@ -491,7 +491,7 @@ function hook_field_attach_view($output, $obj_type, $object, $teaser) {
}
/**
* Act on field_attach_create_bundle. This hook is invoked after the
* Act on field_attach_create_bundle. This hook is invoked after the
* field module has performed the operation.
*
* See field_attach_create_bundle() for details and arguments.
......@@ -500,7 +500,7 @@ function hook_field_attach_create_bundle($bundle) {
}
/**
* Act on field_attach_rename_bundle. This hook is invoked after the
* Act on field_attach_rename_bundle. This hook is invoked after the
* field module has performed the operation.
*
* See field_attach_rename_bundle() for details and arguments.
......@@ -509,7 +509,7 @@ function hook_field_rename_bundle($bundle_old, $bundle_new) {
}
/**
* Act on field_attach_delete_bundle. This hook is invoked after the field module
* Act on field_attach_delete_bundle. This hook is invoked after the field module
* has performed the operation.
*
* See field_attach_delete_bundle() for details and arguments.
......@@ -580,7 +580,7 @@ function hook_field_storage_delete($obj_type, $object) {
* @param $obj_type
* The entity type of object, such as 'node' or 'user'.
* @param $object
* The object on which to operate. The revision to delete is
* The object on which to operate. The revision to delete is
* indicated by the object's revision id property, as identified by
* hook_fieldable_info() for $obj_type.
*/
......@@ -650,7 +650,7 @@ function hook_field_storage_delete_instance($field_name, $bundle) {
*/
/**
* Act on a field being created. This hook is invoked after the field
* Act on a field being created. This hook is invoked after the field
* is created and so it cannot modify the field itself.
*
* TODO: Not implemented.
......@@ -662,7 +662,7 @@ function hook_field_create_field($field) {
}
/**
* Act on a field instance being created. This hook is invoked after
* Act on a field instance being created. This hook is invoked after
* the instance record is saved and so it cannot modify the instance
* itself.
*
......@@ -673,7 +673,7 @@ function hook_field_create_instance($instance) {
}
/**
* Act on a field being deleted. This hook is invoked just before the
* Act on a field being deleted. This hook is invoked just before the
* field is deleted.
*
* TODO: Not implemented.
......@@ -686,7 +686,7 @@ function hook_field_delete_field($field) {
/**
* Act on a field instance being updated. This hook is invoked after
* Act on a field instance being updated. This hook is invoked after
* the instance record is saved and so it cannot modify the instance
* itself.
*
......@@ -699,7 +699,7 @@ function hook_field_update_instance($instance) {
}
/**
* Act on a field instance being deleted. This hook is invoked just
* Act on a field instance being deleted. This hook is invoked just
* before the instance is deleted.
*
* TODO: Not implemented.
......
<?php
// $Id$
/**
* @file
* Field attach API, allowing objects (nodes, users, ...) to be 'fieldable'.
*/
// TODO D7 : consistency - do field_attach_functions return a value or alter in place ?
// TOTO D7 : consistency - some of these functions process individual fields
......@@ -13,8 +18,8 @@
* Implement a storage engine for Field API data.
*
* The Field Attach API uses the Field Storage API to perform all
* "database access." Each Field Storage API hook function defines a
* primitive database operation such as read, write, or delete. The
* "database access". Each Field Storage API hook function defines a
* primitive database operation such as read, write, or delete. The
* default field storage module, field_sql_storage.module, uses the
* local SQL database to implement these operations, but alternative
* field storage engines can choose to represent the data in SQL
......@@ -44,19 +49,19 @@
* Field Attach API functions generally take $obj_type and $object
* arguments along with additional function-specific arguments.
* $obj_type is the type of the fieldable entity, such as 'node' or
* 'user', and $object is the object itself. An individual object's
* 'user', and $object is the object itself. An individual object's
* bundle, if any, is read from the object's bundle key property
* identified by hook_fieldable_info() for $obj_type.
*
* Fieldable types call Field Attach API functions during their own
* API calls; for example, node_load() calls field_attach_load(). A
* API calls; for example, node_load() calls field_attach_load(). A
* fieldable type may is not required to use all of the Field Attach
* API functions.
*
* Most Field Attach API functions define a corresponding hook
* function that allows any module to act on Field Attach operations
* for any object, and access or modify all the field, form, or
* display data for that object and operation. These all-module hooks
* display data for that object and operation. These all-module hooks
* are distinct from those of the Field Types API, such as
* hook_field_load(), that are only invoked for the module that
* defines a specific field type.
......@@ -186,13 +191,13 @@ function _field_attach_form($obj_type, $object, &$form, $form_state) {
* The type of objects for which to load fields; e.g. 'node' or
* 'user'.
* @param $objects
* An array of objects for which to load fields. The keys for
* An array of objects for which to load fields. The keys for
* primary id and bundle name to load are identified by
* hook_fieldable_info for $obj_type.
* @param $age
* FIELD_LOAD_CURRENT to load the most recent revision for all
* fields, or FIELD_LOAD_REVISION to load the version indicated by
* each object. Defaults to FIELD_LOAD_CURRENT; use
* each object. Defaults to FIELD_LOAD_CURRENT; use
* field_attach_load_revision() instead of passing FIELD_LOAD_REVISION.
* @returns
* On return, the objects in $objects are modified by having the
......@@ -274,7 +279,7 @@ function _field_attach_load($obj_type, $objects, $age = FIELD_LOAD_CURRENT) {
* The type of objects for which to load fields; e.g. 'node' or
* 'user'.
* @param $objects
* An array of objects for which to load fields. The keys for
* An array of objects for which to load fields. The keys for
* primary id, revision id, and bundle name to load are identified by
* hook_fieldable_info for $obj_type.
* @returns
......@@ -292,10 +297,10 @@ function _field_attach_load_revision($obj_type, $objects) {
*
* NOTE: This functionality does not yet exist in its final state.
* Eventually, field validation will occur during field_attach_insert
* or _update which will throw an exception on failure. For now,
* or _update which will throw an exception on failure. For now,
* fieldable entities must call this during their Form API validation
* phase, and field validation will call form_set_error for any
* errors. See http://groups.drupal.org/node/18019.
* errors. See http://groups.drupal.org/node/18019.
*
* @param $obj_type
* The type of $object; e.g. 'node' or 'user'.
......@@ -364,7 +369,7 @@ function _field_attach_presave($obj_type, &$object) {
}
/**
* Save field data for a new object. The passed in object must
* Save field data for a new object. The passed in object must
* already contain its id and (if applicable) revision id attributes.
*
* @param $obj_type
......@@ -415,7 +420,7 @@ function _field_attach_update($obj_type, &$object) {
}
/**
* Delete field data for an existing object. This deletes all
* Delete field data for an existing object. This deletes all
* revisions of field data for the object.
*
* @param $obj_type
......@@ -440,7 +445,7 @@ function _field_attach_delete($obj_type, &$object) {
}
/**
* Delete field data for a single revision of an existing object. The
* Delete field data for a single revision of an existing object. The
* passed object must have a revision id attribute.
*
* @param $obj_type
......@@ -466,7 +471,7 @@ function _field_attach_delete_revision($obj_type, &$object) {
/**
* Generate and return a structured content array tree suitable for
* drupal_render() for all of the fields on an object. The format of
* drupal_render() for all of the fields on an object. The format of
* each field's rendered content depends on the display formatter and
* its settings.
*
......@@ -575,7 +580,7 @@ function _field_attach_rename_bundle($bundle_old, $bundle_new) {
* Notify field.module the a bundle was deleted.
*
* This deletes the data for the field instances as well as the field instances
* themselves. This function actually just marks the data and field instances
* themselves. This function actually just marks the data and field instances
* and deleted, leaving the garbage collection for a separate process, because
* it is not always possible to delete this much data in a single page request
* (particularly since for some field types, the deletion is more than just a
......@@ -600,7 +605,7 @@ function _field_attach_delete_bundle($bundle) {
/**
* Helper function to extract id, vid, and bundle name from an object.
*
*
* @param $obj_type
* The type of $object; e.g. 'node' or 'user'.
* @param $object
......
......@@ -44,13 +44,13 @@ function field_attach_form($obj_type, $object, &$form, $form_state) {
* The type of objects for which to load fields; e.g. 'node' or
* 'user'.
* @param $objects
* An array of objects for which to load fields. The keys for
* An array of objects for which to load fields. The keys for
* primary id and bundle name to load are identified by
* hook_fieldable_info for $obj_type.
* @param $age
* FIELD_LOAD_CURRENT to load the most recent revision for all
* fields, or FIELD_LOAD_REVISION to load the version indicated by
* each object. Defaults to FIELD_LOAD_CURRENT; use
* each object. Defaults to FIELD_LOAD_CURRENT; use
* field_attach_load_revision() instead of passing FIELD_LOAD_REVISION.
* @returns
* On return, the objects in $objects are modified by having the
......@@ -71,7 +71,7 @@ function field_attach_load($obj_type, $objects, $age = FIELD_LOAD_CURRENT) {
* The type of objects for which to load fields; e.g. 'node' or
* 'user'.
* @param $objects
* An array of objects for which to load fields. The keys for
* An array of objects for which to load fields. The keys for
* primary id, revision id, and bundle name to load are identified by
* hook_fieldable_info for $obj_type.
* @returns
......@@ -92,10 +92,10 @@ function field_attach_load_revision($obj_type, $objects) {
*
* NOTE: This functionality does not yet exist in its final state.
* Eventually, field validation will occur during field_attach_insert
* or _update which will throw an exception on failure. For now,
* or _update which will throw an exception on failure. For now,
* fieldable entities must call this during their Form API validation
* phase, and field validation will call form_set_error for any
* errors. See http://groups.drupal.org/node/18019.
* errors. See http://groups.drupal.org/node/18019.
*
* @param $obj_type
* The type of $object; e.g. 'node' or 'user'.
......@@ -152,7 +152,7 @@ function field_attach_presave($obj_type, &$object) {
}
/**
* Save field data for a new object. The passed in object must
* Save field data for a new object. The passed in object must
* already contain its id and (if applicable) revision id attributes.
*
* @param $obj_type
......@@ -183,7 +183,7 @@ function field_attach_update($obj_type, &$object) {
}
/**
* Delete field data for an existing object. This deletes all
* Delete field data for an existing object. This deletes all
* revisions of field data for the object.
*
* @param $obj_type
......@@ -199,7 +199,7 @@ function field_attach_delete($obj_type, &$object) {
}
/**
* Delete field data for a single revision of an existing object. The
* Delete field data for a single revision of an existing object. The
* passed object must have a revision id attribute.
*
* @param $obj_type
......@@ -216,7 +216,7 @@ function field_attach_delete_revision($obj_type, &$object) {
/**
* Generate and return a structured content array tree suitable for
* drupal_render() for all of the fields on an object. The format of
* drupal_render() for all of the fields on an object. The format of
* each field's rendered content depends on the display formatter and
* its settings.
*
......@@ -297,7 +297,7 @@ function field_attach_rename_bundle($bundle_old, $bundle_new) {
* Notify field.module the a bundle was deleted.
*
* This deletes the data for the field instances as well as the field instances
* themselves. This function actually just marks the data and field instances
* themselves. This function actually just marks the data and field instances
* and deleted, leaving the garbage collection for a separate process, because
* it is not always possible to delete this much data in a single page request
* (particularly since for some field types, the deletion is more than just a
......@@ -315,7 +315,7 @@ function field_attach_delete_bundle($bundle) {
/**
* Helper function to extract id, vid, and bundle name from an object.
*
*
* @param $obj_type
* The type of $object; e.g. 'node' or 'user'.
* @param $object
......
......@@ -3,7 +3,7 @@
/**
* @file
* TODO: Fill me in.
* Field CRUD API, handling field and field instance creation and deletion.
*/
/**
......@@ -17,36 +17,36 @@ class FieldException extends Exception {}
* Represent Field API fields and instances.
*
* The Field API defines two primary data structures, Field and
* Instance, and the concept of a Bundle. A Field defines a
* particular type of data that can be attached to objects. A Field
* Instance is a Field attached to a single Bundle. A Bundle is a set
* Instance, and the concept of a Bundle. A Field defines a
* particular type of data that can be attached to objects. A Field
* Instance is a Field attached to a single Bundle. A Bundle is a set
* of fields that are treated as a group by the Field Attach API.
*
* For example, suppose a site administrator wants Article nodes to
* have a subtitle and photo. Using the Field API or some UI module,
* have a subtitle and photo. Using the Field API or some UI module,
* the administrator creates a field named 'subtitle' of type 'text'
* and a field named 'photo' of type 'image'. The administrator
* and a field named 'photo' of type 'image'. The administrator
* (again, via a UI) creates two Field Instances, one attaching the
* field 'subtitle' to the bundle 'article' and one attaching the field
* 'photo' to the bundle 'article'. When the node system uses the
* 'photo' to the bundle 'article'. When the node system uses the
* Field Attach API to load all fields for an Article node, it passes
* the node's content type (which is 'article') as the node's bundle.
* field_attach_load() then loads the 'subtitle' and 'photo' fields
* because they are both attached to the bundle 'article'.
*
* Field objects are (currently) represented as an array of key/value
* pairs. The object properties are:
* pairs. The object properties are:
*
* @param array $field:
* - field_name (string)
* The name of the field. Each field name is unique within Field API.
* The name of the field. Each field name is unique within Field API.
* When a field is attached to an object, the field's data is stored
* in $object->$field_name.
* - type (string)
* The type of the field, such as 'text' or 'image'. Field types
* The type of the field, such as 'text' or 'image'. Field types
* are defined by modules that implement hook_field_into().
* - cardinality (integer)
* The number of values the field can hold. Legal values are any
* The number of values the field can hold. Legal values are any
* positive integer or FIELD_CARDINALITY_UNLIMITED.
* - locked (integer)
* TODO: undefined.
......@@ -56,23 +56,23 @@ class FieldException extends Exception {}
* TRUE if the module that implements the field type is currently
* enabled, FALSE otherwise.
* - deleted (integer, read-only)
* TRUE if this field has been deleted, FALSE otherwise. Deleted
* TRUE if this field has been deleted, FALSE otherwise. Deleted
* fields are ignored by the Field Attach API. This property exists
* because fields can be marked for deletion but only actually
* destroyed by a separate garbage-collection process.
* - columns (array, read-only).
* An array of the Field API columns used to store each value of
* this field. The column list may depend on field settings; it is
* not constant per field type. Field API column specifications are
* this field. The column list may depend on field settings; it is
* not constant per field type. Field API column specifications are
* exactly like Schema API column specifications but, depending on
* the field storage module in use, the name of the column may not
* represent an actual column in an SQL database.
* - settings (array)
* A sub-array of key/value pairs of field-type-specific settings. Each
* A sub-array of key/value pairs of field-type-specific settings. Each
* field type module defines and documents its own field settings.
*
* Field Instance objects are (currently) represented as an array of
* key/value pairs. The object properties are:
* key/value pairs. The object properties are:
*
* @param array $instance:
* - field_name (string)
......@@ -81,15 +81,15 @@ class FieldException extends Exception {}
* The name of the bundle that the field is attached to.
* - label (string)
* A human-readable label for the field when used with this
* bundle. For example, the label will be the title of Form API
* bundle. For example, the label will be the title of Form API
* elements for this instance.
* - description (string)
* A human-readable description for the field when used with this
* bundle. For example, the description will be the help text of
* bundle. For example, the description will be the help text of
* Form API elements for this instance.
* - weight (float)
* The order in which the field should be sorted relative
* to other fields when used with this bundle. The weight affects
* to other fields when used with this bundle. The weight affects
* ordering in both forms (see field_attach_form()) and rendered output
* (see field_attach_view()).
* TODO - this should probably become a context setting so that
......@@ -97,7 +97,7 @@ class FieldException extends Exception {}
* contexts.
* - required (integer)
* TRUE if a value for this field is required when used with this
* bundle, FALSE otherwise. Currently, required-ness is only enforced
* bundle, FALSE otherwise. Currently, required-ness is only enforced
* during Form API operations, not by field_attach_load(),
* field_attach_insert(), or field_attach_update().
* - default_value_function (string)
......@@ -109,13 +109,13 @@ class FieldException extends Exception {}
* only actually destroyed by a separate garbage-collection process.
* - settings (array)
* A sub-array of key/value pairs of field-type-specific instance
* settings. Each field type module defines and documents its own
* settings. Each field type module defines and documents its own
* instance settings.
* - widget (array)
* A sub-array of key/value pairs identifying the Form API input widget
* for the field when used by this bundle.
* - type (string)
* The type of the widget, such as text_textfield. Widget types
* The type of the widget, such as text_textfield. Widget types
* are defined by modules that implement hook_field_widget_info().
* - module (string, read-only)
* The name of the module that implements the widget type.
......@@ -153,18 +153,18 @@ class FieldException extends Exception {}
* Create, update, and delete Field API fields, bundles, and instances.
*
* Modules use this API, often in hook_install(), to create custom
* data structures. UI modules will use it to create a user interface.
* data structures. UI modules will use it to create a user interface.
*
* The Field CRUD API uses
* @link field_structs Field API data structures @endlink.
*/
/**
* Create a field. This function does not bind the field to any
* Create a field. This function does not bind the field to any
* bundle; use field_create_instance for that.
*
* @param $field
* A field structure. The field_name and type properties are required.
* A field structure. The field_name and type properties are required.
* @throw
* FieldException
*/
......@@ -217,7 +217,7 @@ function field_create_field($field) {
}
/**
* Read a single field record directly from the database. Generally,
* Read a single field record directly from the database. Generally,
* you should use the field_info_field() instead.
*
* @param $field_name
......@@ -309,7 +309,7 @@ function field_delete_field($field_name) {
* Creates an instance of a field, binding it to a bundle.
*
* @param $instance
* A field instance structure. The field_name and bundle properties
* A field instance structure. The field_name and bundle properties
* are required.
* @throw
* FieldException
......@@ -351,8 +351,8 @@ function field_create_instance($instance) {
* @param $instance
* An associative array represeting an instance structure. The required
* keys and values are:
* field_name: The name of an existing field.
* bundle: The bundle this field belongs to.
* field_name: The name of an existing field.
* bundle: The bundle this field belongs to.
* Any other properties specified in $instance overwrite the
* existing values for the instance.
* @throw
......@@ -461,7 +461,7 @@ function _field_write_instance($instance, $update = FALSE) {
}
/**
* Read a single instance record directly from the database. Generally,
* Read a single instance record directly from the database. Generally,
* you should use the field_info_instance() instead.
*
* @param $field_name
......@@ -488,7 +488,7 @@ function field_read_instance($field_name, $bundle, $include_additional = array()
* @param $param
* An array of properties to use in selecting a field
* instance. Valid keys include any column of the