Newer
Older
require_once(__DIR__ . "/ks-datasets-database.php");
$EMPTY_SPACE = '{"links":[],"nodes":[]}';
add_action("wp_ajax_get_space", "ks_get_space"); // Fires only for logged-in-users
add_action("wp_ajax_nopriv_get_space", 'ks_get_space' ); // Fires for everyone
function ks_get_space() {
$name = ks_escape_space_name($_POST["space"]);
$space = ks_select_space($name);
// If it doesn't exist, create new empty space
if ($space == NULL) {
global $EMPTY_SPACE;
ks_insert_space($name, $EMPTY_SPACE);
$space = ks_select_space($name);
add_action("wp_ajax_list_spaces", "ks_list_spaces"); // Fires only for logged-in-users
function ks_list_spaces() {
$spaces = array();
foreach (ks_select_all_spaces() as $space) {
$spaces[] = $space->name;
}
$payload = array("spaces" => $spaces);
echo json_encode($payload);
wp_die();
}
add_action("wp_ajax_update_space", "ks_update_space"); // Fires only for logged-in-users
//add_action("wp_ajax_nopriv_update_space", 'update_space' ); // Fires for everyone
// Check user capabilities
if (current_user_can("edit_posts")) {
// Use json encoding.
$graph = stripslashes($_POST["graph"]);
$name = ks_escape_space_name($_POST["space"]);
ks_insert_or_update_graph($name, $graph);
wp_die();
} else {
echo "Insufficient permissions!";
}
function ks_escape_space_name($space_name) {
$space_name = str_replace("/", "-", $space_name);
$space_name = str_replace("\\", "-", $space_name);
$space_name = str_replace(".", "-", $space_name);
$space_name = str_replace(";", "-", $space_name);
$space_name = str_replace(":", "-", $space_name);
$space_name = str_replace(",", "-", $space_name);
return strtolower($space_name);