From b943682047cb95682a422a9d7d76f9cf89f5834a Mon Sep 17 00:00:00 2001 From: asus Date: Wed, 7 Feb 2024 18:46:28 +0100 Subject: [PATCH] - start a basic plugin that can send code to front - for the moment it send js scripts, css, and variables --- plugins/fipf_wp_plugin/fipf_wp_hooks.php | 40 +++++++++++++++++- plugins/fipf_wp_plugin/scripts/myscript.js | 5 +++ plugins/fipf_wp_plugin/scripts/myscript2.js | 4 ++ plugins/fipf_wp_plugin/scripts/myscript3.js | 5 +++ plugins/fipf_wp_plugin/styles/mystyle.css | 3 ++ plugins/fipf_wp_plugin/utils/add_to_front.php | 42 +++++++++++++++++++ .../utils/{consolelog.php => console_log.php} | 2 +- 7 files changed, 98 insertions(+), 3 deletions(-) create mode 100644 plugins/fipf_wp_plugin/scripts/myscript.js create mode 100644 plugins/fipf_wp_plugin/scripts/myscript2.js create mode 100644 plugins/fipf_wp_plugin/scripts/myscript3.js create mode 100644 plugins/fipf_wp_plugin/styles/mystyle.css create mode 100644 plugins/fipf_wp_plugin/utils/add_to_front.php rename plugins/fipf_wp_plugin/utils/{consolelog.php => console_log.php} (86%) diff --git a/plugins/fipf_wp_plugin/fipf_wp_hooks.php b/plugins/fipf_wp_plugin/fipf_wp_hooks.php index 469a732..d46713b 100644 --- a/plugins/fipf_wp_plugin/fipf_wp_hooks.php +++ b/plugins/fipf_wp_plugin/fipf_wp_hooks.php @@ -8,14 +8,50 @@ Version: 1.1.0 Author URI: */ -include_once(dirname(__FILE__) . '/utils/consolelog.php'); +/* * * * * * * * * * * * * * * * * * * * * * * * + * inclusions + */ + +include_once(dirname(__FILE__) . '/utils/console_log.php'); +include_once(dirname(__FILE__) . '/utils/add_to_front.php'); + + + + +/* * * * * * * * * * * * * * * * * * * * * * * * + * plugin shortcode + */ function main_shortcode() { - consolelog("hello from php"); + # send styles files by name, without extension .css + add_css_to_front( array( + "mystyle", + )); + + # send scripts files by name, without extension .js + add_script_to_front( array( + "myscript", + "myscript2", + "myscript3", + )); + + $myvar_1 = "I am one"; + $myvar_2 = "I am two"; + # maybe a future version of php will allow to + # get the name of a variable : + # https://wiki.php.net/rfc/nameof + # but for now i have to declare both the variable and its name + # (more : https://stackoverflow.com/q/255312/9497573) + add_var_to_front( array( + "myvar_1" => $myvar_1, + "myvar_2" => $myvar_2, + )); } add_shortcode('fipf_wp_plugin', 'main_shortcode'); + ?> + diff --git a/plugins/fipf_wp_plugin/scripts/myscript.js b/plugins/fipf_wp_plugin/scripts/myscript.js new file mode 100644 index 0000000..b0df9fe --- /dev/null +++ b/plugins/fipf_wp_plugin/scripts/myscript.js @@ -0,0 +1,5 @@ + +const title = document.querySelector(".has-text-align-center.wp-block-post-title"); +title.innerHTML = "coucou ;)"; + +console.log("myvar_1: " + myvar_1); diff --git a/plugins/fipf_wp_plugin/scripts/myscript2.js b/plugins/fipf_wp_plugin/scripts/myscript2.js new file mode 100644 index 0000000..9126324 --- /dev/null +++ b/plugins/fipf_wp_plugin/scripts/myscript2.js @@ -0,0 +1,4 @@ + +const title2 = document.querySelector(".wp-block-quote"); +title2.innerHTML = "ho boy !"; + diff --git a/plugins/fipf_wp_plugin/scripts/myscript3.js b/plugins/fipf_wp_plugin/scripts/myscript3.js new file mode 100644 index 0000000..7781cfa --- /dev/null +++ b/plugins/fipf_wp_plugin/scripts/myscript3.js @@ -0,0 +1,5 @@ + +const title3 = document.querySelector(".has-text-align-center.wp-block-post-title"); +title3.innerHTML = "bye bye"; +console.log("myvar_2: " + myvar_2); + diff --git a/plugins/fipf_wp_plugin/styles/mystyle.css b/plugins/fipf_wp_plugin/styles/mystyle.css new file mode 100644 index 0000000..c8f2bc9 --- /dev/null +++ b/plugins/fipf_wp_plugin/styles/mystyle.css @@ -0,0 +1,3 @@ +.has-text-align-center.wp-block-post-title { + border: 1px solid green; +} diff --git a/plugins/fipf_wp_plugin/utils/add_to_front.php b/plugins/fipf_wp_plugin/utils/add_to_front.php new file mode 100644 index 0000000..ff4ee1f --- /dev/null +++ b/plugins/fipf_wp_plugin/utils/add_to_front.php @@ -0,0 +1,42 @@ +, /url/to/file, [depends on], version, media ); + + $previous_file = ''; + foreach ($style_files_arr as $file) { + $file_url = plugin_dir_url(__DIR__).'styles/'.$file.'.css'; + $file_path = plugin_dir_path(__DIR__).'styles/'.$file.'.css'; + $file_version = date("ymd-Gis", filemtime($file_path)); + wp_enqueue_style( $file, $file_url, $previous_file, $file_version, ''); + $previous_file = $file; + } +} + +function add_script_to_front($script_files_arr) { + //wp_enqueue_script(, /url/to/file, [depends on], version, defer? ); + + $previous_file = ''; + foreach ($script_files_arr as $file) { + $file_url = plugin_dir_url(__DIR__).'scripts/'.$file.'.js'; + $file_path = plugin_dir_path(__DIR__).'scripts/'.$file.'.js'; + $file_version = date("ymd-Gis", filemtime($file_path)); + console_log("file_url: " . $file_url); + wp_enqueue_script( $file, $file_url, $previous_file, $file_version, true); + $previous_file = $file; + } + +} + +function add_var_to_front($var_array) { + foreach ($var_array as $key => $var) + { + $js_var = 'const ' . $key . ' = '; + $js_var .= json_encode($var); + $js_var .= ';'; + console_log("in php, js_var: " . $js_var); + wp_add_inline_script('myscript', $js_var, 'before'); + } +} + +?> diff --git a/plugins/fipf_wp_plugin/utils/consolelog.php b/plugins/fipf_wp_plugin/utils/console_log.php similarity index 86% rename from plugins/fipf_wp_plugin/utils/consolelog.php rename to plugins/fipf_wp_plugin/utils/console_log.php index f57b8ce..3b32e03 100644 --- a/plugins/fipf_wp_plugin/utils/consolelog.php +++ b/plugins/fipf_wp_plugin/utils/console_log.php @@ -1,7 +1,7 @@ ' . $js_code . ''; echo $js_code;