]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - lib/WikiDB/backend/dumb/BackLinkIter.php
Remove svn:keywords
[SourceForge/phpwiki.git] / lib / WikiDB / backend / dumb / BackLinkIter.php
1 <?php
2
3 require_once 'lib/WikiDB/backend.php';
4
5 /**
6  * This backlink iterator will work with any WikiDB_backend
7  * which has a working get_links(,'links_from') method.
8  *
9  * This is mostly here for testing, 'cause it's slow,slow,slow.
10  */
11 class WikiDB_backend_dumb_BackLinkIter
12 extends WikiDB_backend_iterator
13 {
14     function WikiDB_backend_dumb_BackLinkIter(&$backend, &$all_pages, $pagename) {
15         $this->_pages = $all_pages;
16         $this->_backend = &$backend;
17         $this->_target = $pagename;
18     }
19
20     function next() {
21         while ($page = $this->_pages->next()) {
22             $pagename = $page['pagename'];
23             $links = $this->_backend->get_links($pagename, false);
24             while ($link = $links->next()) {
25                 if ($link['pagename'] == $this->_target) {
26                     $links->free();
27                     return $page;
28                 }
29             }
30         }
31     }
32
33     function free() {
34         $this->_pages->free();
35     }
36 }
37
38 // Local Variables:
39 // mode: php
40 // tab-width: 8
41 // c-basic-offset: 4
42 // c-hanging-comment-ender-p: nil
43 // indent-tabs-mode: nil
44 // End: