SF.net SVN: phpwiki:[11005] trunk/lib/plugin/IncludePages.php

vargenau--- via phpwiki-checkins <[email protected]> Thu, 17 Feb 2022 19:17:24 +0000
Newsgroups gmane.comp.web.wiki.phpwiki.checkins
Message-ID <[email protected]>
Revision: 11005
          http://sourceforge.net/p/phpwiki/code/11005
Author:   vargenau
Date:     2022-02-17 19:17:24 +0000 (Thu, 17 Feb 2022)
Log Message:
-----------
Implement function getWikiPageLinks for lib/plugin/IncludePages.php

Modified Paths:
--------------
    trunk/lib/plugin/IncludePages.php

Modified: trunk/lib/plugin/IncludePages.php
===================================================================
--- trunk/lib/plugin/IncludePages.php	2022-02-16 18:24:08 UTC (rev 11004)
+++ trunk/lib/plugin/IncludePages.php	2022-02-17 19:17:24 UTC (rev 11005)
@@ -46,6 +46,38 @@
         );
     }
 
+    function getWikiPageLinks($argstr, $basepage)
+    {
+        $args = $this->getArgs($argstr);
+        if (is_string($args['exclude']) and !empty($args['exclude'])) {
+            $exclude = explodePageList($args['exclude']);
+        } elseif (is_array($args['exclude'])) {
+            $exclude = $args['exclude'];
+        } else {
+            $exclude = array();
+        }
+        if (is_string($args['pages']) and !empty($args['pages'])) {
+            $pages = explodePageList($args['pages']);
+        } elseif (is_array($args['pages'])) {
+            $pages = $args['pages'];
+        } else {
+            $pages = array();
+        }
+        $pages = array_diff($pages, $exclude);
+        $links = array();
+        global $request;
+        $dbi = $request->_dbi;
+        foreach($pages as $page) {
+            $page_handle = $dbi->getPage($page);
+            $pagelinks = $page_handle->getPageLinks();
+            while ($link_handle = $pagelinks->next()) {
+                $linkname = $link_handle->getName();
+                $links[] = array('linkto' => $linkname);
+            }
+        }
+        return $links;
+    }
+
     /**
      * @param WikiDB $dbi
      * @param string $argstr

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