Current File : /home/kelaby89/cartel.express/wp-content/plugins/trx_addons/components/editor/editor.php |
<?php
/**
* Add buttons in the TinyMCE
*
* @package ThemeREX Addons
* @since v1.1
*/
// Disable direct call
if ( ! defined( 'ABSPATH' ) ) { exit; }
// Define component's subfolder
if ( !defined('TRX_ADDONS_PLUGIN_EDITOR') ) define('TRX_ADDONS_PLUGIN_EDITOR', TRX_ADDONS_PLUGIN_COMPONENTS . 'editor/');
// Add component to the global list
if (!function_exists('trx_addons_editor_add_to_components')) {
add_filter( 'trx_addons_components_list', 'trx_addons_editor_add_to_components' );
function trx_addons_editor_add_to_components($list=array()) {
$list['editor'] = array(
'title' => __('WP Editor extensions', 'trx_addons')
);
return $list;
}
}
// Check if component is enabled
if ( ! function_exists( 'trx_addons_editor_extensions_enable' ) ) {
function trx_addons_editor_extensions_enable() {
static $enable = null;
if ( $enable === null ) {
$enable = trx_addons_components_is_allowed( 'components', 'editor' )
&& apply_filters( 'trx_addons_filter_editor_extensions_enable', true );
}
return $enable;
}
}
// Load required styles and scripts for admin mode
if ( !function_exists( 'trx_addons_editor_load_scripts_admin' ) ) {
add_action("admin_enqueue_scripts", 'trx_addons_editor_load_scripts_admin');
add_action("trx_addons_action_pagebuilder_admin_scripts", 'trx_addons_editor_load_scripts_admin');
function trx_addons_editor_load_scripts_admin() {
if ( trx_addons_editor_extensions_enable() ) {
// Add styles in the WP text editor
if ( ! is_rtl() || ! is_customize_preview() ) {
// Commented, because loading icons is moved down (under the condition)
// add_editor_style( array(
// trx_addons_get_file_url('css/font-icons/css/trx_addons_icons.css'),
// )
// );
if ( is_admin() ) {
if ( ! trx_addons_exists_gutenberg()
|| ! function_exists('trx_addons_gutenberg_is_preview')
|| ! trx_addons_gutenberg_is_preview()
) {
add_editor_style( array(
trx_addons_get_file_url('css/font-icons/css/trx_addons_icons.css'),
trx_addons_get_file_url(TRX_ADDONS_PLUGIN_EDITOR . 'css/trx_addons.editor.css')
)
);
}
}
}
// Add styles to the TrxAddons Options
if ( isset($_REQUEST['page']) && $_REQUEST['page']=='trx_addons_options' ) {
wp_enqueue_style( 'trx_addons-editor', trx_addons_get_file_url(TRX_ADDONS_PLUGIN_EDITOR . 'css/trx_addons.editor.css'), array(), null );
}
}
}
}
// Load required styles and scripts for the frontend
if ( !function_exists( 'trx_addons_editor_load_scripts_front' ) ) {
add_action("wp_enqueue_scripts", 'trx_addons_editor_load_scripts_front', TRX_ADDONS_ENQUEUE_SCRIPTS_PRIORITY);
function trx_addons_editor_load_scripts_front() {
if ( trx_addons_editor_extensions_enable() ) {
if ( trx_addons_is_on( trx_addons_get_option( 'debug_mode' ) ) ) {
wp_enqueue_style( 'trx_addons-editor', trx_addons_get_file_url(TRX_ADDONS_PLUGIN_EDITOR . 'css/trx_addons.editor.css'), array(), null );
}
}
}
}
// Merge editor specific styles into single stylesheet
if ( !function_exists( 'trx_addons_editor_merge_styles' ) ) {
add_filter("trx_addons_filter_merge_styles", 'trx_addons_editor_merge_styles');
function trx_addons_editor_merge_styles($list) {
if ( trx_addons_editor_extensions_enable() ) {
$list[ TRX_ADDONS_PLUGIN_EDITOR . 'css/trx_addons.editor.css' ] = true;
}
return $list;
}
}
// Add vars to the admin scripts
if ( !function_exists( 'trx_addons_editor_localize_script_admin' ) ) {
add_filter("trx_addons_filter_localize_script_admin", 'trx_addons_editor_localize_script_admin');
function trx_addons_editor_localize_script_admin($vars) {
if ( trx_addons_editor_extensions_enable() ) {
$vars['editor_author'] = esc_html__('ThemeREX', 'trx_addons');
$vars['editor_description'] = esc_html__('ThemeREX Addons Buttons', 'trx_addons');
$vars['editor_styleselect_title'] = esc_html__('Extra styles for the selected text', 'trx_addons');
$vars['editor_tooltip_title'] = esc_html__('Add tooltip to the selected text', 'trx_addons');
$vars['editor_tooltip_prompt'] = esc_html__('Enter tooltip text text', 'trx_addons');
$vars['editor_icons_title'] = esc_html__('Insert icon to the caret position', 'trx_addons');
$vars['editor_icons_list'] = trx_addons_get_list_icons_classes();
$vars['editor_text_not_selected'] = esc_html__('First select the letter!', 'trx_addons');
$vars['editor_empty_value'] = esc_html__('Text is empty!', 'trx_addons');
}
return $vars;
}
}
// Init TinyMCE
//--------------------------------------------------------------
if ( !function_exists( 'trx_addons_editor_init' ) ) {
add_filter( 'tiny_mce_before_init', 'trx_addons_editor_init', 1000);
function trx_addons_editor_init( $opt ) {
if ( trx_addons_editor_extensions_enable() ) {
$style_formats = array(
array(
'title' => esc_html__('Headers', 'trx_addons'),
'items' => array(
array(
'title' => esc_html__('No margin', 'trx_addons'),
'selector' => 'h1,h2,h3,h4,h5,h6',
'classes' => 'trx_addons_no_margin'
)
)
),
array(
'title' => esc_html__('Blockquotes', 'trx_addons'),
'items' => array(
array(
'title' => esc_html__('Style 1', 'trx_addons'),
'selector' => 'blockquote',
'classes' => 'trx_addons_blockquote_style_1'
),
array(
'title' => esc_html__('Style 2', 'trx_addons'),
'selector' => 'blockquote',
'classes' => 'trx_addons_blockquote_style_2'
)
)
),
array(
'title' => esc_html__('List styles', 'trx_addons'),
'items' => array(
array(
'title' => esc_html__('Dot', 'trx_addons'),
'selector' => 'ul',
'classes' => 'trx_addons_list_dot'
),
array(
'title' => esc_html__('Custom', 'trx_addons'),
'selector' => 'ul',
'classes' => 'trx_addons_list_custom'
),
array(
'title' => esc_html__('Parameters', 'trx_addons'),
'selector' => 'ul,ol',
'classes' => 'trx_addons_list_parameters'
),
array(
'title' => esc_html__('Success', 'trx_addons'),
'selector' => 'ul',
'classes' => 'trx_addons_list_success'
),
array(
'title' => esc_html__('Error', 'trx_addons'),
'selector' => 'ul',
'classes' => 'trx_addons_list_error'
),
array(
'title' => esc_html__('Info', 'trx_addons'),
'selector' => 'ul',
'classes' => 'trx_addons_list_info'
),
array(
'title' => esc_html__('Plus', 'trx_addons'),
'selector' => 'ul',
'classes' => 'trx_addons_list_plus'
),
array(
'title' => esc_html__('Minus', 'trx_addons'),
'selector' => 'ul',
'classes' => 'trx_addons_list_minus'
),
array(
'title' => esc_html__('Help', 'trx_addons'),
'selector' => 'ul',
'classes' => 'trx_addons_list_help'
),
array(
'title' => esc_html__('Attention', 'trx_addons'),
'selector' => 'ul',
'classes' => 'trx_addons_list_attention'
),
array(
'title' => esc_html__('Success (circled)', 'trx_addons'),
'selector' => 'ul',
'classes' => 'trx_addons_list_success_circled'
),
array(
'title' => esc_html__('Error (circled)', 'trx_addons'),
'selector' => 'ul',
'classes' => 'trx_addons_list_error_circled'
),
array(
'title' => esc_html__('Info (circled)', 'trx_addons'),
'selector' => 'ul',
'classes' => 'trx_addons_list_info_circled'
),
array(
'title' => esc_html__('Plus (circled)', 'trx_addons'),
'selector' => 'ul',
'classes' => 'trx_addons_list_plus_circled'
),
array(
'title' => esc_html__('Minus (circled)', 'trx_addons'),
'selector' => 'ul',
'classes' => 'trx_addons_list_minus_circled'
),
array(
'title' => esc_html__('Help (circled)', 'trx_addons'),
'selector' => 'ul',
'classes' => 'trx_addons_list_help_circled'
),
array(
'title' => esc_html__('Attention (circled)', 'trx_addons'),
'selector' => 'ul',
'classes' => 'trx_addons_list_attention_circled'
),
)
),
array(
'title' => esc_html__('Inline', 'trx_addons'),
'items' => array(
array(
'title' => esc_html__('Accent text', 'trx_addons'),
'inline' => 'span',
'classes' => 'trx_addons_accent'
),
array(
'title' => esc_html__('Accent background', 'trx_addons'),
'inline' => 'span',
'classes' => 'trx_addons_accent_bg'
),
array(
'title' => esc_html__('Dark text', 'trx_addons'),
'inline' => 'span',
'classes' => 'trx_addons_dark'
),
array(
'title' => esc_html__('Inverse text', 'trx_addons'),
'inline' => 'span',
'classes' => 'trx_addons_inverse'
),
array(
'title' => esc_html__('Big font', 'trx_addons'),
'inline' => 'big'
),
array(
'title' => esc_html__('Small font', 'trx_addons'),
'inline' => 'small'
),
array(
'title' => esc_html__('Tiny text', 'trx_addons'),
'inline' => 'span',
'classes' => 'trx_addons_tiny_text'
),
array(
'title' => esc_html__('Dropcap 1', 'trx_addons'),
'inline' => 'span',
'classes' => 'trx_addons_dropcap trx_addons_dropcap_style_1'
),
array(
'title' => esc_html__('Dropcap 2', 'trx_addons'),
'inline' => 'span',
'classes' => 'trx_addons_dropcap trx_addons_dropcap_style_2'
),
)
)
);
/*
array(
'title' => 'Warning Box',
'block' => 'div',
'classes' => 'warning box',
'wrapper' => true
),
array(
'title' => 'Red Uppercase Text',
'inline' => 'span',
'styles' => array(
'color' => '#ff0000',
'fontWeight' => 'bold',
'textTransform' => 'uppercase'
)
)
*/
$opt['style_formats'] = json_encode( apply_filters('trx_addons_filter_tiny_mce_style_formats', $style_formats) );
}
return $opt;
}
}
// Add buttons in array
if ( !function_exists( 'trx_addons_editor_add_buttons' ) ) {
add_filter( 'mce_external_plugins', 'trx_addons_editor_add_buttons', 20 ); // Elementor remove all filters with priority 10
function trx_addons_editor_add_buttons($buttons) {
if ( trx_addons_editor_extensions_enable() ) {
$buttons['trx_addons'] = trx_addons_get_file_url(TRX_ADDONS_PLUGIN_EDITOR . 'js/trx_addons.editor.js');
}
return $buttons;
}
}
// Register buttons in TinyMCE
if ( !function_exists( 'trx_addons_editor_register_buttons' ) ) {
add_filter( 'mce_buttons', 'trx_addons_editor_register_buttons', 20 ); // Elementor remove all filters with priority 10
function trx_addons_editor_register_buttons($buttons) {
if ( trx_addons_editor_extensions_enable() ) {
array_push( $buttons, 'styleselect', 'trx_addons_tooltip', 'trx_addons_icons' );
}
return $buttons;
}
}
// Register buttons 2 in TinyMCE
if ( !function_exists( 'trx_addons_editor_register_buttons_2' ) ) {
add_filter( 'mce_buttons_2', 'trx_addons_editor_register_buttons_2' );
function trx_addons_editor_register_buttons_2($buttons) {
if ( trx_addons_editor_extensions_enable() ) {
array_splice( $buttons, 1, 0, array('sub', 'sup') );
}
return $buttons;
}
}