]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - lib/WikiDB/backend/dba.php
rcs_id no longer makes sense with Subversion global version number
[SourceForge/phpwiki.git] / lib / WikiDB / backend / dba.php
1 <?php // rcs_id('$Id$');
2
3 require_once('lib/WikiDB/backend/dbaBase.php');
4 require_once('lib/DbaDatabase.php');
5
6 class WikiDB_backend_dba
7 extends WikiDB_backend_dbaBase
8 {
9     function WikiDB_backend_dba ($dbparams) {
10         $directory = '/tmp';
11         $prefix = 'wiki_';
12         $dba_handler = 'gdbm';
13         $timeout = 20;
14         extract($dbparams);
15         if ($directory) $directory .= "/";
16         $dbfile = $directory . $prefix . 'pagedb' . '.' . $dba_handler;
17
18         // FIXME: error checking.
19         $db = new DbaDatabase($dbfile, false, $dba_handler);
20         $db->set_timeout($timeout);
21         
22         // Workaround for BDB 4.1 bugs
23         if (file_exists($dbfile)) {
24             $mode = 'w';
25         } else {
26             $mode = 'c';
27         }
28         if (!$db->open($mode)) {
29             trigger_error(sprintf(_("%s: Can't open dba database"), $dbfile), E_USER_ERROR);
30             global $request;
31             $request->finish(fmt("%s: Can't open dba database", $dbfile));
32         }
33
34         $this->WikiDB_backend_dbaBase($db);
35     }
36 };
37
38 // (c-file-style: "gnu")
39 // Local Variables:
40 // mode: php
41 // tab-width: 8
42 // c-basic-offset: 4
43 // c-hanging-comment-ender-p: nil
44 // indent-tabs-mode: nil
45 // End:   
46 ?>