diff --git a/includes/fivestar.admin.inc b/includes/fivestar.admin.inc index cf30875..76e1ae1 100644 --- a/includes/fivestar.admin.inc +++ b/includes/fivestar.admin.inc @@ -26,6 +26,13 @@ function fivestar_settings($form, $form_state) { '#description' => t('Separate multiple tags with commas.'), ); + $form['fivestar_author_vote'] = array( + '#type' => 'checkbox', + '#title' => t('Allow author to rate own content'), + '#default_value' => variable_get('fivestar_author_vote', 1), + '#weight' => 10, + ); + $form['#submit'][] ='fivestar_settings_submit'; $form['submit'] = array( @@ -41,4 +48,5 @@ function fivestar_settings_submit($form, &$form_state) { drupal_set_message(t('Your settings have been saved.')); // TODO We could delete all variables for removed tags variable_set('fivestar_tags', $form_state['values']['tags']); + variable_set('fivestar_author_vote', $form_state['values']['fivestar_author_vote']); } diff --git a/includes/fivestar.field.inc b/includes/fivestar.field.inc index 53cda56..0b03131 100644 --- a/includes/fivestar.field.inc +++ b/includes/fivestar.field.inc @@ -448,6 +448,8 @@ 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 +465,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') + && ($entity->uid != $user->uid || variable_get('fivestar_author_vote', 1)) && $display['type'] == 'fivestar_formatter_default' && $display['settings']['expose']) ? TRUE : FALSE; if ($is_form) {