- 🇳🇱Netherlands Lendude Amsterdam
Going through old issues.
Closing this since it certainly no longer returns a string, see 🐛 RowPluginBase::render() update docblock. Needs work , it returns an array now. That other issue is about making this clear.
This was observed in changes for
#2008980: Replace theme() with drupal_render() in comment module →
. One of the suggestions was to use parent::render()
from \Drupal\comment\Plugin\views\row\Rss
, which is inherited from RowPluginBase
.
This is the definition of RowPluginBase::render()
:
function render($row) {
return array(
'#theme' => $this->themeFunctions(),
'#view' => $this->view,
'#options' => $this->options,
'#row' => $row,
'#field_alias' => isset($this->field_alias) ? $this->field_alias : '',
);
}
This gives an impression that render() can return render arrays. This was the rationale behind the suggestion. However, this breaks the system.
The analysis is explained in #2008980-20: Replace theme() with drupal_render() in comment module → . The patch which introduced changes to RowPluginBase::render() is at #1811828-77: Use #attached to find the css/js of a view → . This is the code in RowPluginBase::render() before the patch.
function render($row) {
return theme($this->theme_functions(),
array(
'view' => $this->view,
'options' => $this->options,
'row' => $row,
'field_alias' => isset($this->field_alias) ? $this->field_alias : '',
));
}
I currently see two ways to solve this.
drupal_render
instead of the original theme()
call.\Drupal\views\Plugin\views\style\Rss
to support arrays, not just strings. foreach ($this->view->result as $row_index => $row) {
$this->view->row_index = $row_index;
$rows .= $this->view->rowPlugin->render($row);
}
I am inclined towards the second approach as we are moving towards render arrays for passing data around. However, I am not entirely sure what Render API element would be the best fit here. I will post a patch as soon as I figure that out. Meanwhile, please suggest on other methods or solutions.
Closed: outdated
9.5
Last updated
Not all content is available!
It's likely this issue predates Contrib.social: some issue and comment data are missing.
Going through old issues.
Closing this since it certainly no longer returns a string, see 🐛 RowPluginBase::render() update docblock. Needs work , it returns an array now. That other issue is about making this clear.