1, 'js' => 1, ); if (Themify_Builder_Model::is_front_builder_activate()) { $assets['js_admin'] = 1; } return $assets; } public static function builder_active_enqueue(array $vars):array { $vars['addons'][THEMIFY_BUILDER_URI . '/js/modules/tab-admin.js'] = THEMIFY_VERSION; return $vars; } /** * Render plain content for static content. * * @param array $module * @return string */ public static function get_static_content(array $module):string { $mod_settings = $module['mod_settings']+ array( 'mod_title_tab' => '', 'tab_content_tab' => array() ); $text ='' !== $mod_settings['mod_title_tab']?sprintf('

%s

', $mod_settings['mod_title_tab']): ''; if (!empty($mod_settings['tab_content_tab'])) { $text .= ''; } return $text; } public static function get_styling_image_fields() : array { return [ 'bg_i' => '.ui .tab-nav li.current' ]; } public static function get_translatable_fields( $module, $classname ) : array { $fields = parent::get_translatable_fields( $module, $classname ); if ( ! empty( $module['mod_settings']['mod_title_tab'] ) ) { $fields[] = [ 'id' => 'mod_title_tab', 'value' => $module['mod_settings']['mod_title_tab'], ]; } if ( ! empty( $module['mod_settings']['tab_content_tab'] ) && is_array( $module['mod_settings']['tab_content_tab'] ) ) { foreach ( $module['mod_settings']['tab_content_tab'] as $row_index => $tab ) { if ( ! is_array( $tab ) ) { continue; } $fields[] = [ 'id' => 'title_tab-' . $row_index, 'value' => isset( $tab['title_tab'] ) ? $tab['title_tab'] : '', ]; if ( isset( $tab['text_tab'] ) ) { $fields[] = [ 'id' => 'text_tab-' . $row_index, 'value' => $tab['text_tab'], 'type' => 'VISUAL', ]; } } } return $fields; } public static function translate_module( $module_data, $translations ) { if ( empty( $module_data['mod_settings'] ) || ! is_array( $module_data['mod_settings'] ) ) { $module_data['mod_settings'] = []; } if ( empty( $module_data['mod_settings']['tab_content_tab'] ) || ! is_array( $module_data['mod_settings']['tab_content_tab'] ) ) { $module_data['mod_settings']['tab_content_tab'] = []; } foreach ( $translations as $item_key => $value ) { if ( $item_key === 'mod_title_tab' ) { $module_data['mod_settings']['mod_title_tab'] = $value; continue; } $dash_pos = strrpos( $item_key, '-' ); if ( $dash_pos === false ) { continue; } $field = substr( $item_key, 0, $dash_pos ); $index = substr( $item_key, $dash_pos + 1 ); if ( $field === '' || $index === '' || ! is_numeric( $index ) ) { continue; } if ( ! isset( $module_data['mod_settings']['tab_content_tab'][ $index ] ) || ! is_array( $module_data['mod_settings']['tab_content_tab'][ $index ] ) ) { $module_data['mod_settings']['tab_content_tab'][ $index ] = []; } $module_data['mod_settings']['tab_content_tab'][ $index ][ $field ] = $value; } return $module_data; } /** * Returns a flat array of all nested modules */ public static function get_nested_modules( array $data ) : array { $modules = []; if ( isset( $data['mod_settings']['tab_content_tab'][0]['builder_content'] ) ) { foreach ( $data['mod_settings']['tab_content_tab'] as $tab ) { foreach ( $tab['builder_content'] as $row ) { $modules = array_merge( $modules, Themify_Builder::_get_modules_recursive( $row ) ); } } } return $modules; } }