Skip to content
Snippets Groups Projects
knowledge-space.php 3.49 KiB
Newer Older
<?php

/*
Plugin Name: Knowledge Space
Description: This plugin adds a knowledge space to the website via a shortcode.
Version: 1.0
Author: Matthias Konitzny
*/

function ks_add_graph(): string
{
    $div = '<div id="3d-graph"></div>';
    $plugin_dir = plugin_dir_url(__FILE__);
    //$dataset = $plugin_dir.'datasets/miserables.json';
    $variables = "<script> 
                  var plugin_path = '$plugin_dir';
    $script_path = $plugin_dir.'build'.DIRECTORY_SEPARATOR.$GLOBALS['build'].DIRECTORY_SEPARATOR.'graph.js';
    $script = "<script src='$script_path'></script>";
    //wp_enqueue_script('kg-script', $script_path);

    return $div . $variables. $script;
function ks_add_editor()
{
    ks_add_editor_dependencies();
    require_once(__DIR__.'/editor/editor.php');
Maximilian Giller's avatar
Maximilian Giller committed
{
    wp_enqueue_script('jquery');    // Should be wp_enqueue_script('jquery'), but doesn't work
Maximilian Giller's avatar
Maximilian Giller committed

    ks_enqueue_script('dataset.js');
    ks_enqueue_script('editor/js/manageddata.js');
    ks_enqueue_script('editor/js/graph.js', ["manageddata"]);
    ks_enqueue_script('editor/js/tools/tool.js');
    ks_enqueue_script('editor/js/tools/undotool.js', ["tool"]);
    ks_enqueue_script('editor/js/tools/redotool.js', ["tool"]);
    ks_enqueue_script('editor/js/tools/selecttool.js', ["tool"]);
    ks_enqueue_script('editor/js/tools/collecttool.js', ["tool"]);
    ks_enqueue_script('editor/js/tools/deletetool.js', ["tool"]);
    ks_enqueue_script('editor/js/tools/addnodetool.js', ["tool"]);
    ks_enqueue_script('editor/js/tools/connecttool.js', ["tool"]);
    ks_enqueue_script('editor/js/display.js', []);
    ks_enqueue_script('editor/js/state.js', ["tool", "display"]);
    ks_enqueue_script('editor/js/editor.js', ["state", "graph", "dataset"]);
Maximilian Giller's avatar
Maximilian Giller committed

Maximilian Giller's avatar
Maximilian Giller committed

function ks_enqueue_script($relative_path, $dependencies = array())
{
    $prefix = "ks";
    $type = "script";
    $script_name = end(explode("/", $relative_path));
    $script_name = explode(".", $script_name)[0];
    for ($i = 0; $i < sizeof($dependencies); $i++) {
        $dependencies[$i] = $prefix . "-" . $dependencies[$i] . "-" . $type;
    }
    // Source: https://developer.wordpress.org/reference/functions/wp_enqueue_script/ a comment from Andrija Naglic
    // $file_version = date("ymd-Gis", filemtime(plugin_dir_path(__FILE__) . $relative_path));
    wp_enqueue_script($prefix .  "-" . $script_name . "-" . $type, plugins_url($relative_path, __FILE__), $dependencies, false);
Maximilian Giller's avatar
Maximilian Giller committed
}

function ks_enqueue_style($relative_path, $dependencies = array())
{
    $prefix = "ks";
    $type = "style";
    $style_name = end(explode("/", $relative_path));
    $style_name = explode(".", $style_name)[0];
    for ($i = 0; $i < sizeof($dependencies); $i++) {
        $dependencies[$i] = $prefix . "-" . $dependencies[$i] . "-" . $type;
    }
    // Source: https://developer.wordpress.org/reference/functions/wp_enqueue_script/ a comment from Andrija Naglic
    $file_version = date("ymd-Gis", filemtime(plugin_dir_path(__FILE__) . $relative_path));
    wp_enqueue_style($prefix . "-" . $style_name . "-" . $type, plugins_url($relative_path, __FILE__), $dependencies, $file_version);
}

function kg_load_css()
{
    $plugin_dir = plugin_dir_url(__FILE__);
    wp_enqueue_style('kg-style', $plugin_dir.'kg-style.css');
}

add_action('wp_enqueue_scripts', 'kg_load_css');
add_shortcode('knowledge-space', 'ks_add_graph');
Maximilian Giller's avatar
Maximilian Giller committed
add_shortcode('knowledge-space-editor', 'ks_add_editor');