aboutsummaryrefslogtreecommitdiff
path: root/mod/dokuwiki/lib/dokuwiki.php
blob: b49e4d4ee5a58c389872bcd98a9b0d05271c2ca8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php

function current_dokuwiki_entity($create = true) {
	$page_owner = elgg_get_page_owner_guid();
	$user = elgg_get_logged_in_user_entity();
	//error_log($page_owner->guid);
	//error_log($user->guid);
	if (!$page_owner)
		$page_owner = 0;
	$entities = elgg_get_entities(array('types' => 'object', 'subtypes' => 'dokuwiki', 'limit' => 1, 'owner_guid' => $page_owner));
	if ($entities) {
		$doku = $entities[0];
		return $doku;
	}
	elseif ($user && $create) {
		elgg_set_ignore_access(true);
		$newdoku = new ElggObject();
		$newdoku->access_id = ACCESS_PUBLIC;
		$newdoku->owner_guid = $page_owner;
		$newdoku->subtype = 'dokuwiki';
		$newdoku->container_guid = $page_owner;
		$newdoku->save();
		$acl = array();
			$acl[] = "# acl.auth.php";
			$acl[] = '# <?php exit()?\>';
			$acl[] = "*               @ALL        0";
			$acl[] = "*               @user        1";
			$acl[] = "*               @member        8";
			$acl[] = "*               @admin        16";
			$acl[] = "*               @root        255";
		$newdoku->wiki_acl = implode("\n", $acl)."\n";
		elgg_set_ignore_access(false);
		return $newdoku;
	}
}

function dokuwiki_recurse_copy($src,$dst) {
	$dir = opendir($src);
	@mkdir($dst);
	while(false !== ( $file = readdir($dir)) ) {
	if (( $file != '.' ) && ( $file != '..' )) {
		if ( is_dir($src . '/' . $file) ) {
		dokuwiki_recurse_copy($src . '/' . $file,$dst . '/' . $file);
		}
		else {
		copy($src . '/' . $file,$dst . '/' . $file);
		}
	}
	}
	closedir($dir);
} 

function dokuwiki_create_datafolder($path) {
	if (is_dir($path)) // if it exists must be already created
		return;
	mkdir($path, 0700, true);
	$orig = elgg_get_plugins_path().'dokuwiki/vendors/dokuwiki/data';
	dokuwiki_recurse_copy($orig, $path);
	
}