shortcode_tag, array($this, 'shortcode_handler')); if (is_admin()){ add_action('admin_head', array($this, 'admin_head')); add_action('admin_enqueue_scripts', array($this , 'admin_enqueue_scripts')); } } /** * shortcode_handler * @param array $atts shortcode attributes * @param string $content shortcode content * @return string */ function shortcode_handler($atts , $content = null){ // Attributes extract( shortcode_atts( array( 'url' => 'no', 'footer' => 'no', 'code' => 'webm', ), $atts ) ); //make sure the panel type is a valid styled type if not revert to wemb $panel_types = array('ogv','webm','mp4'); $type = in_array($type, $panel_types)? $type: 'webm'; //start panel markup $output = '
'; //check if panel has a header if ('no' != $header) $output .= '
'.$header.'
'; //add panel body content and allow shortcode in it $output .= '
'.trim(do_shortcode($content)).'
'; //check if panel has a footer if ('no' != $footer) $output .= ''; //add closing div tag $output .= '
'; //return shortcode output return $output; } /** * 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] = plugins_url('librevideojs/js/mce-button.min.js' , __FILE__ ); 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('bs3_panel_shortcode', plugins_url('librevideojs/css/mce-button.css' , __FILE__)); } }