diff --git a/src/Element/Fivestar.php b/src/Element/Fivestar.php index 18f6a52..3a80b80 100644 --- a/src/Element/Fivestar.php +++ b/src/Element/Fivestar.php @@ -264,10 +264,10 @@ class Fivestar extends FormElement { // Check if user have votes in current entity type. $vote_ids = []; $current_user = \Drupal::currentUser(); - $entity_type = isset($element['#settings']['content_type']) ? $element['#settings']['content_type'] : NULL; - $entity_id = isset($element['#settings']['content_id']) ? $element['#settings']['content_id'] : NULL; + $entity_type = isset($element['#settings']['entity_type']) ? $element['#settings']['entity_type'] : NULL; + $entity_id = isset($element['#settings']['entity_id']) ? $element['#settings']['entity_id'] : NULL; - if (!$entity_type || !$entity_id) { + if ($entity_type && $entity_id) { $vote_ids = \Drupal::entityQuery('vote') ->condition('entity_type', $entity_type) ->condition('entity_id', $entity_id) @@ -276,7 +276,7 @@ class Fivestar extends FormElement { } // If user voted before, return FALSE. - if (empty($vote_ids)) { + if (!empty($vote_ids)) { return FALSE; } diff --git a/src/Form/FivestarForm.php b/src/Form/FivestarForm.php index 449428e..2107d30 100644 --- a/src/Form/FivestarForm.php +++ b/src/Form/FivestarForm.php @@ -62,6 +62,11 @@ class FivestarForm extends FormBase { $field_name = $field_definition->getName(); $voting_is_allowed = (bool) ($field_settings['rated_while'] == 'viewing'); + // Extend display settings by entity_type and id. + $settings = $context['display_settings']; + $settings['entity_type'] = $entity->getEntityTypeId(); + $settings['entity_id'] = $entity->id(); + $form['vote'] = [ '#type' => 'fivestar', '#stars' => $field_settings['stars'], @@ -71,7 +76,7 @@ class FivestarForm extends FormBase { '#widget' => $context['display_settings'], '#default_value' => $entity->get($field_name)->rating, '#values' => $this->resultManager->getResultsByVoteType($entity, $field_settings['vote_type']), - '#settings' => $context['display_settings'], + '#settings' => $settings, '#show_static_result' => !$voting_is_allowed, '#attributes' => [ 'class' => ['vote'],