From e036751c6edb2d3e5baaf4e9903768666d37c073 Mon Sep 17 00:00:00 2001 From: jorge-vitrubio Date: Thu, 15 Apr 2021 13:48:04 +0200 Subject: [PATCH] arcHIVE plugin files. support for svg --- arcHIVE-wp-plugin.php | 355 +++++++++++++++++++++++++++++++ assets/css/arcHIVE-wp-plugin.css | 32 +++ index.php | 3 + uninstall.php | 23 ++ wpml-config.xml | 27 +++ 5 files changed, 440 insertions(+) create mode 100644 arcHIVE-wp-plugin.php create mode 100644 assets/css/arcHIVE-wp-plugin.css create mode 100644 index.php create mode 100644 uninstall.php create mode 100644 wpml-config.xml diff --git a/arcHIVE-wp-plugin.php b/arcHIVE-wp-plugin.php new file mode 100644 index 0000000..226b471 --- /dev/null +++ b/arcHIVE-wp-plugin.php @@ -0,0 +1,355 @@ +options for arcHIVE website wich do not come by default with Wordpress. +Version: 0.1 +Author URI: https://vitrubio.net/ +Author: jorge - vitrubio.net +License: GPL 3.0 +Date: 2021 04 14 +License URI:https://www.gnu.org/licenses/gpl-3.0.html +Text Domain: arcHIVE_plugin_txtdomain +Domain Path: /languages +*/ + +/* +if ever read this never forget to check +howto write a pluggin by Wordpress.org +https://codex.wordpress.org/Writing_a_Plugin +and the best practices +https://developer.wordpress.org/plugins/plugin-basics/best-practices/ +and some resources +https://themefoundation.com/wordpress-meta-boxes-guide/ +*/ +defined( 'ABSPATH' ) or die( 'No script kiddies please!' ); + + /* * + * Load translation, if it exists + * * * * * * * * * * * * * * * * * * */ + + function arcHIVE_plugin_init() { + $plugin_dir = basename(dirname(__FILE__)); + load_plugin_textdomain( 'arcHIVE_plugin_txtdomain', null, $plugin_dir.'/assets/languages/' ); + } + add_action('plugins_loaded', 'arcHIVE_plugin_init'); + + /* * + * Add mimetypes support: svg + * * * * * * * * * * * * * * * * * * */ + + function arcHIVE_enable_mime_types( $mimes ) { + $mimes['svg'] = 'image/svg+xml'; + return $mimes; + } + add_filter('upload_mimes', 'arcHIVE_enable_mime_types'); + + /* * + * add settings link in pluggin page + * * * * * * * * * * * * * * * * * * */ + // function arcHIVE_plugin_plugin_action_links($links, $file) { + // $this_plugin = basename(plugin_dir_url(__FILE__)) . '/arcHIVE-theme-plugin.php'; + // if($file == $this_plugin) { + // $links[] = '' . __('Settings', 'arcHIVE_plugin_txtdomain') . ''; + // } + // return $links; + // } + // add_filter('plugin_action_links', 'arcHIVE_plugin_plugin_action_links', 10, 2); + // + + + /** + * Registers stylesheet for a custom plugin. + */ +function arcHIVE_wp_plugin_styles_admin() { + add_editor_style( 'assets/css/arcHIVE-wp-plugin.css' ); +} +add_action( 'admin_init', 'arcHIVE_wp_plugin_styles_admin' ); + + /** + * Proper way to enqueue scripts and styles + */ + //function arcHIVE_theme_plugin_styles_public() { + // $this_plugin = basename(plugin_dir_url(__FILE__)); + // wp_enqueue_style( 'arcHIVE-theme-plugin', plugin_dir_url(__FILE__) . 'assets/css/arcHIVE-theme-plugin.css' ); + // // wp_enqueue_script( 'script-name', get_template_directory_uri() . '/js/example.js', array(), '1.0.0', true ); + //} + // + //add_action( 'wp_enqueue_scripts', 'arcHIVE_theme_plugin_styles_public' ); + // + + + /* * + * Custom button in TINYMCE editor for styling + * * * * * * * * * * * * * * * * * * * * * * */ + // as read on + // https://codex.wordpress.org/Plugin_API/Filter_Reference/mce_buttons,_mce_buttons_2,_mce_buttons_3,_mce_buttons_4 + // https://www.wpbeginner.com/wp-tutorials/how-to-add-custom-styles-to-wordpress-visual-editor/ + // https://kinsta.com/blog/wordpress-tinymce-editor/ + // + // + // // Callback function to insert 'styleselect' into the $buttons array + // if ( ! function_exists( 'arcHIVE_mce_buttons' ) ) : + // function arcHIVE_mce_buttons( $buttons ) { + // // array_unshift( $buttons, 'styleselect', 'removeformat' ); + // array_push( $buttons, 'styleselect', 'removeformat' ); + // return $buttons; + // } + // endif; + // // Register our callback to the appropriate filter + // add_filter( 'mce_buttons_2', 'arcHIVE_mce_buttons' ); + // + // // Callback function to filter the MCE settings + // if ( ! function_exists( 'arcHIVE_mce_before_init_insert_formats' ) ) : + // function arcHIVE_mce_before_init_insert_formats( $init_array ) { + // + // // Define the style_formats array + // $style_formats=array( + // + // // Each array child is a format with it's own settings + // array( + // 'title' => 'button', + // 'block' => 'span', + // 'classes' => 'button', + // 'wrapper' => true, + // ), + // array( + // 'title' => 'button secondary', + // 'block' => 'span', + // 'classes' => 'button secondary', + // 'wrapper' => true, + // ), + // array( + // 'title' => 'button hollow', + // 'block' => 'span', + // 'classes' => 'button hollow primary', + // 'wrapper' => true, + // ), + // array( + // 'title' => 'button hollow secondary', + // 'block' => 'span', + // 'classes' => 'button hollow secondary', + // 'wrapper' => true, + // ), + // + // + // ); + // + // // Insert the array, JSON ENCODED, into 'style_formats' + // $init_array['style_formats'] = json_encode( $style_formats ); + // return $init_array; + // } + // endif; + // + // // Attach callback to 'tiny_mce_before_init' + // add_filter( 'tiny_mce_before_init', 'arcHIVE_mce_before_init_insert_formats' ); + // + // function arcHIVE_mce_buttons_3( $buttons ) { + // $buttons[] = 'superscript'; + // $buttons[] = 'subscript'; + // $buttons[] = 'cut' ; + // $buttons[] = 'copy' ; + // $buttons[] = 'paste' ; + // $buttons[] = 'hr' ; + // $buttons[] = 'backcolor' ; + // $buttons[] = 'newdocuement' ; + // $buttons[] = 'formatselect' ; + // $buttons[] = 'fontselect' ; + // $buttons[] = 'fontsizeselect' ; + // $buttons[] = 'styleselect' ; + // return $buttons; + // } + // add_filter( 'mce_buttons_3', 'arcHIVE_mce_buttons_3' ); + + /** + * + * Custom settings page + * * * * * * * * * * * * * * * * * * / + * + * @internal never define functions inside callbacks. + * these functions could be run multiple times; this would result in a fatal error. + * https://developer.wordpress.org/plugins/settings/custom-settings-page/ + */ + + /** + * custom option and settings + */ + // function arcHIVE_settings_init() { + // // register a new setting for "arcHIVE" page + // register_setting( 'arcHIVE_settings', 'arcHIVE_options' ); + // + // // register a new section in the "arcHIVE" page + // add_settings_section( + // 'arcHIVE_section_olderthandate', + // __( 'arcHIVEs Options.', 'arcHIVE_plugin_txtdomain' ), + // 'arcHIVE_section_olderthandate_cb', + // 'arcHIVE_settings' + // ); + // + // // register a new field in the "arcHIVE_section_olderthandate" section, inside the "arcHIVE" page + // add_settings_field( + // 'arcHIVE_field_olderthandate', // as of WP 4.6 this value is used only internally + // // use $args' label_for to populate the id inside the callback + // __( 'Hide content older than...', 'arcHIVE_plugin_txtdomain' ), + // 'arcHIVE_field_olderthandate_cb', + // 'arcHIVE_settings', + // 'arcHIVE_section_olderthandate', + // [ + // 'label_for' => 'arcHIVE_field_olderthandate', + // 'class' => 'arcHIVE_row', + // 'arcHIVE_custom_data' => 'custom', + // ] + // ); + // } + // + +/** + * register our arcHIVE_settings_init to the admin_init action hook + */ + // add_action( 'admin_init', 'arcHIVE_settings_init' ); + +/** + * custom option and settings: + * callback functions + */ + // + // // olderthandate section cb + // + // // section callbacks can accept an $args parameter, which is an array. + // // $args have the following keys defined: title, id, callback. + // // the values are defined at the add_settings_section() function. + // function arcHIVE_section_olderthandate_cb( $args ) { + // ?> + //

+ // + //

+ // . + // // the "class" key value is used for the "class" attribute of the containing the field. + // // you can add custom key value pairs to be used inside your callbacks. + // function arcHIVE_field_olderthandate_cb( $args ) { + // // get the value of the setting we've registered with register_setting() + // $options = get_option( 'arcHIVE_options' ); + // // output the field + // ?> + // + //

+ // number of days from today to the past or the date from wich will be considered old posts. Then the class oldpost will be added to the post and pages so you can apply a css style to your theme.', 'arcHIVE_plugin_txtdomain' ); ?> + //

+ //
+ // + // + //
+ //
+ // + // + //
+ // + // + //

+ // label_for: + //
+ // arcHIVE_custom_data: + //
+ // class: + //
+ // + //
+ // + //

+ // + // + // + //

+ // + //

+ // + //
+ //

+ //
+ // + //
+ //
+ // diff --git a/uninstall.php b/uninstall.php new file mode 100644 index 0000000..9c8534c --- /dev/null +++ b/uninstall.php @@ -0,0 +1,23 @@ +query("DROP TABLE IF EXISTS {$wpdb->prefix}mytable"); + +?> diff --git a/wpml-config.xml b/wpml-config.xml new file mode 100644 index 0000000..ce1ba6d --- /dev/null +++ b/wpml-config.xml @@ -0,0 +1,27 @@ + + + + + + arcHIVE_homehero-checkbox + arcHIVE_post-wysiwygsummary + + + + +