From cf95dd6f054b91dd91bdf128afa7a276f17ece88 Mon Sep 17 00:00:00 2001 From: Lucas Azevedo Date: Fri, 4 Oct 2024 01:16:18 -0300 Subject: [PATCH 1/5] Improve PHP.net manual search index Improves the search indexes generated by the PHP-Web format by: - Adding short descriptions to entries that lack them - Skipping non-chunk entries (page elements) --- phpdotnet/phd/Package/PHP/Web.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/phpdotnet/phd/Package/PHP/Web.php b/phpdotnet/phd/Package/PHP/Web.php index 320b2c31..67fb02fb 100644 --- a/phpdotnet/phd/Package/PHP/Web.php +++ b/phpdotnet/phd/Package/PHP/Web.php @@ -224,6 +224,28 @@ protected function writeJsonIndex() { $ids = array(); $desc = array(); foreach($this->indexes as $id => $index) { + // Skip indexes that are not chunks + if (!$index["chunk"]) { + continue; + } + + // Handle items with long description but no short description + if (empty($index["sdesc"]) && !empty($index["ldesc"])) { + // Use long desc as short desc + $index["sdesc"] = $index["ldesc"]; + + // Find the parent book and use its long desc + $parentId = $index['parent_id']; + while (isset($this->indexes[$parentId])) { + $parent = $this->indexes[$parentId]; + if ($parent['element'] == 'book') { + $index["ldesc"] = Format::getLongDescription($parent['docbook_id']); + break; + } + $parentId = $parent['parent_id']; + } + } + $ids[] = array($index["sdesc"], $index["filename"], $index["element"]); $desc[$id] = $index["ldesc"]; } From 69229892fbd26ebe2bf786db3628fd84fee5554e Mon Sep 17 00:00:00 2001 From: Lucas Azevedo Date: Sat, 5 Oct 2024 02:29:19 -0300 Subject: [PATCH 2/5] Remove comments --- phpdotnet/phd/Package/PHP/Web.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/phpdotnet/phd/Package/PHP/Web.php b/phpdotnet/phd/Package/PHP/Web.php index 67fb02fb..fa7fd29b 100644 --- a/phpdotnet/phd/Package/PHP/Web.php +++ b/phpdotnet/phd/Package/PHP/Web.php @@ -224,17 +224,13 @@ protected function writeJsonIndex() { $ids = array(); $desc = array(); foreach($this->indexes as $id => $index) { - // Skip indexes that are not chunks if (!$index["chunk"]) { continue; } - // Handle items with long description but no short description if (empty($index["sdesc"]) && !empty($index["ldesc"])) { - // Use long desc as short desc $index["sdesc"] = $index["ldesc"]; - // Find the parent book and use its long desc $parentId = $index['parent_id']; while (isset($this->indexes[$parentId])) { $parent = $this->indexes[$parentId]; From e3fb93a62a03941b81898a35b2ffc9ab067a0d25 Mon Sep 17 00:00:00 2001 From: Lucas Azevedo Date: Sat, 5 Oct 2024 02:45:18 -0300 Subject: [PATCH 3/5] Add comment explaining isset usage --- phpdotnet/phd/Package/PHP/Web.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/phpdotnet/phd/Package/PHP/Web.php b/phpdotnet/phd/Package/PHP/Web.php index fa7fd29b..b3183b23 100644 --- a/phpdotnet/phd/Package/PHP/Web.php +++ b/phpdotnet/phd/Package/PHP/Web.php @@ -232,6 +232,8 @@ protected function writeJsonIndex() { $index["sdesc"] = $index["ldesc"]; $parentId = $index['parent_id']; + // isset() to guard against undefined array keys, either for root + // elements (no parent) or in case the index structure is broken. while (isset($this->indexes[$parentId])) { $parent = $this->indexes[$parentId]; if ($parent['element'] == 'book') { From 83b37dfc599e1fc736cfb8a58090f4c038d5c6ba Mon Sep 17 00:00:00 2001 From: Lucas Azevedo Date: Sat, 5 Oct 2024 02:53:39 -0300 Subject: [PATCH 4/5] Prefer identity comparison over equality Co-authored-by: Kamil Tekiela --- phpdotnet/phd/Package/PHP/Web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpdotnet/phd/Package/PHP/Web.php b/phpdotnet/phd/Package/PHP/Web.php index b3183b23..9faca61d 100644 --- a/phpdotnet/phd/Package/PHP/Web.php +++ b/phpdotnet/phd/Package/PHP/Web.php @@ -236,7 +236,7 @@ protected function writeJsonIndex() { // elements (no parent) or in case the index structure is broken. while (isset($this->indexes[$parentId])) { $parent = $this->indexes[$parentId]; - if ($parent['element'] == 'book') { + if ($parent['element'] === 'book') { $index["ldesc"] = Format::getLongDescription($parent['docbook_id']); break; } From ba87ca69a3b59b30eb3d877622b28aac225d3787 Mon Sep 17 00:00:00 2001 From: Lucas Azevedo Date: Sat, 5 Oct 2024 19:03:50 -0300 Subject: [PATCH 5/5] Remove unnecessary use of empty --- phpdotnet/phd/Package/PHP/Web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpdotnet/phd/Package/PHP/Web.php b/phpdotnet/phd/Package/PHP/Web.php index 9faca61d..64e6631a 100644 --- a/phpdotnet/phd/Package/PHP/Web.php +++ b/phpdotnet/phd/Package/PHP/Web.php @@ -228,7 +228,7 @@ protected function writeJsonIndex() { continue; } - if (empty($index["sdesc"]) && !empty($index["ldesc"])) { + if ($index["sdesc"] === "" && $index["ldesc"] !== "") { $index["sdesc"] = $index["ldesc"]; $parentId = $index['parent_id'];