diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2013-12-29 20:45:58 -0200 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2013-12-29 20:45:58 -0200 |
commit | 97e689213ff4e829f251af526ed4e796a3cc2b71 (patch) | |
tree | b04d03ec56305041216b72328fc9b5afde27bc76 /mod/dokuwiki/lib/dokuwiki.php | |
parent | 0ab6351abb7a602d96c62b0ad35413c88113a6cf (diff) | |
parent | 69e2d8c5d8732042c9319aef1fdea45a82b63e42 (diff) | |
download | elgg-97e689213ff4e829f251af526ed4e796a3cc2b71.tar.gz elgg-97e689213ff4e829f251af526ed4e796a3cc2b71.tar.bz2 |
Merge branch 'master' into saravea
Conflicts:
.gitmodules
mod/admins
mod/assemblies
mod/audio_html5
mod/beechat
mod/crud
mod/elgg-activitystreams
mod/elggman
mod/elggpg
mod/favorites
mod/federated-objects
mod/friendly_time
mod/group_alias
mod/group_operators
mod/languages
mod/lightpics
mod/openid_client
mod/spotlight
mod/suicide
mod/tasks
mod/videolist
Diffstat (limited to 'mod/dokuwiki/lib/dokuwiki.php')
-rw-r--r-- | mod/dokuwiki/lib/dokuwiki.php | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/mod/dokuwiki/lib/dokuwiki.php b/mod/dokuwiki/lib/dokuwiki.php new file mode 100644 index 000000000..b49e4d4ee --- /dev/null +++ b/mod/dokuwiki/lib/dokuwiki.php @@ -0,0 +1,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); + +} |