Skip to content
Snippets Groups Projects
datasets.php 1.88 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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);
    
        echo $space->graph;
    
    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
    
    function ks_update_space() {
    
        // 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) {
    
        // Cleaning up the space id
    
        $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);