<?php /* Plugin Name: Knowledge Space Description: This plugin adds a knowledge space to the website via a shortcode. Version: 1.0 Author: Matthias Konitzny */ $GLOBALS['build'] = 'debug'; function ks_add_graph($atts = []): string { $space_id = kg_get_space_id_from_atts($atts); $div = '<div id="3d-graph"></div>'; // The id "3d-graph" indicates, that the javascript associated with this should automatically be executed $plugin_dir = plugin_dir_url(__FILE__); $script_path = 'build' . DIRECTORY_SEPARATOR . $GLOBALS['build'] . DIRECTORY_SEPARATOR . 'graph.js'; // $script = "<script src='$script_path'></script>"; //wp_enqueue_script('kg-script', $script_path); wp_enqueue_script("ks-display-js", plugins_url($script_path, __FILE__), array('jquery'), false); wp_localize_script( 'ks-display-js', 'ajax_object', array('ajax_url' => admin_url('admin-ajax.php')) ); wp_localize_script("ks-display-js", "space", array('id' => $space_id)); wp_localize_script("ks-display-js", "plugin", array('path' => $plugin_dir)); return $div . $variables; // return $div . $variables . $script; } function ks_echo_graph ($atts = []): void { echo ks_add_graph($atts); } function ks_add_editor($atts = []) { ks_add_editor_dependencies(); $space_id = kg_get_space_id_from_atts($atts); $plugin_dir = plugin_dir_url(__FILE__); wp_localize_script("ks-editor-js", "space", array('id' => $space_id)); wp_localize_script("ks-editor-js", "plugin", array('path' => $plugin_dir)); require_once(__DIR__ . '/editor/editor.php'); } function ks_add_editor_dependencies() { $script_path = 'build' . DIRECTORY_SEPARATOR . $GLOBALS['build'] . DIRECTORY_SEPARATOR . 'graph.js'; // wp_enqueue_script('jquery'); wp_enqueue_script("ks-editor-js", plugins_url($script_path, __FILE__), array('jquery'), false); //wp_register_script("ks-editor-js", plugins_url($script_path, __FILE__), array('jquery'), false); wp_localize_script( 'ks-editor-js', 'ajax_object', array('ajax_url' => admin_url('admin-ajax.php')) ); //wp_enqueue_script("ks-editor-js"); $style_file_version = date("ymd-Gis", filemtime(plugin_dir_path(__FILE__) . "editor/css/editor.css")); wp_enqueue_style("ks-editor-css", plugins_url("editor/css/editor.css", __FILE__), array(), $style_file_version); } function kg_load_css() { $plugin_dir = plugin_dir_url(__FILE__); wp_enqueue_style('kg-style', $plugin_dir . 'kg-style.css'); } function kg_escape_space_id($id) { return str_replace( "\\", "-", str_replace( "/", "-", str_replace(" ", "-", $id) ) ); } function kg_get_space_id_from_atts($atts) { if ($atts != "" && array_key_exists("space", $atts)) { return kg_escape_space_id($atts["space"]); } 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__ . '/datasets/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');