Make page_relationship play friednly for kwiki-seeds in TokenTool, a=chris

Chris Pollett [2022-07-06 21:Jul:th]
Make page_relationship play friednly for kwiki-seeds in TokenTool, a=chris
Filename
src/configs/TokenTool.php
src/models/GroupModel.php
diff --git a/src/configs/TokenTool.php b/src/configs/TokenTool.php
index 5e36d2454..bb36ce918 100644
--- a/src/configs/TokenTool.php
+++ b/src/configs/TokenTool.php
@@ -581,7 +581,7 @@ function makeKwikiEntriesGetSeedSites($locale_tag, $page_count_file,
                     $verticals_model->setPageName(C\ROOT_ID,
                         C\SEARCH_GROUP_ID, mb_strtolower(
                         str_replace("-", " ", $query)), $abstract,
-                        $locale_tag, time(), $query, "");
+                        $locale_tag, time(), $query, "", "", [], false);
                 }
             }
         }
diff --git a/src/models/GroupModel.php b/src/models/GroupModel.php
index c2be75dea..e861e1ef0 100644
--- a/src/models/GroupModel.php
+++ b/src/models/GroupModel.php
@@ -1411,16 +1411,23 @@ class GroupModel extends Model implements MediaConstants
      *     on wiki page that use short syntax
      * @param array $additional_substitutions list of pairs additional wiki
      *      page rewrites to do when parsing wiki pages
+     * @param bool $add_relationship_data whether to add link relationship
+     *      data for this wiki page or not (default add, typically won't
+     *      add for knowledge wiki pages for search results generated by
+     *      configs/TokenTool.php)
      * @return int $page_id id of added or updated page
      */
     public function setPageName($user_id, $group_id, $page_name, $page,
         $locale_tag, $edit_comment, $thread_title, $thread_description,
-        $base_address = "", $additional_substitutions = [])
+        $base_address = "", $additional_substitutions = [],
+        $add_relationship_data = true)
     {
         $db = $this->db;
         $pubdate = time();
         $parser = new WikiParser($base_address, $additional_substitutions);
-        $links_relationships = $parser->fetchLinks($page);
+        if ($add_relationship_data) {
+            $links_relationships = $parser->fetchLinks($page);
+        }
         if ($this->getPageType($page) == 'share') {
             $parsed_page = $page;
         } else {
@@ -1446,6 +1453,14 @@ class GroupModel extends Model implements MediaConstants
             ImpressionModel::initWithDb(C\PUBLIC_USER_ID, $page_id,
                 C\WIKI_IMPRESSION, $db);
         }
+        $sql = "INSERT INTO GROUP_PAGE_HISTORY (PAGE_ID, EDITOR_ID,
+            GROUP_ID, TITLE, PAGE, LOCALE_TAG, PUBDATE, EDIT_COMMENT)
+            VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
+        $result = $db->execute($sql, [$page_id, $user_id, $group_id,
+            $page_name, $page, $locale_tag, $pubdate, $edit_comment]);
+        if (!$add_relationship_data) {
+            return $page_id;
+        }
         $sql = "DELETE FROM GROUP_PAGE_LINK WHERE FROM_ID = ?";
         $db->execute($sql, [$page_id]);
         $template_prefix = "template:";
@@ -1494,11 +1509,6 @@ class GroupModel extends Model implements MediaConstants
                     $linked_page_id]);
             }
         }
-        $sql = "INSERT INTO GROUP_PAGE_HISTORY (PAGE_ID, EDITOR_ID,
-            GROUP_ID, TITLE, PAGE, LOCALE_TAG, PUBDATE, EDIT_COMMENT)
-            VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
-        $result = $db->execute($sql, [$page_id, $user_id, $group_id,
-            $page_name, $page, $locale_tag, $pubdate, $edit_comment]);
         return $page_id;
     }
     /**
ViewGit