From 592d324997ef9234cee4dc8ab771d416d183b68d Mon Sep 17 00:00:00 2001
From: Kevin Duret <kduret@centreon.com>
Date: Tue, 7 Nov 2017 10:46:31 +0100
Subject: [PATCH] fix(kb): update migration script to get all pages

---
 .../centreon-knowledge/wikiApi.class.php      | 23 ++++++++++++-------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/www/class/centreon-knowledge/wikiApi.class.php b/www/class/centreon-knowledge/wikiApi.class.php
index 4ebac0aa37..32759cd838 100644
--- a/www/class/centreon-knowledge/wikiApi.class.php
+++ b/www/class/centreon-knowledge/wikiApi.class.php
@@ -266,17 +266,24 @@ class WikiApi
             'format' => 'json',
             'action' => 'query',
             'list' => 'allpages',
-            'aplimit' => '1000'
+            'aplimit' => '10'
         );
 
-        curl_setopt($this->curl, CURLOPT_POSTFIELDS, $postfields);
-        $result = curl_exec($this->curl);
-        $result = json_decode($result);
-
         $pages = array();
-        foreach ($result->query->allpages as $page) {
-            $pages[] = $page->title;
-        }
+        do {
+            curl_setopt($this->curl, CURLOPT_POSTFIELDS, $postfields);
+            $result = curl_exec($this->curl);
+            $result = json_decode($result);
+
+            foreach ($result->query->allpages as $page) {
+                $pages[] = $page->title;
+            }
+
+            // Get next page if exists
+            if (isset($result->{'query-continue'}->allpages->apcontinue)) {
+                $postfields['apfrom'] = $result->{'query-continue'}->allpages->apcontinue;
+            }
+        } while (isset($result->{'query-continue'}->allpages->apcontinue));
 
         return $pages;
     }
-- 
GitLab