annotate modules/field_ui/field_ui.api.php @ 2:b74b41bb73f0

-- Google analytics module
author danieleb <danielebarchiesi@me.com>
date Thu, 22 Aug 2013 17:22:54 +0100
parents ff03f76ab3fe
children
rev   line source
danielebarchiesi@0 1 <?php
danielebarchiesi@0 2
danielebarchiesi@0 3 /**
danielebarchiesi@0 4 * @file
danielebarchiesi@0 5 * Hooks provided by the Field UI module.
danielebarchiesi@0 6 */
danielebarchiesi@0 7
danielebarchiesi@0 8 /**
danielebarchiesi@0 9 * @addtogroup field_types
danielebarchiesi@0 10 * @{
danielebarchiesi@0 11 */
danielebarchiesi@0 12
danielebarchiesi@0 13 /**
danielebarchiesi@0 14 * Add settings to a field settings form.
danielebarchiesi@0 15 *
danielebarchiesi@0 16 * Invoked from field_ui_field_settings_form() to allow the module defining the
danielebarchiesi@0 17 * field to add global settings (i.e. settings that do not depend on the bundle
danielebarchiesi@0 18 * or instance) to the field settings form. If the field already has data, only
danielebarchiesi@0 19 * include settings that are safe to change.
danielebarchiesi@0 20 *
danielebarchiesi@0 21 * @todo: Only the field type module knows which settings will affect the
danielebarchiesi@0 22 * field's schema, but only the field storage module knows what schema
danielebarchiesi@0 23 * changes are permitted once a field already has data. Probably we need an
danielebarchiesi@0 24 * easy way for a field type module to ask whether an update to a new schema
danielebarchiesi@0 25 * will be allowed without having to build up a fake $prior_field structure
danielebarchiesi@0 26 * for hook_field_update_forbid().
danielebarchiesi@0 27 *
danielebarchiesi@0 28 * @param $field
danielebarchiesi@0 29 * The field structure being configured.
danielebarchiesi@0 30 * @param $instance
danielebarchiesi@0 31 * The instance structure being configured.
danielebarchiesi@0 32 * @param $has_data
danielebarchiesi@0 33 * TRUE if the field already has data, FALSE if not.
danielebarchiesi@0 34 *
danielebarchiesi@0 35 * @return
danielebarchiesi@0 36 * The form definition for the field settings.
danielebarchiesi@0 37 */
danielebarchiesi@0 38 function hook_field_settings_form($field, $instance, $has_data) {
danielebarchiesi@0 39 $settings = $field['settings'];
danielebarchiesi@0 40 $form['max_length'] = array(
danielebarchiesi@0 41 '#type' => 'textfield',
danielebarchiesi@0 42 '#title' => t('Maximum length'),
danielebarchiesi@0 43 '#default_value' => $settings['max_length'],
danielebarchiesi@0 44 '#required' => FALSE,
danielebarchiesi@0 45 '#element_validate' => array('element_validate_integer_positive'),
danielebarchiesi@0 46 '#description' => t('The maximum length of the field in characters. Leave blank for an unlimited size.'),
danielebarchiesi@0 47 );
danielebarchiesi@0 48 return $form;
danielebarchiesi@0 49 }
danielebarchiesi@0 50
danielebarchiesi@0 51 /**
danielebarchiesi@0 52 * Add settings to an instance field settings form.
danielebarchiesi@0 53 *
danielebarchiesi@0 54 * Invoked from field_ui_field_edit_form() to allow the module defining the
danielebarchiesi@0 55 * field to add settings for a field instance.
danielebarchiesi@0 56 *
danielebarchiesi@0 57 * @param $field
danielebarchiesi@0 58 * The field structure being configured.
danielebarchiesi@0 59 * @param $instance
danielebarchiesi@0 60 * The instance structure being configured.
danielebarchiesi@0 61 *
danielebarchiesi@0 62 * @return
danielebarchiesi@0 63 * The form definition for the field instance settings.
danielebarchiesi@0 64 */
danielebarchiesi@0 65 function hook_field_instance_settings_form($field, $instance) {
danielebarchiesi@0 66 $settings = $instance['settings'];
danielebarchiesi@0 67
danielebarchiesi@0 68 $form['text_processing'] = array(
danielebarchiesi@0 69 '#type' => 'radios',
danielebarchiesi@0 70 '#title' => t('Text processing'),
danielebarchiesi@0 71 '#default_value' => $settings['text_processing'],
danielebarchiesi@0 72 '#options' => array(
danielebarchiesi@0 73 t('Plain text'),
danielebarchiesi@0 74 t('Filtered text (user selects text format)'),
danielebarchiesi@0 75 ),
danielebarchiesi@0 76 );
danielebarchiesi@0 77 if ($field['type'] == 'text_with_summary') {
danielebarchiesi@0 78 $form['display_summary'] = array(
danielebarchiesi@0 79 '#type' => 'select',
danielebarchiesi@0 80 '#title' => t('Display summary'),
danielebarchiesi@0 81 '#options' => array(
danielebarchiesi@0 82 t('No'),
danielebarchiesi@0 83 t('Yes'),
danielebarchiesi@0 84 ),
danielebarchiesi@0 85 '#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.'),
danielebarchiesi@0 86 '#default_value' => !empty($settings['display_summary']) ? $settings['display_summary'] : 0,
danielebarchiesi@0 87 );
danielebarchiesi@0 88 }
danielebarchiesi@0 89
danielebarchiesi@0 90 return $form;
danielebarchiesi@0 91 }
danielebarchiesi@0 92
danielebarchiesi@0 93 /**
danielebarchiesi@0 94 * Add settings to a widget settings form.
danielebarchiesi@0 95 *
danielebarchiesi@0 96 * Invoked from field_ui_field_edit_form() to allow the module defining the
danielebarchiesi@0 97 * widget to add settings for a widget instance.
danielebarchiesi@0 98 *
danielebarchiesi@0 99 * @param $field
danielebarchiesi@0 100 * The field structure being configured.
danielebarchiesi@0 101 * @param $instance
danielebarchiesi@0 102 * The instance structure being configured.
danielebarchiesi@0 103 *
danielebarchiesi@0 104 * @return
danielebarchiesi@0 105 * The form definition for the widget settings.
danielebarchiesi@0 106 */
danielebarchiesi@0 107 function hook_field_widget_settings_form($field, $instance) {
danielebarchiesi@0 108 $widget = $instance['widget'];
danielebarchiesi@0 109 $settings = $widget['settings'];
danielebarchiesi@0 110
danielebarchiesi@0 111 if ($widget['type'] == 'text_textfield') {
danielebarchiesi@0 112 $form['size'] = array(
danielebarchiesi@0 113 '#type' => 'textfield',
danielebarchiesi@0 114 '#title' => t('Size of textfield'),
danielebarchiesi@0 115 '#default_value' => $settings['size'],
danielebarchiesi@0 116 '#element_validate' => array('element_validate_integer_positive'),
danielebarchiesi@0 117 '#required' => TRUE,
danielebarchiesi@0 118 );
danielebarchiesi@0 119 }
danielebarchiesi@0 120 else {
danielebarchiesi@0 121 $form['rows'] = array(
danielebarchiesi@0 122 '#type' => 'textfield',
danielebarchiesi@0 123 '#title' => t('Rows'),
danielebarchiesi@0 124 '#default_value' => $settings['rows'],
danielebarchiesi@0 125 '#element_validate' => array('element_validate_integer_positive'),
danielebarchiesi@0 126 '#required' => TRUE,
danielebarchiesi@0 127 );
danielebarchiesi@0 128 }
danielebarchiesi@0 129
danielebarchiesi@0 130 return $form;
danielebarchiesi@0 131 }
danielebarchiesi@0 132
danielebarchiesi@0 133
danielebarchiesi@0 134 /**
danielebarchiesi@0 135 * Specify the form elements for a formatter's settings.
danielebarchiesi@0 136 *
danielebarchiesi@0 137 * @param $field
danielebarchiesi@0 138 * The field structure being configured.
danielebarchiesi@0 139 * @param $instance
danielebarchiesi@0 140 * The instance structure being configured.
danielebarchiesi@0 141 * @param $view_mode
danielebarchiesi@0 142 * The view mode being configured.
danielebarchiesi@0 143 * @param $form
danielebarchiesi@0 144 * The (entire) configuration form array, which will usually have no use here.
danielebarchiesi@0 145 * @param $form_state
danielebarchiesi@0 146 * The form state of the (entire) configuration form.
danielebarchiesi@0 147 *
danielebarchiesi@0 148 * @return
danielebarchiesi@0 149 * The form elements for the formatter settings.
danielebarchiesi@0 150 */
danielebarchiesi@0 151 function hook_field_formatter_settings_form($field, $instance, $view_mode, $form, &$form_state) {
danielebarchiesi@0 152 $display = $instance['display'][$view_mode];
danielebarchiesi@0 153 $settings = $display['settings'];
danielebarchiesi@0 154
danielebarchiesi@0 155 $element = array();
danielebarchiesi@0 156
danielebarchiesi@0 157 if ($display['type'] == 'text_trimmed' || $display['type'] == 'text_summary_or_trimmed') {
danielebarchiesi@0 158 $element['trim_length'] = array(
danielebarchiesi@0 159 '#title' => t('Length'),
danielebarchiesi@0 160 '#type' => 'textfield',
danielebarchiesi@0 161 '#size' => 20,
danielebarchiesi@0 162 '#default_value' => $settings['trim_length'],
danielebarchiesi@0 163 '#element_validate' => array('element_validate_integer_positive'),
danielebarchiesi@0 164 '#required' => TRUE,
danielebarchiesi@0 165 );
danielebarchiesi@0 166 }
danielebarchiesi@0 167
danielebarchiesi@0 168 return $element;
danielebarchiesi@0 169
danielebarchiesi@0 170 }
danielebarchiesi@0 171
danielebarchiesi@0 172 /**
danielebarchiesi@0 173 * Return a short summary for the current formatter settings of an instance.
danielebarchiesi@0 174 *
danielebarchiesi@0 175 * If an empty result is returned, the formatter is assumed to have no
danielebarchiesi@0 176 * configurable settings, and no UI will be provided to display a settings
danielebarchiesi@0 177 * form.
danielebarchiesi@0 178 *
danielebarchiesi@0 179 * @param $field
danielebarchiesi@0 180 * The field structure.
danielebarchiesi@0 181 * @param $instance
danielebarchiesi@0 182 * The instance structure.
danielebarchiesi@0 183 * @param $view_mode
danielebarchiesi@0 184 * The view mode for which a settings summary is requested.
danielebarchiesi@0 185 *
danielebarchiesi@0 186 * @return
danielebarchiesi@0 187 * A string containing a short summary of the formatter settings.
danielebarchiesi@0 188 */
danielebarchiesi@0 189 function hook_field_formatter_settings_summary($field, $instance, $view_mode) {
danielebarchiesi@0 190 $display = $instance['display'][$view_mode];
danielebarchiesi@0 191 $settings = $display['settings'];
danielebarchiesi@0 192
danielebarchiesi@0 193 $summary = '';
danielebarchiesi@0 194
danielebarchiesi@0 195 if ($display['type'] == 'text_trimmed' || $display['type'] == 'text_summary_or_trimmed') {
danielebarchiesi@0 196 $summary = t('Length: @chars chars', array('@chars' => $settings['trim_length']));
danielebarchiesi@0 197 }
danielebarchiesi@0 198
danielebarchiesi@0 199 return $summary;
danielebarchiesi@0 200 }
danielebarchiesi@0 201
danielebarchiesi@0 202 /**
danielebarchiesi@0 203 * @} End of "addtogroup field_types".
danielebarchiesi@0 204 */