]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - lib/wikilens/Utils.php
Merge OldTextFormattingRules into TextFormattingRules; rename underscore plugins
[SourceForge/phpwiki.git] / lib / wikilens / Utils.php
1 <?php
2
3 /*
4  * Copyright 2004 Mike Cassano
5  *
6  * This file is part of PhpWiki.
7  *
8  * PhpWiki is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * PhpWiki is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License along
19  * with PhpWiki; if not, write to the Free Software Foundation, Inc.,
20  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21  */
22
23 function addPageTextData($user, $dbi, $new_data, $START_DELIM, $DELIM)
24 {
25     // This is largely lifted from the TranslateText plugin, which performs a
26     // similar set of functions (retrieves a user's homepage, modifies it
27     // progmatically, and saves the changes)
28     $homepage = $user->_HomePagehandle;
29     $transpagename = $homepage->getName();
30     $page = $dbi->getPage($transpagename);
31     $current = $page->getCurrentRevision();
32     $version = $current->getVersion();
33     if ($version) {
34         $text = $current->getPackedContent() . "\n";
35         $meta = $current->_data;
36     } else {
37         $text = '';
38         $meta = array('author' => $user->getId());
39     }
40
41     // add new data to the appropriate line
42     if (preg_match('/^' . preg_quote($START_DELIM) . '/', $text)) {
43         // need multiline modifier to match EOL correctly
44         $text = preg_replace('/(^' . preg_quote($START_DELIM) . '.*)$/m',
45             '$1' . $DELIM . $new_data, $text);
46     } else {
47         // handle case where the line does not yet exist
48         $text .= "\n" . $START_DELIM . $new_data . "\n";
49     }
50
51     // advance version counter, save
52     $page->save($text, $version + 1, $meta);
53 }
54
55 function getMembers($groupName, $dbi, $START_DELIM = false, $DELIM = ",")
56 {
57     if (!$START_DELIM) $START_DELIM = _("Members:");
58     return getPageTextData($groupName, $dbi, $START_DELIM, $DELIM);
59 }
60
61 function getPageTextData($fromUser, $dbi, $START_DELIM, $DELIM)
62 {
63     if (is_object($fromUser))
64         $fromUser = $fromUser->getId();
65     if ($fromUser == "")
66         return "";
67     $userPage = $dbi->getPage($fromUser);
68     $transformed = $userPage->getCurrentRevision();
69     $pageArray = $transformed->getContent();
70     $p = -1;
71     for ($i = 0; $i < count($pageArray); $i++) {
72         if ($pageArray[$i] != "") {
73             if (!((strpos($pageArray[$i], $START_DELIM)) === FALSE)) {
74                 $p = $i;
75                 break;
76             }
77         }
78     }
79     $retArray = array();
80     if ($p >= 0) {
81         $singles = $pageArray[$p];
82         $singles = substr($singles, strpos($singles, $START_DELIM) + strlen($START_DELIM));
83
84         $retArray = explode($DELIM, $singles);
85     }
86     for ($i = 0; $i < count($retArray); $i++) {
87         $retArray[$i] = trim($retArray[$i]);
88     }
89     //$retArray = array_filter($retArray, "notEmptyName");
90     $retArray = array_unique($retArray);
91
92     return $retArray;
93 }
94
95 function notEmptyName($var)
96 {
97     return $var != "";
98 }
99
100 // Local Variables:
101 // mode: php
102 // tab-width: 8
103 // c-basic-offset: 4
104 // c-hanging-comment-ender-p: nil
105 // indent-tabs-mode: nil
106 // End: