From 75a08edc700e2e7b61651ff8bd276100890ca13d Mon Sep 17 00:00:00 2001
From: Dominik Pfennig <dominik@suma-ev.de>
Date: Thu, 1 Sep 2016 07:52:28 +0200
Subject: [PATCH] =?UTF-8?q?Pagination=20f=C3=BCr=20Onenewspage=20implement?=
 =?UTF-8?q?iert?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/Models/parserSkripte/Onenewspage.php      | 35 ++++++++++++++++++-
 .../parserSkripte/Onenewspagegermany.php      | 35 ++++++++++++++++++-
 app/Models/parserSkripte/Onenewspagevideo.php | 34 +++++++++++++++++-
 3 files changed, 101 insertions(+), 3 deletions(-)

diff --git a/app/Models/parserSkripte/Onenewspage.php b/app/Models/parserSkripte/Onenewspage.php
index 127378be6..1502c9c64 100644
--- a/app/Models/parserSkripte/Onenewspage.php
+++ b/app/Models/parserSkripte/Onenewspage.php
@@ -6,8 +6,10 @@ use App\Models\Searchengine;
 
 class Onenewspage extends Searchengine
 {
-    public $results = [];
+    public $results     = [];
+    public $resultCount = 0;
 
+    private $offset = 0;
     public function __construct(\SimpleXMLElement $engine, \App\MetaGer $metager)
     {
         parent::__construct($engine, $metager);
@@ -38,6 +40,37 @@ class Onenewspage extends Searchengine
                 $this->counter
             );
         }
+        if (count($this->results) > $this->resultCount) {
+            $this->resultCount += count($this->results);
+        }
+
+    }
+
+    public function getLast(\App\MetaGer $metager, $result)
+    {
+        if ($metager->getPage() <= 1) {
+            return;
+        }
+
+        $last              = new Onenewspage(simplexml_load_string($this->engine), $metager);
+        $last->resultCount = $this->resultCount;
+        $last->offset      = $this->offset - $this->resultCount;
+        $last->getString .= "&o=" . $last->offset;
+        $last->hash = md5($last->host . $last->getString . $last->port . $last->name);
+        $this->last = $last;
+    }
+
+    public function getNext(\App\MetaGer $metager, $result)
+    {
+        if (count($this->results) <= 0) {
+            return;
+        }
 
+        $next              = new Onenewspage(simplexml_load_string($this->engine), $metager);
+        $next->resultCount = $this->resultCount;
+        $next->offset      = $this->offset + $this->resultCount;
+        $next->getString .= "&o=" . $next->offset;
+        $next->hash = md5($next->host . $next->getString . $next->port . $next->name);
+        $this->next = $next;
     }
 }
diff --git a/app/Models/parserSkripte/Onenewspagegermany.php b/app/Models/parserSkripte/Onenewspagegermany.php
index 14585dd8f..6426787d1 100644
--- a/app/Models/parserSkripte/Onenewspagegermany.php
+++ b/app/Models/parserSkripte/Onenewspagegermany.php
@@ -7,8 +7,10 @@ use App\Models\Searchengine;
 
 class Onenewspagegermany extends Searchengine
 {
-    public $results = [];
+    public $results     = [];
+    public $resultCount = 0;
 
+    private $offset = 0;
     public function __construct(\SimpleXMLElement $engine, \App\MetaGer $metager)
     {
         parent::__construct($engine, $metager);
@@ -38,6 +40,37 @@ class Onenewspagegermany extends Searchengine
             }
 
         }
+        if (count($this->results) > $this->resultCount) {
+            $this->resultCount += count($this->results);
+        }
+
+    }
+
+    public function getLast(\App\MetaGer $metager, $result)
+    {
+        if ($metager->getPage() <= 1) {
+            return;
+        }
+
+        $last              = new Onenewspagegermany(simplexml_load_string($this->engine), $metager);
+        $last->resultCount = $this->resultCount;
+        $last->offset      = $this->offset - $this->resultCount;
+        $last->getString .= "&o=" . $last->offset;
+        $last->hash = md5($last->host . $last->getString . $last->port . $last->name);
+        $this->last = $last;
+    }
+
+    public function getNext(\App\MetaGer $metager, $result)
+    {
+        if (count($this->results) <= 0) {
+            return;
+        }
 
+        $next              = new Onenewspagegermany(simplexml_load_string($this->engine), $metager);
+        $next->resultCount = $this->resultCount;
+        $next->offset      = $this->offset + $this->resultCount;
+        $next->getString .= "&o=" . $next->offset;
+        $next->hash = md5($next->host . $next->getString . $next->port . $next->name);
+        $this->next = $next;
     }
 }
diff --git a/app/Models/parserSkripte/Onenewspagevideo.php b/app/Models/parserSkripte/Onenewspagevideo.php
index 52414dade..cf70a57eb 100644
--- a/app/Models/parserSkripte/Onenewspagevideo.php
+++ b/app/Models/parserSkripte/Onenewspagevideo.php
@@ -6,8 +6,10 @@ use App\Models\Searchengine;
 
 class Onenewspagevideo extends Searchengine
 {
-    public $results = [];
+    public $results     = [];
+    public $resultCount = 0;
 
+    private $offset = 0;
     public function __construct(\SimpleXMLElement $engine, \App\MetaGer $metager)
     {
         parent::__construct($engine, $metager);
@@ -37,6 +39,36 @@ class Onenewspagevideo extends Searchengine
                 $this->counter
             );
         }
+        if (count($this->results) > $this->resultCount) {
+            $this->resultCount += count($this->results);
+        }
+    }
+
+    public function getLast(\App\MetaGer $metager, $result)
+    {
+        if ($metager->getPage() <= 1) {
+            return;
+        }
+
+        $last              = new Onenewspagevideo(simplexml_load_string($this->engine), $metager);
+        $last->resultCount = $this->resultCount;
+        $last->offset      = $this->offset - $this->resultCount;
+        $last->getString .= "&o=" . $last->offset;
+        $last->hash = md5($last->host . $last->getString . $last->port . $last->name);
+        $this->last = $last;
+    }
+
+    public function getNext(\App\MetaGer $metager, $result)
+    {
+        if (count($this->results) <= 0) {
+            return;
+        }
 
+        $next              = new Onenewspagevideo(simplexml_load_string($this->engine), $metager);
+        $next->resultCount = $this->resultCount;
+        $next->offset      = $this->offset + $this->resultCount;
+        $next->getString .= "&o=" . $next->offset;
+        $next->hash = md5($next->host . $next->getString . $next->port . $next->name);
+        $this->next = $next;
     }
 }
-- 
GitLab