示例#1
0
 /**
  * @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);
 }
示例#2
0
 /**
  * @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);
 }
示例#3
0
 /**
  * @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);
 }
示例#4
0
 /**
  * @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);
 }