From 73ee4462740c0c7d793bb8e0952e34110dfdb78b Mon Sep 17 00:00:00 2001 From: vincent-peugnet Date: Wed, 21 Aug 2019 13:45:28 +0200 Subject: feature : limit query added --- app/class/modelhome.php | 17 ++++++++++++----- app/class/opt.php | 25 +++++++++++++++++++++++-- app/class/user.php | 13 +++++++++++++ app/view/templates/home.php | 30 ++++++++++++++++++++++++++++++ app/view/templates/homemenu.php | 18 ++++++++++++++++-- app/view/templates/homeopt.php | 8 ++++++++ 6 files changed, 102 insertions(+), 9 deletions(-) (limited to 'app') diff --git a/app/class/modelhome.php b/app/class/modelhome.php index 3347edf..c30da44 100644 --- a/app/class/modelhome.php +++ b/app/class/modelhome.php @@ -38,14 +38,17 @@ class Modelhome extends Modelart + /** + * @param array $table + * @param Opt $opt + */ public function table2($table, $opt) { - $listmanager = new Modelart; - $filtertagfilter = $listmanager->filtertagfilter($table, $opt->tagfilter(), $opt->tagcompare()); - $filterauthorfilter = $listmanager->filterauthorfilter($table, $opt->authorfilter(), $opt->authorcompare()); - $filtersecure = $listmanager->filtersecure($table, $opt->secure()); + $filtertagfilter = $this->filtertagfilter($table, $opt->tagfilter(), $opt->tagcompare()); + $filterauthorfilter = $this->filterauthorfilter($table, $opt->authorfilter(), $opt->authorcompare()); + $filtersecure = $this->filtersecure($table, $opt->secure()); $filter = array_intersect($filtertagfilter, $filtersecure, $filterauthorfilter); $table2 = []; @@ -64,7 +67,11 @@ class Modelhome extends Modelart $table2 = $table2invert; } - $listmanager->artlistsort($table2, $opt->sortby(), $opt->order()); + $this->artlistsort($table2, $opt->sortby(), $opt->order()); + + if($opt->limit() !== 0) { + $table2 = array_slice($table2, 0, $opt->limit()); + } return $table2; diff --git a/app/class/opt.php b/app/class/opt.php index 39e2ab8..1cfa299 100644 --- a/app/class/opt.php +++ b/app/class/opt.php @@ -14,6 +14,7 @@ class Opt protected $taglist = []; protected $authorlist = []; protected $invert = 0; + protected $limit= 0; protected $artvarlist; @@ -67,7 +68,7 @@ class Opt public function getall() { - $optlist = ['sortby', 'order', 'secure', 'tagcompare', 'tagfilter', 'authorcompare', 'authorfilter', 'invert']; + $optlist = ['sortby', 'order', 'secure', 'tagcompare', 'tagfilter', 'authorcompare', 'authorfilter', 'limit','invert']; foreach ($optlist as $method) { if (method_exists($this, $method)) { @@ -91,11 +92,14 @@ class Opt public function getadress(string $sortby = '') { - if ($this->sortby() === $sortby) { + if ($this->sortby === $sortby) { $order = $this->order * -1; } else { $order = $this->order; } + if(empty($sortby)) { + $sortby = $this->sortby; + } $adress = '?sortby=' . $sortby; $adress .= '&order=' . $order; $adress .= '&secure=' . $this->secure; @@ -110,6 +114,7 @@ class Opt if ($this->invert == 1) { $adress .= '&invert=1'; } + $adress.= '&limit=' .$this->limit; $adress .= '&submit=filter'; return $adress; @@ -213,6 +218,11 @@ class Opt return $this->artvarlist; } + public function limit() + { + return $this->limit; + } + // __________________________________________________ S E T _____________________________________________ @@ -356,6 +366,17 @@ class Opt } } + public function setlimit($limit) + { + $limit = intval($limit); + if($limit < 0) { + $limit = 0; + } elseif ($limit >= 10000) { + $limit = 9999; + } + $this->limit = $limit; + } + public function setartvarlist(array $artvarlist) { diff --git a/app/class/user.php b/app/class/user.php index 68eed91..2b87d62 100644 --- a/app/class/user.php +++ b/app/class/user.php @@ -12,6 +12,7 @@ class User protected $connectcount = 0; protected $expiredate = false; protected $bookmark = []; + protected $display = ['bookmark' => false]; public function __construct($datas = []) { @@ -120,6 +121,11 @@ class User return $this->bookmark; } + public function display() + { + return $this->display; + } + // _______________________ S E T _______________________ @@ -198,6 +204,13 @@ class User } } + public function setdisplay($display) + { + if(is_array($display)) { + $this->display = $display; + } + } + diff --git a/app/view/templates/home.php b/app/view/templates/home.php index 824d9f3..867baee 100644 --- a/app/view/templates/home.php +++ b/app/view/templates/home.php @@ -181,6 +181,36 @@ + + + display()['bookmark'] && (!empty(Config::bookmark()) || !empty($user->bookmark()))) { ?> + +
+
+

Bookmarks

+
+ Public +
    + $query) { ?> +
  • + +
  • + +
+ id() ?> +
    + bookmark() as $id => $query) { ?> +
  • + +
  • + +
+
+ + + + + insert('footer', ['footer' => $footer]) ?> diff --git a/app/view/templates/homemenu.php b/app/view/templates/homemenu.php index 3ad57ef..46e2308 100644 --- a/app/view/templates/homemenu.php +++ b/app/view/templates/homemenu.php @@ -23,14 +23,28 @@
+

Export database

+

Future feature

-
- Columns +
+ Display -- cgit v1.2.3