2009-08-19 13:31:14 +00:00
< ? php
/**
* @ file
* Hooks provided by the Field UI module .
*/
/**
2012-03-09 16:23:34 +00:00
* @ addtogroup field_types
2009-08-19 13:31:14 +00:00
* @ {
*/
/**
2010-05-04 16:11:08 +00:00
* Add settings to a field settings form .
2009-08-19 13:31:14 +00:00
*
2010-05-04 16:11:08 +00:00
* Invoked from field_ui_field_settings_form () to allow the module defining the
* field to add global settings ( i . e . settings that do not depend on the bundle
* or instance ) to the field settings form . If the field already has data , only
* include settings that are safe to change .
2009-09-26 15:57:39 +00:00
*
* @ todo : Only the field type module knows which settings will affect the
* field ' s schema , but only the field storage module knows what schema
* changes are permitted once a field already has data . Probably we need an
* easy way for a field type module to ask whether an update to a new schema
* will be allowed without having to build up a fake $prior_field structure
* for hook_field_update_forbid () .
*
2009-08-19 13:31:14 +00:00
* @ param $field
* The field structure being configured .
* @ param $instance
* The instance structure being configured .
2009-09-26 15:57:39 +00:00
* @ param $has_data
2010-05-04 16:11:08 +00:00
* TRUE if the field already has data , FALSE if not .
*
2009-08-19 13:31:14 +00:00
* @ return
* The form definition for the field settings .
*/
2009-09-26 15:57:39 +00:00
function hook_field_settings_form ( $field , $instance , $has_data ) {
2009-08-19 13:31:14 +00:00
$settings = $field [ 'settings' ];
$form [ 'max_length' ] = array (
2012-04-09 18:11:07 +00:00
'#type' => 'number' ,
2009-08-19 13:31:14 +00:00
'#title' => t ( 'Maximum length' ),
'#default_value' => $settings [ 'max_length' ],
'#required' => FALSE ,
2012-04-09 18:11:07 +00:00
'#min' => 1 ,
2009-08-19 13:31:14 +00:00
'#description' => t ( 'The maximum length of the field in characters. Leave blank for an unlimited size.' ),
);
return $form ;
}
/**
2010-05-04 16:11:08 +00:00
* Add settings to an instance field settings form .
*
* Invoked from field_ui_field_edit_form () to allow the module defining the
* field to add settings for a field instance .
2009-08-19 13:31:14 +00:00
*
* @ param $field
* The field structure being configured .
* @ param $instance
* The instance structure being configured .
2013-02-01 16:08:58 +00:00
* @ param array $form_state
* The form state of the ( entire ) configuration form .
2010-05-04 16:11:08 +00:00
*
2009-08-19 13:31:14 +00:00
* @ return
* The form definition for the field instance settings .
*/
2013-02-01 16:08:58 +00:00
function hook_field_instance_settings_form ( $field , $instance , $form_state ) {
2009-08-19 13:31:14 +00:00
$settings = $instance [ 'settings' ];
$form [ 'text_processing' ] = array (
'#type' => 'radios' ,
'#title' => t ( 'Text processing' ),
'#default_value' => $settings [ 'text_processing' ],
'#options' => array (
t ( 'Plain text' ),
2010-01-09 23:15:26 +00:00
t ( 'Filtered text (user selects text format)' ),
2009-08-19 13:31:14 +00:00
),
);
if ( $field [ 'type' ] == 'text_with_summary' ) {
$form [ 'display_summary' ] = array (
'#type' => 'select' ,
'#title' => t ( 'Display summary' ),
'#options' => array (
t ( 'No' ),
t ( 'Yes' ),
),
2011-10-10 01:16:08 +00:00
'#description' => t ( 'Display the summary to allow the user to input a summary value. Hide the summary to automatically fill it with a trimmed portion from the main post.' ),
2009-08-19 13:31:14 +00:00
'#default_value' => ! empty ( $settings [ 'display_summary' ]) ? $settings [ 'display_summary' ] : 0 ,
);
}
return $form ;
}
2012-09-27 03:23:22 +00:00
/**
* Alter the formatter settings form .
*
* @ param $element
* Form array as returned by hook_field_formatter_settings_form () .
* @ param $form_state
* The form state of the ( entire ) configuration form .
* @ param $context
* An associative array with the following elements :
2012-10-14 06:04:15 +00:00
* - formatter : The formatter object .
* - field : The field structure being configured .
* - instance : The instance structure being configured .
* - view_mode : The view mode being configured .
* - form : The ( entire ) configuration form array .
2012-09-27 03:23:22 +00:00
*/
function hook_field_formatter_settings_form_alter ( & $element , & $form_state , $context ) {
2012-10-14 06:04:15 +00:00
// Add a 'mysetting' checkbox to the settings form for 'foo_field' fields.
2012-09-27 03:23:22 +00:00
if ( $context [ 'field' ][ 'type' ] == 'foo_field' ) {
$element [ 'mysetting' ] = array (
'#type' => 'checkbox' ,
'#title' => t ( 'My setting' ),
2012-10-14 06:04:15 +00:00
'#default_value' => $context [ 'formatter' ] -> getSetting ( 'mysetting' ),
2012-09-27 03:23:22 +00:00
);
}
}
/**
* Alter the field formatter settings summary .
*
* @ param $summary
* The summary as returned by hook_field_formatter_settings_summary () .
* @ param $context
* An associative array with the following elements :
2012-10-14 06:04:15 +00:00
* - formatter : The formatter object .
* - field : The field structure being configured .
* - instance : The instance structure being configured .
* - view_mode : The view mode being configured .
2012-09-27 03:23:22 +00:00
*/
function hook_field_formatter_settings_summary_alter ( & $summary , $context ) {
// Append a message to the summary when an instance of foo_field has
// mysetting set to TRUE for the current view mode.
if ( $context [ 'field' ][ 'type' ] == 'foo_field' ) {
2012-10-14 06:04:15 +00:00
if ( $context [ 'formatter' ] -> getSetting ( 'mysetting' )) {
2012-09-27 03:23:22 +00:00
$summary .= '<br />' . t ( 'My setting enabled.' );
}
}
}
2009-08-19 13:31:14 +00:00
/**
2012-05-17 12:58:49 +00:00
* @ } End of " addtogroup field_types " .
2009-08-19 13:31:14 +00:00
*/