"Page mover", "version" => "0.7", "author" => "Starbeamrainbowlabs", "description" => "Adds an action to allow administrators to move pages.", "id" => "page-move", "code" => function() { add_action("move", function() { global $pageindex, $settings, $env; if(!$settings->editing) { exit(page_renderer::render_main("Moving $env->page - error", "

You tried to move $env->page, but editing is disabled on this wiki.

If you wish to move this page, please re-enable editing on this wiki first.

Go back to $env->page.

Nothing has been changed.

")); } if(!$env->is_admin) { exit(page_renderer::render_main("Moving $env->page - Error", "

You tried to move $env->page, but you do not have permission to do that.

You should try logging in as an admin.

")); } if(!isset($_GET["new_name"]) or strlen($_GET["new_name"]) == 0) exit(page_renderer::render_main("Moving $env->page", "

Moving $env->page



")); $new_name = makepathsafe($_GET["new_name"]); $page = $env->page; if(!isset($pageindex->$page)) exit(page_renderer::render_main("Moving $env->page - Error", "

You tried to move $env->page to $new_name, but the page with the name $env->page does not exist in the first place.

Nothing has been changed.

")); if($env->page == $new_name) exit(page_renderer::render_main("Moving $env->page - Error", "

You tried to move $page, but the new name you gave is the same as it's current name.

It is possible that you tried to use some characters in the new name that are not allowed and were removed.

Page names may only contain alphanumeric characters, dashes, and underscores.

")); //move the page in the page index $pageindex->$new_name = new stdClass(); foreach($pageindex->$page as $key => $value) { $pageindex->$new_name->$key = $value; } unset($pageindex->$page); $pageindex->$new_name->filename = $new_name; // If this page has an associated file, then we should move that too if(!empty($pageindex->$new_name->uploadedfile)) { // Update the filepath to point to the description and not the image $pageindex->$new_name->filename = $pageindex->$new_name->filename . ".md"; // Move the file in the pageindex $pageindex->$new_name->uploadedfilepath = $new_name; // Move the file on disk rename($env->storage_prefix . $env->page, $env->storage_prefix . $new_name); } file_put_contents($env->storage_prefix . "pageindex.json", json_encode($pageindex, JSON_PRETTY_PRINT)); //move the page on the disk rename("$env->storage_prefix$env->page.md", "$env->storage_prefix$new_name.md"); exit(page_renderer::render_main("Moving $env->page", "

$env->page has been moved to $new_name successfully.

")); }); } ]); ?>