diff options
Diffstat (limited to 'librevideojs/libre-panel.php')
-rw-r--r-- | librevideojs/libre-panel.php | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/librevideojs/libre-panel.php b/librevideojs/libre-panel.php new file mode 100644 index 0000000..329d22e --- /dev/null +++ b/librevideojs/libre-panel.php @@ -0,0 +1,71 @@ +<?php +class librevideojs_panel_shortcode{ + /** + * $shortcode_tag + * holds the name of the shortcode tag + * @var string + */ + public $shortcode_tag = 'librevideojs'; + + /** + * __construct + * class constructor will set the needed filter and action hooks + * + * @param array $args + */ + function __construct($args = array()){ + if (is_admin()){ + add_action('admin_head', array($this, 'admin_head')); + add_action('admin_enqueue_scripts', array($this , 'admin_enqueue_scripts')); + } + } + + /** + * admin_head + * calls your functions into the correct filters + * @return void + */ + function admin_head(){ + // check user permissions + if (!current_user_can('edit_posts') && !current_user_can('edit_pages')){ + return; + } + + // check if WYSIWYG is enabled + if ('true' == get_user_option('rich_editing')){ + add_filter('mce_external_plugins', array($this ,'mce_external_plugins')); + add_filter('mce_buttons', array($this, 'mce_buttons')); + } + } + + /** + * mce_external_plugins + * Adds our tinymce plugin + * @param array $plugin_array + * @return array + */ + function mce_external_plugins($plugin_array){ + $plugin_array[$this->shortcode_tag] = get_bloginfo('template_url') . '/js/mce-button.js'; + return $plugin_array; + } + + /** + * mce_buttons + * Adds our tinymce button + * @param array $buttons + * @return array + */ + function mce_buttons($buttons){ + array_push($buttons, $this->shortcode_tag); + return $buttons; + } + + /** + * admin_enqueue_scripts + * Used to enqueue custom styles + * @return void + */ + function admin_enqueue_scripts(){ + wp_enqueue_style('librevideojs_shortcode', get_bloginfo('template_url') . '/css/mce-button.css'); + } +} |