filter = $filter; } protected function renderFilter($filter, $level = 0) { $html = ''; $url = Url::fromRequest(); if ($filter instanceof FilterChain) { if ($level === 0) { $op = '
  • )' . $filter->getOperatorName() . ' ('; } else { $op = '
  • ) ' . $filter->getOperatorName() . ' ( '; } $parts = array(); foreach ($filter->filters() as $f) { $parts[] = $this->renderFilter($f, $level + 1); } if (empty($parts)) { return $html; } if ($level === 0) { $html .= ''; } else { $html .= ''; } return $html; } elseif ($filter instanceof FilterExpression) { $u = $url->without($filter->getColumn()); } else { $u = $url . '--'; } $html .= '' . $filter . ' '; return $html; } public function render() { $url = Url::fromRequest(); $view = $this->view(); $html = '
    '; // $html .= $this->renderFilter($this->filter); $editorUrl = clone $url; $editorUrl->setParam('modifyFilter', true); if ($this->filter->isEmpty()) { $title = t('Filter this list'); $txt = $view->icon('plus'); $remove = ''; } else { $txt = t('Filtered'); $title = t('Modify this filter'); $remove = ' ' . $view->icon('cancel') . ''; } $filter = $this->filter->isEmpty() ? '' : ': ' . $this->filter; $html .= ($filter ? '

    ' : ' ') . '' . $txt . '' . $this->shorten($filter, 72) . $remove . ($filter ? '

    ' : ''); return $html; } protected function shorten($string, $length) { if (strlen($string) > $length) { return substr($string, 0, $length) . '...'; } return $string; } }