aboutsummaryrefslogtreecommitdiff
path: root/class/class.w.opt.php
diff options
context:
space:
mode:
Diffstat (limited to 'class/class.w.opt.php')
-rw-r--r--class/class.w.opt.php81
1 files changed, 68 insertions, 13 deletions
diff --git a/class/class.w.opt.php b/class/class.w.opt.php
index 684cb09..7164cb7 100644
--- a/class/class.w.opt.php
+++ b/class/class.w.opt.php
@@ -31,7 +31,7 @@ class Opt
}
- public function reset()
+ public function resetall()
{
$varlist = get_class_vars(__class__);
@@ -41,6 +41,53 @@ class Opt
}
}
+ public function reset($var)
+ {
+ $varlist = get_class_vars(__class__);
+ if(in_array($var, $varlist)) {
+ $this->$var = $varlist[$var];
+ }
+ }
+
+ public function submit()
+ {
+ if(isset($_GET['submit'])) {
+ if ($_GET['submit'] == 'reset') {
+ $_SESSION['opt'] = [];
+ } elseif ($_GET['submit'] == 'filter') {
+ $this->getall();
+ }
+ } else {
+ $this->sessionall();
+ }
+ }
+
+ public function getall()
+ {
+ $optlist = ['sortby', 'order', 'secure', 'tagcompare', 'tagfilter', 'invert'];
+
+ foreach ($optlist as $method) {
+ if (method_exists($this, $method)) {
+ if(isset($_GET[$method])) {
+ $setmethod = 'set'. $method;
+ $this->$setmethod($_GET[$method]);
+ } else {
+ $this->reset($method);
+ }
+ $_SESSION['opt'][$method] = $this->$method();
+ }
+ }
+ }
+
+ public function sessionall()
+ {
+ if(isset($_SESSION['opt'])) {
+ $this->hydrate($_SESSION['opt']);
+ }
+ }
+
+
+
// _______________________________________________ G E T _______________________________________________
public function sortby()
@@ -122,8 +169,14 @@ class Opt
public function settagfilter($tagfilter)
{
- if (is_array($tagfilter)) {
- $this->tagfilter = $tagfilter;
+ if (!empty($tagfilter) && is_array($tagfilter)) {
+ $tagfilterverif = [];
+ foreach ($tagfilter as $tag) {
+ if(array_key_exists($tag, $this->taglist)) {
+ $tagfilterverif[] = $tag;
+ }
+ }
+ $this->tagfilter = $tagfilterverif;
}
}
@@ -181,24 +234,26 @@ class Opt
public function settaglist(array $artlist)
{
- $taglist = [];
- foreach ($artlist as $art) {
- foreach ($art->tag('array') as $tag) {
- if (!array_key_exists($tag, $taglist)) {
- $taglist[$tag] = 1;
- } else {
- $taglist[$tag]++;
+ $taglist = [];
+ foreach ($artlist as $art) {
+ foreach ($art->tag('array') as $tag) {
+ if (!array_key_exists($tag, $taglist)) {
+ $taglist[$tag] = 1;
+ } else {
+ $taglist[$tag]++;
+ }
}
}
- }
- $taglistsorted = arsort($taglist);
- $this->taglist = $taglist;
+ $taglistsorted = arsort($taglist);
+ $this->taglist = $taglist;
}
public function setinvert(int $invert)
{
if ($invert == 0 || $invert == 1) {
$this->invert = $invert;
+ } else {
+ $this->invert = 0;
}
}