function fivestar_field_widget_form in Fivestar 7.2
Implements hook_field_widget_form().
File
- includes/
fivestar.field.inc, line 300 - Provides CCK integration for fivestar module.
Code
function fivestar_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) {
$element['#tree'] = TRUE;
$i18n = function_exists('i18n_field_translate_property');
if ($instance['widget']['type'] == 'fivestar_select' || $instance['widget']['type'] == 'stars' && isset($form['#title']) && $form['#title'] == 'Default value') {
$options = array(
0 => t('No stars'),
);
if (empty($instance['settings']['stars'])) {
$instance['settings']['stars'] = 5;
}
for ($i = 1; $i <= $instance['settings']['stars']; $i++) {
$percentage = ceil($i * 100 / $instance['settings']['stars']);
$options[$percentage] = format_plural($i, '1 star', '@count stars');
}
$element['rating'] = array(
'#type' => 'select',
'#title' => check_plain(isset($instance['label']) ? $i18n ? i18n_field_translate_property($instance, 'label') : t($instance['label']) : FALSE),
'#options' => $options,
'#default_value' => isset($items[$delta]['rating']) ? $items[$delta]['rating'] : NULL,
'#description' => check_plain(isset($instance['description']) ? $i18n ? i18n_field_translate_property($instance, 'description') : t($instance['description']) : FALSE),
'#required' => isset($instance['required']) ? $instance['required'] : FALSE,
);
}
elseif ($instance['widget']['type'] == 'stars') {
$widgets = module_invoke_all('fivestar_widgets');
$active = isset($instance['widget']['settings']['widget']['fivestar_widget']) ? $instance['widget']['settings']['widget']['fivestar_widget'] : 'default';
$widget = array(
'name' => isset($widgets[$active]) ? strtolower($widgets[$active]) : 'default',
'css' => $active,
);
$values = array(
'user' => 0,
'average' => 0,
'count' => 0,
);
$settings = array(
'stars' => $instance['settings']['stars'],
'allow_clear' => !empty($instance['settings']['allow_clear']) ? $instance['settings']['allow_clear'] : FALSE,
'allow_revote' => !empty($instance['settings']['allow_revote']) ? $instance['settings']['allow_revote'] : FALSE,
'allow_ownvote' => !empty($instance['settings']['allow_ownvote']) ? $instance['settings']['allow_ownvote'] : FALSE,
'style' => 'user',
'text' => 'none',
'widget' => $widget,
);
$element['rating'] = array(
'#type' => 'fivestar',
'#title' => check_plain(isset($instance['label']) ? $i18n ? i18n_field_translate_property($instance, 'label') : t($instance['label']) : FALSE),
'#stars' => isset($instance['settings']['stars']) ? $instance['settings']['stars'] : 5,
'#allow_clear' => isset($instance['settings']['allow_clear']) ? $instance['settings']['allow_clear'] : FALSE,
'#allow_revote' => isset($instance['settings']['allow_revote']) ? $instance['settings']['allow_revote'] : FALSE,
'#allow_ownvote' => isset($instance['settings']['allow_ownvote']) ? $instance['settings']['allow_ownvote'] : FALSE,
'#default_value' => isset($items[$delta]['rating']) ? $items[$delta]['rating'] : (isset($instance['default_value'][$delta]['rating']) ? $instance['default_value'][$delta]['rating'] : 0),
'#widget' => $widget,
'#settings' => $settings,
'#values' => $values,
'#description' => check_plain(isset($instance['description']) ? $i18n ? i18n_field_translate_property($instance, 'description') : t($instance['description']) : FALSE),
'#required' => isset($instance['required']) ? $instance['required'] : FALSE,
);
}
return array(
$element,
);
}