Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-conte.../themes/Divi/includes/builder
File: functions.php
}
[8000] Fix | Delete
endif;
[8001] Fix | Delete
[8002] Fix | Delete
if ( ! function_exists( 'et_delete_post_video' ) ) :
[8003] Fix | Delete
/*
[8004] Fix | Delete
* Removes the first video shortcode from content on single pages since it is displayed
[8005] Fix | Delete
* at the top of the page. This will also remove the video shortcode url from archive pages content
[8006] Fix | Delete
*/
[8007] Fix | Delete
function et_delete_post_video( $content ) {
[8008] Fix | Delete
if ( has_post_format( 'video' ) ) :
[8009] Fix | Delete
if ( has_shortcode( $content, 'video' ) ) {
[8010] Fix | Delete
$regex = get_shortcode_regex();
[8011] Fix | Delete
preg_match_all( "/{$regex}/s", $content, $matches );
[8012] Fix | Delete
[8013] Fix | Delete
// $matches[2] holds an array of shortcodes names in the post
[8014] Fix | Delete
foreach ( $matches[2] as $key => $shortcode_match ) {
[8015] Fix | Delete
if ( 'video' === $shortcode_match ) {
[8016] Fix | Delete
$content = str_replace( $matches[0][$key], '', $content );
[8017] Fix | Delete
if ( is_single() && is_main_query() ) {
[8018] Fix | Delete
break;
[8019] Fix | Delete
}
[8020] Fix | Delete
}
[8021] Fix | Delete
}
[8022] Fix | Delete
} else {
[8023] Fix | Delete
// Gutenberg compatibility
[8024] Fix | Delete
preg_match( '/<figure class="wp-block-video"[^\]]+?<video[^\]]+?src="([^\]]+?)"[^\]]+?<\/figure>/', $content, $gb_video );
[8025] Fix | Delete
[8026] Fix | Delete
if ( ! empty( $gb_video[0] ) ) {
[8027] Fix | Delete
$content = str_replace( $gb_video[0], '', $content );
[8028] Fix | Delete
} else {
[8029] Fix | Delete
// Remove GB embed caption for the first video
[8030] Fix | Delete
$content = preg_replace( '|<figure class="wp-block-embed.+?><div.+?>\s*?</div>.+?</figure>|', '', $content, 1 );
[8031] Fix | Delete
}
[8032] Fix | Delete
}
[8033] Fix | Delete
endif;
[8034] Fix | Delete
[8035] Fix | Delete
return $content;
[8036] Fix | Delete
}
[8037] Fix | Delete
endif;
[8038] Fix | Delete
[8039] Fix | Delete
if ( ! function_exists( 'et_delete_post_audio' ) ) :
[8040] Fix | Delete
/*
[8041] Fix | Delete
* Removes the audio shortcode of the first attached (NOT embedded) audio from content on single pages since
[8042] Fix | Delete
* it is displayed at the top of the page. This will also remove the audio shortcode url from archive pages content
[8043] Fix | Delete
* @see https://www.elegantthemes.com/gallery/divi/documentation/post-formats/
[8044] Fix | Delete
*/
[8045] Fix | Delete
function et_delete_post_audio( $content ) {
[8046] Fix | Delete
global $_et_pbgap_audio_to_remove;
[8047] Fix | Delete
[8048] Fix | Delete
if ( has_post_format( 'audio' ) && $_et_pbgap_audio_to_remove ) {
[8049] Fix | Delete
$content = str_replace( $_et_pbgap_audio_to_remove, '', $content );
[8050] Fix | Delete
}
[8051] Fix | Delete
[8052] Fix | Delete
return $content;
[8053] Fix | Delete
}
[8054] Fix | Delete
endif;
[8055] Fix | Delete
[8056] Fix | Delete
if ( ! function_exists( 'et_delete_post_first_video' ) ) :
[8057] Fix | Delete
function et_delete_post_first_video( $content ) {
[8058] Fix | Delete
if ( 'video' === et_pb_post_format() && false !== ( $first_video = et_get_first_video() ) ) {
[8059] Fix | Delete
preg_match_all( '|^\s*https?:\/\/[^\s"]+\s*|im', $content, $urls );
[8060] Fix | Delete
[8061] Fix | Delete
if ( ! empty( $urls[0] ) ) {
[8062] Fix | Delete
$content = str_replace( $urls[0], '', $content );
[8063] Fix | Delete
}
[8064] Fix | Delete
}
[8065] Fix | Delete
[8066] Fix | Delete
return $content;
[8067] Fix | Delete
}
[8068] Fix | Delete
endif;
[8069] Fix | Delete
[8070] Fix | Delete
/**
[8071] Fix | Delete
* Fix JetPack post excerpt shortcode issue.
[8072] Fix | Delete
*/
[8073] Fix | Delete
function et_jetpack_post_excerpt( $results ) {
[8074] Fix | Delete
foreach ( $results as $key => $post ) {
[8075] Fix | Delete
if ( isset( $post['excerpt'] ) ) {
[8076] Fix | Delete
// Remove ET shortcodes from JetPack excerpt.
[8077] Fix | Delete
$results[$key]['excerpt'] = preg_replace( '#\[et_pb(.*)\]#', '', $post['excerpt'] );
[8078] Fix | Delete
}
[8079] Fix | Delete
}
[8080] Fix | Delete
return $results;
[8081] Fix | Delete
}
[8082] Fix | Delete
add_filter( 'jetpack_relatedposts_returned_results', 'et_jetpack_post_excerpt' );
[8083] Fix | Delete
[8084] Fix | Delete
/**
[8085] Fix | Delete
* Adds a Divi gallery type when the Jetpack plugin is enabled
[8086] Fix | Delete
*/
[8087] Fix | Delete
function et_jetpack_gallery_type( $types ) {
[8088] Fix | Delete
$types['divi'] = 'Divi';
[8089] Fix | Delete
return $types;
[8090] Fix | Delete
}
[8091] Fix | Delete
add_filter( 'jetpack_gallery_types', 'et_jetpack_gallery_type' );
[8092] Fix | Delete
[8093] Fix | Delete
if ( ! function_exists( 'et_get_gallery_attachments' ) ) :
[8094] Fix | Delete
/**
[8095] Fix | Delete
* Fetch the gallery attachments
[8096] Fix | Delete
*/
[8097] Fix | Delete
function et_get_gallery_attachments( $attr ) {
[8098] Fix | Delete
// We're trusting author input, so let's at least make sure it looks like a valid orderby statement
[8099] Fix | Delete
if ( isset( $attr['orderby'] ) ) {
[8100] Fix | Delete
$attr['orderby'] = sanitize_sql_orderby( $attr['orderby'] );
[8101] Fix | Delete
if ( ! $attr['orderby'] ) {
[8102] Fix | Delete
unset( $attr['orderby'] );
[8103] Fix | Delete
}
[8104] Fix | Delete
}
[8105] Fix | Delete
$html5 = current_theme_supports( 'html5', 'gallery' );
[8106] Fix | Delete
$atts = shortcode_atts( array(
[8107] Fix | Delete
'order' => 'ASC',
[8108] Fix | Delete
'orderby' => 'menu_order ID',
[8109] Fix | Delete
'id' => get_the_ID() ? get_the_ID() : 0,
[8110] Fix | Delete
'itemtag' => $html5 ? 'figure' : 'dl',
[8111] Fix | Delete
'icontag' => $html5 ? 'div' : 'dt',
[8112] Fix | Delete
'captiontag' => $html5 ? 'figcaption' : 'dd',
[8113] Fix | Delete
'columns' => 3,
[8114] Fix | Delete
'size' => 'thumbnail',
[8115] Fix | Delete
'include' => '',
[8116] Fix | Delete
'exclude' => '',
[8117] Fix | Delete
'link' => '',
[8118] Fix | Delete
), $attr, 'gallery' );
[8119] Fix | Delete
[8120] Fix | Delete
$id = intval( $atts['id'] );
[8121] Fix | Delete
if ( 'RAND' === $atts['order'] ) {
[8122] Fix | Delete
$atts['orderby'] = 'none';
[8123] Fix | Delete
}
[8124] Fix | Delete
if ( ! empty( $atts['include'] ) ) {
[8125] Fix | Delete
$_attachments = get_posts( array(
[8126] Fix | Delete
'include' => $atts['include'],
[8127] Fix | Delete
'post_status' => 'inherit',
[8128] Fix | Delete
'post_type' => 'attachment',
[8129] Fix | Delete
'post_mime_type' => 'image',
[8130] Fix | Delete
'order' => $atts['order'],
[8131] Fix | Delete
'orderby' => $atts['orderby'],
[8132] Fix | Delete
) );
[8133] Fix | Delete
[8134] Fix | Delete
$attachments = array();
[8135] Fix | Delete
foreach ( $_attachments as $key => $val ) {
[8136] Fix | Delete
$attachments[ $val->ID ] = $_attachments[ $key ];
[8137] Fix | Delete
}
[8138] Fix | Delete
} elseif ( ! empty( $atts['exclude'] ) ) {
[8139] Fix | Delete
$attachments = get_children( array(
[8140] Fix | Delete
'post_parent' => $id,
[8141] Fix | Delete
'exclude' => $atts['exclude'],
[8142] Fix | Delete
'post_status' => 'inherit',
[8143] Fix | Delete
'post_type' => 'attachment',
[8144] Fix | Delete
'post_mime_type' => 'image',
[8145] Fix | Delete
'order' => $atts['order'],
[8146] Fix | Delete
'orderby' => $atts['orderby'],
[8147] Fix | Delete
) );
[8148] Fix | Delete
} else {
[8149] Fix | Delete
$attachments = get_children( array(
[8150] Fix | Delete
'post_parent' => $id,
[8151] Fix | Delete
'post_status' => 'inherit',
[8152] Fix | Delete
'post_type' => 'attachment',
[8153] Fix | Delete
'post_mime_type' => 'image',
[8154] Fix | Delete
'order' => $atts['order'],
[8155] Fix | Delete
'orderby' => $atts['orderby'],
[8156] Fix | Delete
) );
[8157] Fix | Delete
}
[8158] Fix | Delete
[8159] Fix | Delete
return $attachments;
[8160] Fix | Delete
}
[8161] Fix | Delete
endif;
[8162] Fix | Delete
[8163] Fix | Delete
/**
[8164] Fix | Delete
* Generate the HTML for custom gallery layouts
[8165] Fix | Delete
*/
[8166] Fix | Delete
function et_gallery_layout( $val, $attr ) {
[8167] Fix | Delete
// check to see if the gallery output is already rewritten
[8168] Fix | Delete
if ( ! empty( $val ) ) {
[8169] Fix | Delete
return $val;
[8170] Fix | Delete
}
[8171] Fix | Delete
[8172] Fix | Delete
// Do not filter gallery items in plugin to not break custom styles which may be applied by 3rd party theme
[8173] Fix | Delete
if ( et_is_builder_plugin_active() ) {
[8174] Fix | Delete
return $val;
[8175] Fix | Delete
}
[8176] Fix | Delete
[8177] Fix | Delete
if ( ! apply_filters( 'et_gallery_layout_enable', false ) ) {
[8178] Fix | Delete
return $val;
[8179] Fix | Delete
}
[8180] Fix | Delete
[8181] Fix | Delete
$output = '';
[8182] Fix | Delete
[8183] Fix | Delete
if ( ! is_singular() && ! et_pb_is_pagebuilder_used( get_the_ID() ) && ! is_et_pb_preview() ) {
[8184] Fix | Delete
$attachments = et_get_gallery_attachments( $attr );
[8185] Fix | Delete
$gallery_output = '';
[8186] Fix | Delete
foreach ( $attachments as $attachment ) {
[8187] Fix | Delete
$attachment_image = wp_get_attachment_url( $attachment->ID, 'et-pb-post-main-image-fullwidth' );
[8188] Fix | Delete
$gallery_output .= sprintf(
[8189] Fix | Delete
'<div class="et_pb_slide" style="background: url(%1$s);"></div>',
[8190] Fix | Delete
esc_attr( $attachment_image )
[8191] Fix | Delete
);
[8192] Fix | Delete
}
[8193] Fix | Delete
$output = sprintf(
[8194] Fix | Delete
'<div class="et_pb_slider et_pb_slider_fullwidth_off et_pb_gallery_post_type">
[8195] Fix | Delete
<div class="et_pb_slides">
[8196] Fix | Delete
%1$s
[8197] Fix | Delete
</div>
[8198] Fix | Delete
</div>',
[8199] Fix | Delete
$gallery_output
[8200] Fix | Delete
);
[8201] Fix | Delete
[8202] Fix | Delete
} else {
[8203] Fix | Delete
if ( ! isset( $attr['type'] ) || ! in_array( $attr['type'], array( 'rectangular', 'square', 'circle', 'rectangle' ) ) ) {
[8204] Fix | Delete
$attachments = et_get_gallery_attachments( $attr );
[8205] Fix | Delete
$gallery_output = '';
[8206] Fix | Delete
foreach ( $attachments as $attachment ) {
[8207] Fix | Delete
$gallery_output .= sprintf(
[8208] Fix | Delete
'<li class="et_gallery_item et_pb_gallery_image">
[8209] Fix | Delete
<a href="%1$s" title="%3$s">
[8210] Fix | Delete
<span class="et_portfolio_image">
[8211] Fix | Delete
%2$s
[8212] Fix | Delete
<span class="et_overlay"></span>
[8213] Fix | Delete
</span>
[8214] Fix | Delete
</a>
[8215] Fix | Delete
%4$s
[8216] Fix | Delete
</li>',
[8217] Fix | Delete
esc_url( wp_get_attachment_url( $attachment->ID, 'full' ) ),
[8218] Fix | Delete
wp_get_attachment_image( $attachment->ID, 'et-pb-portfolio-image' ),
[8219] Fix | Delete
esc_attr( $attachment->post_title ),
[8220] Fix | Delete
! empty( $attachment->post_excerpt )
[8221] Fix | Delete
? sprintf( '<p class="et_pb_gallery_caption">%1$s</p>', esc_html( $attachment->post_excerpt ) )
[8222] Fix | Delete
: ''
[8223] Fix | Delete
);
[8224] Fix | Delete
}
[8225] Fix | Delete
$output = sprintf(
[8226] Fix | Delete
'<ul class="et_post_gallery clearfix">
[8227] Fix | Delete
%1$s
[8228] Fix | Delete
</ul>',
[8229] Fix | Delete
$gallery_output
[8230] Fix | Delete
);
[8231] Fix | Delete
}
[8232] Fix | Delete
}
[8233] Fix | Delete
return $output;
[8234] Fix | Delete
}
[8235] Fix | Delete
add_filter( 'post_gallery', 'et_gallery_layout', 1000, 2 );
[8236] Fix | Delete
[8237] Fix | Delete
if ( ! function_exists( 'et_pb_gallery_images' ) ) :
[8238] Fix | Delete
function et_pb_gallery_images( $force_gallery_layout = '' ) {
[8239] Fix | Delete
if ( 'slider' === $force_gallery_layout ) {
[8240] Fix | Delete
// Get the post content
[8241] Fix | Delete
$post = get_post( get_the_ID() );
[8242] Fix | Delete
if ( ! $post ) {
[8243] Fix | Delete
return '';
[8244] Fix | Delete
}
[8245] Fix | Delete
// We want to include GB galleries in results so need to convert them to shortcodes
[8246] Fix | Delete
// because `get_post_gallery` won't find them otherwise.
[8247] Fix | Delete
$post->post_content = apply_filters( 'et_gb_galleries_to_shortcodes', $post->post_content );
[8248] Fix | Delete
$attachments = get_post_gallery( $post, false );
[8249] Fix | Delete
$gallery_output = '';
[8250] Fix | Delete
$output = '';
[8251] Fix | Delete
$images_array = ! empty( $attachments['ids'] ) ? explode( ',', $attachments['ids'] ) : array();
[8252] Fix | Delete
[8253] Fix | Delete
if ( empty ( $images_array ) ) {
[8254] Fix | Delete
return $output;
[8255] Fix | Delete
}
[8256] Fix | Delete
[8257] Fix | Delete
foreach ( $images_array as $attachment ) {
[8258] Fix | Delete
$image_src = wp_get_attachment_url( $attachment, 'et-pb-post-main-image-fullwidth' );
[8259] Fix | Delete
$gallery_output .= sprintf(
[8260] Fix | Delete
'<div class="et_pb_slide" style="background: url(%1$s);"></div>',
[8261] Fix | Delete
esc_url( $image_src )
[8262] Fix | Delete
);
[8263] Fix | Delete
}
[8264] Fix | Delete
printf(
[8265] Fix | Delete
'<div class="et_pb_slider et_pb_slider_fullwidth_off et_pb_gallery_post_type">
[8266] Fix | Delete
<div class="et_pb_slides">
[8267] Fix | Delete
%1$s
[8268] Fix | Delete
</div>
[8269] Fix | Delete
</div>',
[8270] Fix | Delete
et_core_esc_previously( $gallery_output )
[8271] Fix | Delete
);
[8272] Fix | Delete
} else {
[8273] Fix | Delete
add_filter( 'et_gallery_layout_enable', 'et_gallery_layout_turn_on' );
[8274] Fix | Delete
printf(
[8275] Fix | Delete
do_shortcode( '%1$s' ),
[8276] Fix | Delete
et_core_intentionally_unescaped( get_post_gallery(), 'html' )
[8277] Fix | Delete
);
[8278] Fix | Delete
remove_filter( 'et_gallery_layout_enable', 'et_gallery_layout_turn_on' );
[8279] Fix | Delete
}
[8280] Fix | Delete
}
[8281] Fix | Delete
endif;
[8282] Fix | Delete
[8283] Fix | Delete
/**
[8284] Fix | Delete
* Used to always use divi gallery on et_pb_gallery_images
[8285] Fix | Delete
*/
[8286] Fix | Delete
function et_gallery_layout_turn_on() {
[8287] Fix | Delete
return true;
[8288] Fix | Delete
}
[8289] Fix | Delete
[8290] Fix | Delete
/*
[8291] Fix | Delete
* Remove Elegant Builder plugin filter, that activates visual mode on each page load in WP-Admin
[8292] Fix | Delete
*/
[8293] Fix | Delete
function et_pb_remove_lb_plugin_force_editor_mode() {
[8294] Fix | Delete
remove_filter( 'wp_default_editor', 'et_force_tmce_editor' );
[8295] Fix | Delete
}
[8296] Fix | Delete
add_action( 'admin_init', 'et_pb_remove_lb_plugin_force_editor_mode' );
[8297] Fix | Delete
[8298] Fix | Delete
/**
[8299] Fix | Delete
*
[8300] Fix | Delete
* Generates array of all Role options
[8301] Fix | Delete
*
[8302] Fix | Delete
*/
[8303] Fix | Delete
function et_pb_all_role_options() {
[8304] Fix | Delete
// get all the modules and build array of capabilities for them
[8305] Fix | Delete
$all_modules_array = ET_Builder_Element::get_modules_array();
[8306] Fix | Delete
$custom_user_tabs = ET_Builder_Element::get_tabs();
[8307] Fix | Delete
$options_categories = ET_Builder_Element::get_options_categories();
[8308] Fix | Delete
$module_capabilies = array();
[8309] Fix | Delete
$tabs_array = array(
[8310] Fix | Delete
'general_settings' => array(
[8311] Fix | Delete
'name' => esc_html__( 'Content Settings', 'et_builder' ),
[8312] Fix | Delete
),
[8313] Fix | Delete
'advanced_settings' => array(
[8314] Fix | Delete
'name' => esc_html__( 'Design Settings', 'et_builder' ),
[8315] Fix | Delete
),
[8316] Fix | Delete
'custom_css_settings' => array(
[8317] Fix | Delete
'name' => esc_html__( 'Advanced Settings', 'et_builder' ),
[8318] Fix | Delete
),
[8319] Fix | Delete
);
[8320] Fix | Delete
[8321] Fix | Delete
// add all custom user tabs into list
[8322] Fix | Delete
if ( ! empty( $custom_user_tabs ) ) {
[8323] Fix | Delete
foreach( $custom_user_tabs as $module => $tabs_data ) {
[8324] Fix | Delete
if ( ! empty( $tabs_data ) ) {
[8325] Fix | Delete
foreach( $tabs_data as $tab_slug => $tab_data ) {
[8326] Fix | Delete
$tabs_array[$tab_slug] = array(
[8327] Fix | Delete
'name' => $tab_data['name'],
[8328] Fix | Delete
);
[8329] Fix | Delete
}
[8330] Fix | Delete
}
[8331] Fix | Delete
}
[8332] Fix | Delete
}
[8333] Fix | Delete
[8334] Fix | Delete
foreach ( $all_modules_array as $module => $module_details ) {
[8335] Fix | Delete
if ( ! in_array( $module_details['label'], array( 'et_pb_section', 'et_pb_row', 'et_pb_row_inner', 'et_pb_column' ) ) ) {
[8336] Fix | Delete
$module_capabilies[ $module_details['label'] ] = array(
[8337] Fix | Delete
'name' => sanitize_text_field( $module_details['title'] ),
[8338] Fix | Delete
);
[8339] Fix | Delete
}
[8340] Fix | Delete
}
[8341] Fix | Delete
[8342] Fix | Delete
// we need to display some options only when theme activated
[8343] Fix | Delete
$theme_only_options = ! et_is_builder_plugin_active()
[8344] Fix | Delete
? array(
[8345] Fix | Delete
'theme_customizer' => array(
[8346] Fix | Delete
'name' => esc_html__( 'Theme Customizer', 'et_builder' ),
[8347] Fix | Delete
'applicability' => array( 'administrator' ),
[8348] Fix | Delete
),
[8349] Fix | Delete
'page_options' => array(
[8350] Fix | Delete
'name' => esc_html__( 'Page Options', 'et_builder' ),
[8351] Fix | Delete
),
[8352] Fix | Delete
)
[8353] Fix | Delete
: array();
[8354] Fix | Delete
[8355] Fix | Delete
$all_role_options = array(
[8356] Fix | Delete
'general_capabilities' => array(
[8357] Fix | Delete
'section_title' => '',
[8358] Fix | Delete
'options' => array(
[8359] Fix | Delete
'theme_options' => array(
[8360] Fix | Delete
'name' => et_is_builder_plugin_active() ? esc_html__( 'Plugin Options', 'et_builder' ) : esc_html__( 'Theme Options', 'et_builder' ),
[8361] Fix | Delete
'applicability' => array( 'administrator' ),
[8362] Fix | Delete
),
[8363] Fix | Delete
'divi_library' => array(
[8364] Fix | Delete
'name' => esc_html__( 'Divi Library', 'et_builder' ),
[8365] Fix | Delete
),
[8366] Fix | Delete
'theme_builder' => array(
[8367] Fix | Delete
'name' => esc_html__( 'Theme Builder', 'et_builder' ),
[8368] Fix | Delete
'applicability' => array( 'administrator', 'editor' ),
[8369] Fix | Delete
),
[8370] Fix | Delete
'ab_testing' => array(
[8371] Fix | Delete
'name' => esc_html__( 'Split Testing', 'et_builder' ),
[8372] Fix | Delete
),
[8373] Fix | Delete
),
[8374] Fix | Delete
),
[8375] Fix | Delete
'builder_capabilities' => array(
[8376] Fix | Delete
'section_title' => esc_html__( 'Builder Interface', 'et_builder'),
[8377] Fix | Delete
'options' => array(
[8378] Fix | Delete
'add_module' => array(
[8379] Fix | Delete
'name' => esc_html__( 'Add/Delete Item', 'et_builder' ),
[8380] Fix | Delete
),
[8381] Fix | Delete
'edit_module' => array(
[8382] Fix | Delete
'name' => esc_html__( 'Edit Item', 'et_builder' ),
[8383] Fix | Delete
),
[8384] Fix | Delete
'move_module' => array(
[8385] Fix | Delete
'name' => esc_html__( 'Move Item', 'et_builder' ),
[8386] Fix | Delete
),
[8387] Fix | Delete
'disable_module' => array(
[8388] Fix | Delete
'name' => esc_html__( 'Disable Item', 'et_builder' ),
[8389] Fix | Delete
),
[8390] Fix | Delete
'lock_module' => array(
[8391] Fix | Delete
'name' => esc_html__( 'Lock Item', 'et_builder' ),
[8392] Fix | Delete
),
[8393] Fix | Delete
'divi_builder_control' => array(
[8394] Fix | Delete
'name' => esc_html__( 'Toggle Divi Builder', 'et_builder' ),
[8395] Fix | Delete
),
[8396] Fix | Delete
'load_layout' => array(
[8397] Fix | Delete
'name' => esc_html__( 'Load Layout', 'et_builder' ),
[8398] Fix | Delete
),
[8399] Fix | Delete
'use_visual_builder' => array(
[8400] Fix | Delete
'name' => esc_html__( 'Use Visual Builder', 'et_builder' ),
[8401] Fix | Delete
),
[8402] Fix | Delete
'custom_fonts_management' => array(
[8403] Fix | Delete
'name' => esc_html__( 'Upload/Remove Fonts', 'et_builder' ),
[8404] Fix | Delete
),
[8405] Fix | Delete
'read_dynamic_content_custom_fields' => array(
[8406] Fix | Delete
'name' => esc_html__( 'Dynamic Content Custom Fields', 'et_builder' ),
[8407] Fix | Delete
),
[8408] Fix | Delete
),
[8409] Fix | Delete
),
[8410] Fix | Delete
'library_capabilities' => array(
[8411] Fix | Delete
'section_title' => esc_html__( 'Library Settings', 'et_builder' ),
[8412] Fix | Delete
'options' => array(
[8413] Fix | Delete
'save_library' => array(
[8414] Fix | Delete
'name' => esc_html__( 'Save To Library', 'et_builder' ),
[8415] Fix | Delete
),
[8416] Fix | Delete
'add_library' => array(
[8417] Fix | Delete
'name' => esc_html__( 'Add From Library', 'et_builder' ),
[8418] Fix | Delete
),
[8419] Fix | Delete
'edit_global_library' => array(
[8420] Fix | Delete
'name' => esc_html__( 'Edit Global Items', 'et_builder' ),
[8421] Fix | Delete
),
[8422] Fix | Delete
),
[8423] Fix | Delete
),
[8424] Fix | Delete
'module_tabs' => array(
[8425] Fix | Delete
'section_title' => esc_html__( 'Settings Tabs', 'et_builder' ),
[8426] Fix | Delete
'options' => $tabs_array,
[8427] Fix | Delete
),
[8428] Fix | Delete
'general_module_capabilities' => array(
[8429] Fix | Delete
'section_title' => esc_html__( 'Settings Types', 'et_builder' ),
[8430] Fix | Delete
'options' => $options_categories,
[8431] Fix | Delete
),
[8432] Fix | Delete
'module_capabilies' => array(
[8433] Fix | Delete
'section_title' => esc_html__( 'Module Use', 'et_builder' ),
[8434] Fix | Delete
'options' => $module_capabilies,
[8435] Fix | Delete
),
[8436] Fix | Delete
);
[8437] Fix | Delete
[8438] Fix | Delete
$all_role_options = apply_filters( 'add_et_builder_role_options', $all_role_options );
[8439] Fix | Delete
[8440] Fix | Delete
$all_role_options['general_capabilities']['options'] = array_merge( $all_role_options['general_capabilities']['options'], $theme_only_options );
[8441] Fix | Delete
[8442] Fix | Delete
// Set portability capabilities.
[8443] Fix | Delete
$registered_portabilities = et_core_cache_get_group( 'et_core_portability' );
[8444] Fix | Delete
[8445] Fix | Delete
if ( ! empty( $registered_portabilities ) ) {
[8446] Fix | Delete
$all_role_options['general_capabilities']['options']['portability'] = array(
[8447] Fix | Delete
'name' => esc_html__( 'Portability', 'et_builder' ),
[8448] Fix | Delete
);
[8449] Fix | Delete
$all_role_options['portability'] = array(
[8450] Fix | Delete
'section_title' => esc_html__( 'Portability', 'et_builder' ),
[8451] Fix | Delete
'options' => array(),
[8452] Fix | Delete
);
[8453] Fix | Delete
[8454] Fix | Delete
// Dynamically create an option foreach portability.
[8455] Fix | Delete
foreach ( $registered_portabilities as $portability_context => $portability_instance ) {
[8456] Fix | Delete
$all_role_options['portability']['options']["{$portability_context}_portability"] = array(
[8457] Fix | Delete
'name' => esc_html( $portability_instance->name ),
[8458] Fix | Delete
);
[8459] Fix | Delete
}
[8460] Fix | Delete
}
[8461] Fix | Delete
[8462] Fix | Delete
return $all_role_options;
[8463] Fix | Delete
}
[8464] Fix | Delete
[8465] Fix | Delete
/**
[8466] Fix | Delete
*
[8467] Fix | Delete
* Prints the admin page for Role Editor
[8468] Fix | Delete
*
[8469] Fix | Delete
*/
[8470] Fix | Delete
function et_pb_display_role_editor() {
[8471] Fix | Delete
$all_role_options = et_pb_all_role_options();
[8472] Fix | Delete
$option_tabs = '';
[8473] Fix | Delete
$menu_tabs = '';
[8474] Fix | Delete
$builder_roles_array = et_pb_get_all_roles_list();
[8475] Fix | Delete
[8476] Fix | Delete
foreach( $builder_roles_array as $role => $role_title ) {
[8477] Fix | Delete
$option_tabs .= et_pb_generate_roles_tab( $all_role_options, $role );
[8478] Fix | Delete
[8479] Fix | Delete
$menu_tabs .= sprintf(
[8480] Fix | Delete
'<a href="#" class="et-pb-layout-buttons%4$s" data-open_tab="et_pb_role-%3$s_options" title="%1$s">
[8481] Fix | Delete
<span>%2$s</span>
[8482] Fix | Delete
</a>',
[8483] Fix | Delete
esc_attr( $role_title ),
[8484] Fix | Delete
esc_html( $role_title ),
[8485] Fix | Delete
esc_attr( $role ),
[8486] Fix | Delete
'administrator' === $role ? ' et_pb_roles_active_menu' : ''
[8487] Fix | Delete
);
[8488] Fix | Delete
}
[8489] Fix | Delete
[8490] Fix | Delete
printf(
[8491] Fix | Delete
'<div class="et_pb_roles_main_container">
[8492] Fix | Delete
<a href="#" id="et_pb_save_roles" class="button button-primary button-large">%3$s</a>
[8493] Fix | Delete
<h3 class="et_pb_roles_title"><span>%2$s</span></h3>
[8494] Fix | Delete
<div id="et_pb_main_container" class="post-type-page">
[8495] Fix | Delete
<div id="et_pb_layout_controls">
[8496] Fix | Delete
%1$s
[8497] Fix | Delete
<a href="#" class="et-pb-layout-buttons et-pb-layout-buttons-reset" title="Reset all settings">
[8498] Fix | Delete
<span class="icon"></span><span class="label">Reset</span>
[8499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function