/** * @param string $id * @param FilterStatementInterface[] $classes * @param string[] $data * @param FilterInterface|null $nextFilter */ public function __construct($id, array $classes, array $data, FilterInterface $nextFilter = null) { $statements = []; for ($i = 0; $i <= 5; $i++) { $fieldname = FilterControls::getControl($id, "fieldname{$i}"); $operation = FilterControls::getControl($id, "operation{$i}"); $value = FilterControls::getControl($id, "value{$i}"); if ($fieldname !== "" && $operation !== "" && $value !== "") { $statements[] = new ExcludingFilterStatement($fieldname, $operation, $value, null); } } $feedbackStatements = []; foreach ($statements as $statement) { $fieldname = $statement->getFieldName(); $value = $statement->getCriterion(); $operation = $statement->getCondition(); $feedbackStatement = $fieldname . " " . $operation . " " . $value; $feedbackStatements[] = preg_replace('/[^a-zA-Z0-9 -.]/', '', $feedbackStatement); } if ($feedbackStatements !== []) { $feedbackStatements[] = ' <a href="#" class="search-clear" onclick="athens.search.clearSearch(\'' . trim($id) . '\'); return false;"> Clear </a>'; } $this->feedback = SafeString::fromString(implode(', ', $feedbackStatements)); parent::__construct($id, $classes, $data, $statements, $nextFilter); }
/** * @param string $id * @param string[] $classes * @param array $data * @param FilterStatementInterface[] $statements * @param string $default * @param FilterInterface|null $nextFilter */ public function __construct($id, array $classes, array $data, array $statements, $default, FilterInterface $nextFilter = null) { $this->options = array_keys($statements); $this->default = $default; $selection = FilterControls::getControl($id, "value", $default); $statements = [$statements[$selection]]; parent::__construct($id, $classes, $data, $statements, $nextFilter); }
/** * @param string $id * @param string[] $classes * @param array $data * @param FilterInterface|null $nextFilter */ public function __construct($id, array $classes, array $data, FilterInterface $nextFilter = null) { $statements = []; if (FilterControls::controlIsSet($id, "fieldname") === true) { $fieldName = FilterControls::getControl($id, "fieldname"); $order = FilterControls::getControl($id, "order", FilterStatement::COND_SORT_ASC); $statements[] = new SortingFilterStatement($fieldName, $order, null, null); } parent::__construct($id, $classes, $data, $statements, $nextFilter); }
/** * @param string $id * @param string[] $classes * @param integer $maxPerPage * @param integer $page * @param FilterInterface|null $nextFilter */ public function __construct($id, array $classes, $maxPerPage, $page, FilterInterface $nextFilter = null) { $statements = [new PaginationFilterStatement("", FilterStatement::COND_PAGINATE_BY, $maxPerPage, $page)]; parent::__construct($id, $classes, [], $statements, $nextFilter); }