SF.net SVN: phpwiki:[10981] trunk/lib

vargenau--- via phpwiki-checkins <[email protected]> Sat, 05 Feb 2022 17:08:06 +0000
Newsgroups gmane.comp.web.wiki.phpwiki.checkins
Message-ID <[email protected]>
Revision: 10981
          http://sourceforge.net/p/phpwiki/code/10981
Author:   vargenau
Date:     2022-02-05 17:08:06 +0000 (Sat, 05 Feb 2022)
Log Message:
-----------
WantedPages plugin: handle exclude_from argument in lib/plugin/WantedPages.php

Modified Paths:
--------------
    trunk/lib/WikiDB/backend/PDO.php
    trunk/lib/WikiDB/backend/PearDB.php
    trunk/lib/WikiDB/backend/PearDB_ffpgsql.php
    trunk/lib/WikiDB/backend/PearDB_mysqli.php
    trunk/lib/plugin/WantedPages.php

Modified: trunk/lib/WikiDB/backend/PDO.php
===================================================================
--- trunk/lib/WikiDB/backend/PDO.php	2022-02-03 20:03:12 UTC (rev 10980)
+++ trunk/lib/WikiDB/backend/PDO.php	2022-02-05 17:08:06 UTC (rev 10981)
@@ -1078,9 +1078,6 @@
         if ($orderby = $this->sortby($sortby, 'db', array('pagename', 'wantedfrom')))
             $orderby = 'ORDER BY ' . $orderby;
 
-        if ($exclude_from) { // array of pagenames
-            $exclude_from = " AND linked.pagename NOT IN " . $this->_sql_set($exclude_from);
-        }
         if ($exclude) { // array of pagenames
             $exclude = " AND $page_tbl.pagename NOT IN " . $this->_sql_set($exclude);
         }
@@ -1099,7 +1096,6 @@
             . " LEFT JOIN $nonempty_tbl ne ON linked.linkto = ne.id"
             . " WHERE ne.id IS NULL"
             . " AND p.id = linked.linkfrom"
-            . $exclude_from
             . $exclude
             . $orderby;
         if ($limit) {

Modified: trunk/lib/WikiDB/backend/PearDB.php
===================================================================
--- trunk/lib/WikiDB/backend/PearDB.php	2022-02-03 20:03:12 UTC (rev 10980)
+++ trunk/lib/WikiDB/backend/PearDB.php	2022-02-05 17:08:06 UTC (rev 10981)
@@ -881,9 +881,6 @@
         if ($orderby = $this->sortby($sortby, 'db', array('pagename', 'wantedfrom')))
             $orderby = 'ORDER BY ' . $orderby;
 
-        if ($exclude_from) { // array of pagenames
-            $exclude_from = " AND pp.pagename NOT IN " . $this->_sql_set($exclude_from);
-        }
         if ($exclude) { // array of pagenames
             $exclude = " AND p.pagename NOT IN " . $this->_sql_set($exclude);
         }
@@ -894,7 +891,6 @@
             . " LEFT JOIN $nonempty_tbl ne ON linked.linkto = ne.id"
             . " WHERE ne.id IS NULL"
             . " AND p.id = linked.linkfrom"
-            . $exclude_from
             . $exclude
             . $orderby;
         if ($limit) {

Modified: trunk/lib/WikiDB/backend/PearDB_ffpgsql.php
===================================================================
--- trunk/lib/WikiDB/backend/PearDB_ffpgsql.php	2022-02-03 20:03:12 UTC (rev 10980)
+++ trunk/lib/WikiDB/backend/PearDB_ffpgsql.php	2022-02-05 17:08:06 UTC (rev 10981)
@@ -560,8 +560,6 @@
         if ($orderby = $this->sortby($sortby, 'db', array('pagename', 'wantedfrom')))
             $orderby = 'ORDER BY ' . $orderby;
 
-        if ($exclude_from) // array of pagenames
-            $exclude_from = " AND substring(p.pagename from $p) NOT IN " . $this->_sql_set($exclude_from);
         if ($exclude) // array of pagenames
             $exclude = " AND substring(p.pagename from $p) NOT IN " . $this->_sql_set($exclude);
         $sql = "SELECT substring(pp.pagename from $p) AS wantedfrom, substring(p.pagename from $p) AS pagename"
@@ -572,7 +570,6 @@
             . " AND p.id = linked.linkfrom"
             . " AND substring(p.pagename from 0 for $p) = '$page_prefix'"
             . " AND substring(pp.pagename from 0 for $p) = '$page_prefix'"
-            . $exclude_from
             . $exclude
             . $orderby;
         if ($limit) {

Modified: trunk/lib/WikiDB/backend/PearDB_mysqli.php
===================================================================
--- trunk/lib/WikiDB/backend/PearDB_mysqli.php	2022-02-03 20:03:12 UTC (rev 10980)
+++ trunk/lib/WikiDB/backend/PearDB_mysqli.php	2022-02-05 17:08:06 UTC (rev 10981)
@@ -112,8 +112,6 @@
         if ($orderby = $this->sortby($sortby, 'db', array('pagename', 'wantedfrom')))
             $orderby = 'ORDER BY ' . $orderby;
 
-        if ($exclude_from) // array of pagenames
-            $exclude_from = " AND pp.pagename NOT IN " . $this->_sql_set($exclude_from);
         if ($exclude) // array of pagenames
             $exclude = " AND p.pagename NOT IN " . $this->_sql_set($exclude);
 
@@ -124,7 +122,6 @@
             . " LEFT JOIN $nonempty_tbl ne ON (linked.linkto = ne.id)"
             . " WHERE ISNULL(ne.id)"
             . " AND p.id = linked.linkfrom"
-            . $exclude_from
             . $exclude
             . $orderby;
         if ($limit) {

Modified: trunk/lib/plugin/WantedPages.php
===================================================================
--- trunk/lib/plugin/WantedPages.php	2022-02-03 20:03:12 UTC (rev 10980)
+++ trunk/lib/plugin/WantedPages.php	2022-02-05 17:08:06 UTC (rev 10981)
@@ -124,13 +124,15 @@
             while ($row = $wanted_iter->next()) {
                 $wantedfrom = $row['pagename'];
                 $wanted = $row['wantedfrom'];
-                // ignore duplicates:
-                if (empty($pagelist->_wpagelist[$wanted]))
-                    $pagelist->addPage($wanted);
-                if (!isset($pagelist->_wpagelist[$wanted]))
-                    $pagelist->_wpagelist[$wanted][] = $wantedfrom;
-                elseif (!in_array($wantedfrom, $pagelist->_wpagelist[$wanted]))
-                    $pagelist->_wpagelist[$wanted][] = $wantedfrom;
+                if (!in_array($wantedfrom, $exclude_from)) {
+                    // ignore duplicates:
+                    if (empty($pagelist->_wpagelist[$wanted]))
+                        $pagelist->addPage($wanted);
+                    if (!isset($pagelist->_wpagelist[$wanted]))
+                        $pagelist->_wpagelist[$wanted][] = $wantedfrom;
+                    elseif (!in_array($wantedfrom, $pagelist->_wpagelist[$wanted]))
+                        $pagelist->_wpagelist[$wanted][] = $wantedfrom;
+                }
             }
             $wanted_iter->free();
             unset($wanted_iter);

This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.