mirror of
https://code.mensbeam.com/MensBeam/Arsse.git
synced 2024-12-22 21:22:40 +00:00
Allow multiple date ranges
This commit is contained in:
parent
53ba591720
commit
427bddd3b7
1 changed files with 33 additions and 0 deletions
|
@ -35,7 +35,9 @@ trait ExclusionMembers {
|
||||||
public $articleRange = [null, null];
|
public $articleRange = [null, null];
|
||||||
public $editionRange = [null, null];
|
public $editionRange = [null, null];
|
||||||
public $modifiedRange = [null, null];
|
public $modifiedRange = [null, null];
|
||||||
|
public $modifiedRanges = [];
|
||||||
public $markedRange = [null, null];
|
public $markedRange = [null, null];
|
||||||
|
public $markedRanges = [];
|
||||||
|
|
||||||
protected function cleanIdArray(array $spec, bool $allowZero = false): array {
|
protected function cleanIdArray(array $spec, bool $allowZero = false): array {
|
||||||
$spec = array_values($spec);
|
$spec = array_values($spec);
|
||||||
|
@ -64,6 +66,22 @@ trait ExclusionMembers {
|
||||||
return array_values(array_unique($spec));
|
return array_values(array_unique($spec));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function cleanDateRangeArray(array $spec): array {
|
||||||
|
$spec = array_values($spec);
|
||||||
|
$stop = sizeof($spec);
|
||||||
|
for ($a = 0; $a < $stop; $a++) {
|
||||||
|
if (!is_array($spec[$a]) || sizeof($spec[$a]) !== 2) {
|
||||||
|
unset($spec[$a]);
|
||||||
|
} else {
|
||||||
|
$spec[$a] = ValueInfo::normalize($spec[$a], ValueInfo::T_DATE | ValueInfo::M_ARRAY | ValueInfo::M_DROP);
|
||||||
|
if ($spec[$a] === [null, null]) {
|
||||||
|
unset($spec[$a]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return array_values(array_unique($spec));
|
||||||
|
}
|
||||||
|
|
||||||
public function folder(int $spec = null) {
|
public function folder(int $spec = null) {
|
||||||
return $this->act(__FUNCTION__, func_num_args(), $spec);
|
return $this->act(__FUNCTION__, func_num_args(), $spec);
|
||||||
}
|
}
|
||||||
|
@ -218,6 +236,14 @@ trait ExclusionMembers {
|
||||||
return $this->act(__FUNCTION__, func_num_args(), $spec);
|
return $this->act(__FUNCTION__, func_num_args(), $spec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function modifiedRanges(array $spec) {
|
||||||
|
if (isset($spec)) {
|
||||||
|
$spec = $this->cleanDateRangeArray($spec);
|
||||||
|
}
|
||||||
|
return $this->act(__FUNCTION__, func_num_args(), $spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public function markedRange($start = null, $end = null) {
|
public function markedRange($start = null, $end = null) {
|
||||||
if ($start === null && $end === null) {
|
if ($start === null && $end === null) {
|
||||||
$spec = null;
|
$spec = null;
|
||||||
|
@ -226,4 +252,11 @@ trait ExclusionMembers {
|
||||||
}
|
}
|
||||||
return $this->act(__FUNCTION__, func_num_args(), $spec);
|
return $this->act(__FUNCTION__, func_num_args(), $spec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function markedRanges(array $spec) {
|
||||||
|
if (isset($spec)) {
|
||||||
|
$spec = $this->cleanDateRangeArray($spec);
|
||||||
|
}
|
||||||
|
return $this->act(__FUNCTION__, func_num_args(), $spec);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue