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 */
|