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 .= '';
foreach ($mod_settings['tab_content_tab'] as $content) {
$text .= '- ';
if ( ! empty( $content['title_tab'] ) ) {
$text .= '
' . $content['title_tab'] . '
';
}
if ( isset( $content['text_tab'] ) ) {
$text .= $content['text_tab'];
} else if ( ! empty( $content['builder_content'] ) && is_array( $content['builder_content'] ) ) {
$text .= ThemifyBuilder_Data_Manager::_get_all_builder_text_content( $content['builder_content'] );
}
$text .= ' ';
}
$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;
}
}