: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
if ( 'inside' !== $list_style_position ) {
ET_Builder_Element::set_style(
'selector' => '#et-boc %%order_class%% ul.dsm-menu, %%order_class%% ul.dsm-menu, %%order_class%% ul.dsm-menu .sub-menu',
'declaration' => sprintf(
'list-style-position: %1$s;',
esc_attr( $list_style_position )
$list_style_color_style = sprintf( 'color: %1$s;', esc_attr( $list_style_color ) );
$list_style_color_tablet_style = '' !== $list_style_color_tablet ? sprintf( 'color: %1$s;', esc_attr( $list_style_color_tablet ) ) : '';
$list_style_color_phone_style = '' !== $list_style_color_phone ? sprintf( 'color: %1$s;', esc_attr( $list_style_color_phone ) ) : '';
$list_style_color_style_hover = '';
if ( et_builder_is_hover_enabled( 'list_style_color', $this->props ) ) {
$list_style_color_style_hover = sprintf( 'color: %1$s;', esc_attr( $list_style_color_hover ) );
if ( '' !== $list_style_color ) {
ET_Builder_Element::set_style(
'selector' => '%%order_class%% ul.dsm-menu li',
'declaration' => $list_style_color_style,
ET_Builder_Element::set_style(
'selector' => '%%order_class%% ul.dsm-menu li',
'declaration' => $list_style_color_tablet_style,
'media_query' => ET_Builder_Element::get_media_query( 'max_width_980' ),
ET_Builder_Element::set_style(
'selector' => '%%order_class%% ul.dsm-menu li',
'declaration' => $list_style_color_phone_style,
'media_query' => ET_Builder_Element::get_media_query( 'max_width_767' ),
if ( '' !== $list_style_color_style_hover ) {
ET_Builder_Element::set_style(
'selector' => $this->add_hover_to_order_class( '%%order_class%% ul.dsm-menu li' ),
'declaration' => $list_style_color_style_hover,
if ( 'on' === $menu_animation && 'underline' === $menu_animation_type ) {
ET_Builder_Element::set_style(
'selector' => "%%order_class%% .dsm-menu-animation-{$underline_animation} li a span:after",
'declaration' => sprintf(
'background-color: %1$s;',
esc_html( $underline_animation_color )
if ( 'on' === $submenu_collapse ) {
'base_attr_name' => 'submenu_arrow_gap',
'selector' => '%%order_class%% ul.dsm-menu-submenu-collapse li a',
'hover_selector' => '%%order_class%% ul.dsm-menu-submenu-collapse li a:hover',
'render_slug' => $render_slug,
'base_attr_name' => 'submenu_arrow_color',
'selector' => '%%order_class%% ul.dsm-menu-submenu-collapse li a .et-pb-icon',
'hover_selector' => '%%order_class%% ul.dsm-menu-submenu-collapse li a:hover .et-pb-icon',
'css_property' => 'color',
'render_slug' => $render_slug,
'base_attr_name' => 'submenu_arrow_background_color',
'selector' => '%%order_class%% ul.dsm-menu-submenu-collapse li a .et-pb-icon',
'hover_selector' => '%%order_class%% ul.dsm-menu-submenu-collapse li a:hover .et-pb-icon',
'css_property' => 'background-color',
'render_slug' => $render_slug,
'base_attr_name' => 'submenu_arrow_padding',
'selector' => '%%order_class%% ul.dsm-menu-submenu-collapse li a .et-pb-icon',
'hover_selector' => '%%order_class%% ul.dsm-menu-submenu-collapse li a:hover .et-pb-icon',
'css_property' => 'padding',
'render_slug' => $render_slug,
'base_attr_name' => 'submenu_arrow_font_size',
'selector' => '%%order_class%% ul.dsm-menu-submenu-collapse li a .et-pb-icon',
'hover_selector' => '%%order_class%% ul.dsm-menu-submenu-collapse li a:hover .et-pb-icon',
'css_property' => 'font-size',
'render_slug' => $render_slug,
'<%1$s class="dsm-menu-title et_pb_module_header">%2$s</%1$s>',
et_pb_process_header_level( $header_level, 'h4' ),
$this->get_text_orientation_classname(),
"et_pb_bg_layout_{$background_layout}",
if ( 'on' === $submenu_collapse ) {
wp_enqueue_script( 'dsm-menu' );
// Render module content.
if ( isset( get_option( 'dsm_settings_misc' )['dsm_dynamic_assets'] ) && ! empty( get_option( 'dsm_settings_misc' )['dsm_dynamic_assets'] ) && 'on' === get_option( 'dsm_settings_misc' )['dsm_dynamic_assets'] ) {
if ( isset( get_option( 'dsm_settings_misc' )['dsm_dynamic_assets_compatibility'] ) && ! empty( get_option( 'dsm_settings_misc' )['dsm_dynamic_assets'] ) && 'on' === get_option( 'dsm_settings_misc' )['dsm_dynamic_assets_compatibility'] ) {
wp_enqueue_style( 'dsm-menu', plugin_dir_url( __DIR__ ) . 'Menu/style.css', array(), DSM_VERSION, 'all' );
add_filter( 'et_global_assets_list', array( $this, 'dsm_load_required_divi_assets' ), 10, 3 );
add_filter( 'et_late_global_assets_list', array( $this, 'dsm_load_required_divi_assets' ), 10, 3 );
static function dsm_arrows_in_menus( $item_output, $item, $depth, $args ) {
if ( in_array( 'menu-item-has-children', $item->classes ) ) {
$arrow = '<span class="et-pb-icon">3</span>';
$item_output = str_replace( '</a>', $arrow . '</a>', $item_output );
* Force load global styles.
* @param array $assets_list Current global assets on the list.
public function dsm_load_required_divi_assets( $assets_list, $assets_args, $instance ) {
$assets_prefix = et_get_dynamic_assets_path();
$all_shortcodes = $instance->get_saved_page_shortcodes();
$this->_cpt_suffix = et_builder_should_wrap_styles() && ! et_is_builder_plugin_active() ? '_cpt' : '';
if ( ! isset( $assets_list['et_jquery_magnific_popup'] ) ) {
$assets_list['et_jquery_magnific_popup'] = array(
'css' => "{$assets_prefix}/css/magnific_popup.css",
if ( ! isset( $assets_list['et_pb_overlay'] ) ) {
$assets_list['et_pb_overlay'] = array(
'css' => "{$assets_prefix}/css/overlay{$this->_cpt_suffix}.css",
if ( ! isset( $assets_list['et_icons_all'] ) ) {
$assets_list['et_icons_all'] = array(
'css' => "{$assets_prefix}/css/icons_all.css",
if ( ! isset( $assets_list['et_icons_fa'] ) ) {
$assets_list['et_icons_fa'] = array(
'css' => "{$assets_prefix}/css/icons_fa_all.css",
if ( ! isset( $assets_list['dsm_menu'] ) ) {
$assets_list['dsm_menu'] = array(
'css' => plugin_dir_url( __DIR__ ) . 'Menu/style.css',