Newer
Older
<?php
/*
Plugin Name: Knowledge Space
Description: A Wordpress-Plugin to display knowledge in a graph-structured way.
Author: Matthias Konitzny, Maximilian Giller, Joscha Rode, Harm Kube
Author URI: https://www.ibr.cs.tu-bs.de
$GLOBALS['build'] = 'debug';
function ks_add_graph($atts = []): string
$div = '<div id="knowledge-space-display"></div>'; // The id "3d-graph" indicates, that the javascript associated with this should automatically be executed

Maximilian Giller
committed
ks_load_styles("frontend.css");
ks_load_styles("vendors.css");
wp_enqueue_script("ks-runtime-js", plugins_url(get_script_path("runtime.js"), __FILE__), array(''), false);
wp_enqueue_script("ks-vendors-js", plugins_url(get_script_path("vendors.js"), __FILE__), array(''), false);
wp_enqueue_script("ks-display-js", plugins_url(get_script_path("frontend.js"), __FILE__), array(''), false);

Maximilian Giller
committed
}
function get_script_path($script_name) {
return 'build' . DIRECTORY_SEPARATOR . $GLOBALS['build'] . DIRECTORY_SEPARATOR . $script_name;
}
function parse_atts($atts)
{
return shortcode_atts(array(
'space' => 'space',
'mode' => 'default'
), $atts);
}
function ks_echo_graph($atts = []): void
{

Maximilian Giller
committed
{
$params = parse_atts($atts);
if ($GLOBALS['build'] == 'debug'){
echo '<pre>';
echo "Shortcode attributes:<br>";
print_r($params);
echo '</pre>';
}
$space_id = kg_get_space_id_from_atts($atts); // TODO: Replace with $params
$plugin_dir = plugin_dir_url(__FILE__);
'ks_global',
array(
'ajax_url' => admin_url('admin-ajax.php'),
'space_id' => $space_id,
'plugin_path' => $plugin_dir,
'mode' => $params['mode']
)
);
}
function ks_add_editor($atts = [])
{
ks_add_editor_dependencies();
ks_localize("ks-editor-js", $atts);
echo '<div id="knowledge-space-editor"></div>';
function ks_add_editor_dependencies()

Maximilian Giller
committed
{
wp_enqueue_script("ks-runtime-js", plugins_url(get_script_path("runtime.js"), __FILE__), array('jquery'), false);
wp_enqueue_script("ks-vendors-js", plugins_url(get_script_path("vendors.js"), __FILE__), array('jquery'), false);
wp_enqueue_script("ks-editor-js", plugins_url(get_script_path("backend.js"), __FILE__), array('jquery'), false);

Maximilian Giller
committed
}
function ks_load_styles($styles_name) {
$styles_path = 'build' . DIRECTORY_SEPARATOR . $GLOBALS['build'] . DIRECTORY_SEPARATOR . $styles_name;
wp_enqueue_style('ks-style-' . $styles_name, plugins_url($styles_path, __FILE__));
{
return str_replace(
"\\",
"-",
str_replace(
"/",
"-",
str_replace(" ", "-", $id)
)
);
}

Maximilian Giller
committed
{
if ($atts != "" && array_key_exists("space", $atts)) {
} else {
return "space";
}
}
add_action('admin_menu', 'kg_editor_admin_add_page');
function kg_editor_admin_add_page()
{
add_menu_page(
'Knowledge Space',
'Knowledge Space',
'edit_plugins',
'knowledge-space',
'ks_echo_graph'
);
add_submenu_page(
'knowledge-space',
'Knowledge Space - Editor',
'Editor',
'edit_plugins',
'knowledge-space-editor',
'ks_add_editor'
);
}
require_once(__DIR__ . "/src/knowledge-space-database.php");
require_once(__DIR__ . '/src/datasets.php');
//add_action('wp_enqueue_scripts', 'kg_load_css');
add_shortcode('knowledge-space', 'ks_add_graph');
add_shortcode('knowledge-space-editor', 'ks_add_editor');