diff --git a/includes/fivestar.field.inc b/includes/fivestar.field.inc index 53cda56..20d9f5a 100644 --- a/includes/fivestar.field.inc +++ b/includes/fivestar.field.inc @@ -56,6 +56,13 @@ function fivestar_field_settings_form($field, $instance) { '#disabled' => field_has_data($field), ); + $form['can_vote'] = array( + '#type' => 'radios', + '#title' => 'Can a user vote on their own content?', + '#options' => array(1 => t('Yes'), 0 => t('No')), + '#default_value' => isset($field['settings']['can_vote']) ? $field['settings']['can_vote'] : '', + ); + return $form; } @@ -448,6 +455,7 @@ function fivestar_field_formatter_settings_summary($field, $instance, $view_mode * top level item, because Fivestar does not offer multi-value fields. */ function fivestar_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) { + global $user; $element = array(); $settings = $display['settings']; $widgets = module_invoke_all('fivestar_widgets'); @@ -463,6 +471,7 @@ function fivestar_field_formatter_view($entity_type, $entity, $field, $instance, // - Fivestar display setting = "exposed" $is_form = ($instance['widget']['type'] == 'exposed' && user_access('rate content') + && ((isset($field['settings']['can_vote'])&&($field['settings']['can_vote'])) || $entity->uid != $user->uid) && $display['type'] == 'fivestar_formatter_default' && $display['settings']['expose']) ? TRUE : FALSE; if ($is_form) {