aboutsummaryrefslogtreecommitdiff
path: root/mod/dokuwiki/lib/dokuwiki.php
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2013-12-29 20:45:58 -0200
committerSilvio Rhatto <rhatto@riseup.net>2013-12-29 20:45:58 -0200
commit97e689213ff4e829f251af526ed4e796a3cc2b71 (patch)
treeb04d03ec56305041216b72328fc9b5afde27bc76 /mod/dokuwiki/lib/dokuwiki.php
parent0ab6351abb7a602d96c62b0ad35413c88113a6cf (diff)
parent69e2d8c5d8732042c9319aef1fdea45a82b63e42 (diff)
downloadelgg-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.php60
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);
+
+}