diff --git a/Reftest.php b/Reftest.php new file mode 100644 index 000000000..511f3452d --- /dev/null +++ b/Reftest.php @@ -0,0 +1,23 @@ +getFilters() as $key => &$value) { + $value = 1; + } + } + + public function &getFilters() + { + return $this->filters; + } +} + +$x = new Test(); +$b =& $x->getFilters(); +$b[1] = 0; +var_dump($b, $x->getFilters());die; diff --git a/modules/monitoring/library/Monitoring/DataView/StatusSummary.php b/modules/monitoring/library/Monitoring/DataView/StatusSummary.php index 6136ac05c..e725f76d1 100644 --- a/modules/monitoring/library/Monitoring/DataView/StatusSummary.php +++ b/modules/monitoring/library/Monitoring/DataView/StatusSummary.php @@ -96,4 +96,31 @@ class StatusSummary extends DataView 'services_unknown_not_checked_on_problem_hosts' ); } + + /** + * {@inheritdoc} + */ + public function getFilterColumns() + { + return array( + 'host', 'host_alias', 'host_display_name', 'host_name', + 'hostgroup', 'hostgroup_alias', 'hostgroup_name', + 'service', 'service_description', 'service_display_name', + 'servicegroup', 'servicegroup_alias', 'servicegroup_name' + ); + } + + /** + * {@inheritdoc} + */ + public function isValidFilterTarget($column) + { + if ($column[0] === '_' + && preg_match('/^_(?:host|service)_/', $column) + ) { + return true; + } else { + return in_array($column, $this->getFilterColumns()); + } + } }