Hi,

I've submitted a patch https://www.drupal.org/node/3053439 which was committed but resulted in a duplicated condition of the same type.

    if ($view->execute()) {

      /** @var \Drupal\Core\Render\RendererInterface $renderer */
      $renderer = \Drupal::service('renderer');

      /** @var \Drupal\views\ResultRow $resultRow */
      $view_result = $view->result;
      $values      = [];

      foreach ($view_result as $key => $resultRow) {
        if ($view_fields == TRUE) {
          // Inner field array
          $inner_values = [];
          // Building new context for cron
          $output = $renderer->executeInRenderContext(new RenderContext(), function () use ($inner_values, $resultRow, $fields) {
            /** @var \Drupal\views\Plugin\views\field\Field $field */
            foreach ($fields as $field) {
              // Get field ID
              $field_id = $field->field;
              // Get HTML markup
              $html_rended = Markup::create($field->advancedRender($resultRow));
              // Pass extra filter to be sure data is a string
              if(!is_string($html_rended)) {
                $html_rended = $html_rended->__toString();
              }
              // Pass field data to array
              $inner_values[$field_id] = $html_rended;
            }
            return $inner_values;
          });

          $values[$key] = $output;

        } else {

        if ($view_fields == TRUE) {
          // Inner field array
          $inner_values = [];
          // Building new context for cron
          $output = $renderer->executeInRenderContext(new RenderContext(), function () use ($inner_values, $resultRow, $fields) {
            /** @var \Drupal\views\Plugin\views\field\Field $field */
            foreach ($fields as $field) {
              // Get field ID
              $field_id = $field->field;
              // Get HTML markup
              $html_rended = Markup::create($field->advancedRender($resultRow));
              // Pass extra filter to be sure data is a string
              if(!is_string($html_rended)) {
                $html_rended = $html_rended->__toString();
              }
              // Pass field data to array
              $inner_values[$field_id] = $html_rended;
            }
            return $inner_values;
          });

          $values[$key] = $output;

        } else {

          /** @var \Drupal\views\Plugin\views\field\Field $field */
          foreach ($fields as $field) {
            $field_id = $field->field;
            $values[$key][$field_id] = $field->getValue($resultRow);
          }
        }
      }
    }

      $variableObject = new VariableObject($variable->id(), $values, $variable->getType());
    }

Comments

lexsoft created an issue. See original summary.

lexsoft00’s picture

StatusFileSize
new2.66 KB
lexsoft00’s picture

StatusFileSize
new3.96 KB
lexsoft00’s picture

Status: Active » Needs review
lexsoft00’s picture

Title: Patch not applied correctly » Duplicated condition
lexsoft’s picture

Status: Needs review » Reviewed & tested by the community
lexsoft’s picture

Tested this in production for 2 years now.

rcodina’s picture

Status: Reviewed & tested by the community » Fixed

Fixed on a new branch 3.x.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.