function views_rules_plugin_display_rules::iterate_rows in Views Rules 7
Parameters
ViewsRulesIterable $iterable:
Throws
views_rules_iterator_exception If an error occurred while executing the view.
1 call to views_rules_plugin_display_rules::iterate_rows()
- views_rules_plugin_display_rules::execute_iterator in views/
views_rules_plugin_display_rules.inc - Executes the iterator display.
File
- views/
views_rules_plugin_display_rules.inc, line 575 - Configures views for use within Rules.
Class
- views_rules_plugin_display_rules
- Rules display plugin.
Code
function iterate_rows($iterable) {
// Execute view.
$this->view
->execute($this->view->current_display);
// Check display has not failed.
if (!empty($this->build_info['fail'])) {
throw new views_rules_iterator_exception('Failed to build view display.');
}
if (!empty($this->view->build_info['denied'])) {
throw new views_rules_iterator_exception('Access to view display is denied.');
}
// Iterate through results.
if ($variable_info = $this
->get_processed_rules_variable_info(TRUE)) {
$view_variable_info = (array) $this
->get_option('rules_variables');
foreach ($this->view->result as $row_index => $row) {
// Build row data.
$data = array();
if ($this
->uses_fields()) {
foreach ($variable_info as $var_name => $info) {
$option_info = $view_variable_info[$info['view key']];
if (empty($option_info['rendered'])) {
$data[$var_name] = $this->view->style_plugin
->get_field_value($row_index, $info['view key']);
}
else {
$data[$var_name] = $this->view->style_plugin
->get_field($row_index, $info['view key']);
}
}
}
else {
$data[key($variable_info)] = $row->{$this->view->base_field};
}
// Evaluate row.
$iterable
->evaluateRow($data);
}
}
}