public function properties()
 {
     $controls = array('background' => array('name' => 'tf_background_properties', 'type' => 'background_control', 'label' => __('Background', 'themify-flow')), 'font' => array('name' => 'tf_font_properties', 'type' => 'font_control', 'label' => __('Font', 'themify-flow')), 'border' => array('name' => 'tf_border_properties', 'type' => 'border_control', 'label' => __('Border', 'themify-flow')), 'padding' => array('name' => 'tf_padding_properties', 'type' => 'padding_control', 'label' => __('Padding', 'themify-flow')), 'margin' => array('name' => 'tf_margin_properties', 'type' => 'margin_control', 'label' => __('Margin', 'themify-flow')), 'width' => array('name' => 'tf_width_properties', 'type' => 'width_control', 'label' => __('Width', 'themify-flow')), 'height' => array('name' => 'tf_height_properties', 'type' => 'height_control', 'label' => __('Height', 'themify-flow')), 'min-width' => array('name' => 'tf_min-width_properties', 'type' => 'min-width_control', 'label' => __('Minimum Width', 'themify-flow')), 'max-width' => array('name' => 'tf_max-width_properties', 'type' => 'max-width_control', 'label' => __('Maximum Width', 'themify-flow')), 'min-height' => array('name' => 'tf_min-height_properties', 'type' => 'min-height_control', 'label' => __('Minimum Height', 'themify-flow')), 'float' => array('name' => 'tf_float_properties', 'type' => 'float_control', 'label' => __('Float', 'themify-flow')), 'opacity' => array('name' => 'tf_opacity_properties', 'type' => 'opacity_control', 'label' => __('Opacity', 'themify-flow')), 'position' => array('name' => 'tf_position_properties', 'type' => 'position_control', 'label' => __('Position', 'themify-flow')), 'z-index' => array('name' => 'tf_z-index_properties', 'type' => 'z-index_control', 'label' => __('Z Index', 'themify-flow')));
     if (TF_Model::is_tf_styling_active()) {
         $controls['customcss'] = array('name' => 'tf_customcss_properties', 'type' => 'customcss_control', 'label' => __('Custom CSS', 'themify-flow'));
     }
     return apply_filters('tf_styling_control_sections', $controls);
 }
 /**
  * Add Template menu to Admin Bar.
  * 
  * @since 1.0.0
  * @access public
  * @param object $wp_admin_bar 
  */
 public function add_admin_bar_menu($wp_admin_bar)
 {
     if (!TF_Model::is_tf_editor_active()) {
         return;
     }
     $args = array(array('id' => 'tf_template_admin_menu', 'title' => __('TF Template', 'themify-flow'), 'href' => '#'), array('id' => 'tf_template_admin_menu_options', 'parent' => 'tf_template_admin_menu', 'title' => __('Template Options', 'themify-flow'), 'href' => '#', 'meta' => array('class' => 'tf_template_admin_menu_options')), array('id' => 'tf_template_admin_menu_global_styling', 'parent' => 'tf_template_admin_menu', 'title' => __('Global Styling', 'themify-flow'), 'href' => '#', 'meta' => array('class' => 'tf_load_global_styling')), array('id' => 'tf_template_admin_menu_export', 'parent' => 'tf_template_admin_menu', 'title' => __('Export', 'themify-flow'), 'href' => '#', 'meta' => array('class' => 'tf_template_admin_menu_export')), array('id' => 'tf_template_admin_menu_import', 'parent' => 'tf_template_admin_menu', 'title' => __('Replace (Import)', 'themify-flow'), 'href' => '#', 'meta' => array('class' => 'tf_template_admin_menu_import')));
     if (TF_Model::is_tf_styling_active()) {
         unset($args[1]);
         unset($args[3]);
         unset($args[4]);
     } else {
         if (!is_singular($this->post_type)) {
             $args = array();
         }
     }
     foreach ($args as $arg) {
         $wp_admin_bar->add_node($arg);
     }
 }
 /**
  * Register frontend menu.
  * 
  * @since 1.0.0
  * @access public
  * @param array $menus
  */
 public function register_menu($menus)
 {
     $content_menus = array();
     if (is_singular() && !is_singular(array('tf_template', 'tf_template_part')) && TF_Model::is_tf_editor_active() && !TF_Model::is_tf_styling_active()) {
         $content_menus['content_builder_view'] = array('label' => __('View the post/page', 'themify-flow'), 'href' => get_permalink());
         $content_menus['content_builder_import'] = array('label' => __('Import Content', 'themify-flow'), 'href' => '#', 'meta' => array('class' => 'tf_content_builder_import'));
         $content_menus['content_builder_export'] = array('label' => __('Export Content', 'themify-flow'), 'href' => wp_nonce_url(admin_url('post.php?post=' . get_the_ID() . '&action=export_tf_content_builder'), 'export_tf_nonce'));
         $menus = $content_menus;
     } else {
         if (is_singular() && !is_singular(array('tf_template', 'tf_template_part'))) {
             $content_menus['content_builder_list'] = array('label' => __('Content Builder', 'themify-flow'), 'href' => esc_url(add_query_arg('tf', 1, get_permalink())));
             $menus = array_merge($content_menus, $menus);
         }
     }
     return $menus;
 }
<?php

if (!defined('ABSPATH')) {
    exit;
}
// Exit if accessed directly
/**
 * Builder Frontend Panel HTML
 */
global $TF_Layout, $post;
if (!TF_Model::is_tf_styling_active() && (TF_Model::is_template_page() || TF_Model::is_content_builder_page())) {
    $module_groups = TF_Model::get_module_group_by_category();
    if (is_object($post) && !is_singular(array('tf_template', 'tf_template_part'))) {
        $current_template_type = 'content';
    } else {
        $current_template_type = empty($TF_Layout->type) ? 'global' : $TF_Layout->type;
    }
    $tabs_exclude = array('archive' => array('single', 'page'), 'single' => array('archive', 'page'), 'page' => array('archive', 'single'), 'global' => array('archive', 'single', 'page'), 'content' => array('archive', 'single', 'page', 'global'));
    ?>

<div class="tf_front_panel tf_interface">	
	<div id="tf_module_panel" class="tf_module_panel clearfix">
		
		<a class="tf_slide_builder_module_panel" href="#"><?php 
    _e('Slide', 'themify-flow');
    ?>
</a>

		<div class="tf_slide_builder_module_wrapper">
			
			<div class="tf_module_tabs">
 /**
  * Filter shortcode atts params
  * 
  * @since 1.0.0
  * @access public
  * @param array $out 
  * @param array $pairs 
  * @param array $atts 
  * @return array
  */
 public function shortcode_atts_render_frontend($out)
 {
     global $TF;
     if (!isset($out['sc_id'])) {
         $out['sc_id'] = TF_Model::generate_block_id();
     }
     if (!TF_Model::is_tf_styling_active() && TF_Model::is_tf_editor_active() && !$TF->in_template_part && !$TF->in_archive_loop) {
         $out['editable_markup'] = 'true';
     }
     return $out;
 }
 public function frontend_menu()
 {
     if (!is_user_logged_in() || !current_user_can('manage_options')) {
         return;
     }
     if (isset($_GET['iframe']) && $_GET['iframe'] == true) {
         return;
     }
     global $TF, $TF_Layout;
     $menus_list = array('edit_template' => array('label' => __('Edit Template', 'themify-flow'), 'href' => esc_url(add_query_arg('tf', 1, get_permalink(get_the_ID())))), 'import_export_template' => array('label' => __('Import/Export', 'themify-flow'), 'href' => '#'), 'import_template' => array('label' => __('Import', 'themify-flow'), 'href' => '#', 'parent' => 'import_export_template', 'meta' => array('class' => 'tf_import_template')), 'export_template' => array('label' => __('Export', 'themify-flow'), 'href' => wp_nonce_url(admin_url('post.php?post=' . get_the_ID() . '&action=export_tf_template'), 'export_tf_nonce'), 'parent' => 'import_export_template', 'meta' => array('class' => 'tf_template_admin_menu_export')), 'template_option' => array('label' => __('Template Options', 'themify-flow'), 'href' => '#', 'meta' => array('class' => 'tf_template_admin_menu_options')));
     $menus = array();
     if (is_singular('tf_template') && !TF_Model::is_tf_editor_active()) {
         $menus['edit_template'] = $menus_list['edit_template'];
     } else {
         if (is_singular('tf_template') && TF_Model::is_tf_editor_active()) {
             $menus['import_export_template'] = $menus_list['import_export_template'];
             $menus['import_template'] = $menus_list['import_template'];
             $menus['export_template'] = $menus_list['export_template'];
             $menus['template_option'] = $menus_list['template_option'];
         } else {
             if (is_singular('tf_template_part') && !TF_Model::is_tf_editor_active()) {
                 $menus['edit_template_part'] = array('label' => __('Edit Template Part', 'themify-flow'), 'href' => esc_url(add_query_arg('tf', 1, get_permalink(get_the_ID()))));
             } else {
                 if (is_singular('tf_template_part') && TF_Model::is_tf_editor_active()) {
                     $menus['import_export_template_part'] = array('label' => __('Import/Export', 'themify-flow'), 'href' => '#');
                     $menus['import_template_part'] = array('label' => __('Import', 'themify-flow'), 'href' => '#', 'parent' => 'import_export_template_part', 'meta' => array('class' => 'tf_import_template_part'));
                     $menus['export_template_part'] = array('label' => __('Export', 'themify-flow'), 'href' => wp_nonce_url(admin_url('post.php?post=' . get_the_ID() . '&action=export_tf_template_part'), 'export_tf_nonce'), 'parent' => 'import_export_template_part');
                 } else {
                     // In use template
                     if (0 !== $TF_Layout->layout_id) {
                         $menus['in_use_template'] = array('label' => __('Edit In-use Template', 'themify-flow'), 'href' => esc_url(add_query_arg(array('tf' => 1, 'tf_source_uri' => TF_Model::get_current_browser_url()), get_permalink($TF_Layout->layout_id))));
                     }
                     // Template
                     $menus['template_list'] = array('label' => __('Templates', 'themify-flow'), 'href' => '#');
                     $menus['template_list_add_new'] = array('label' => __('Add New', 'themify-flow'), 'href' => admin_url('edit.php?post_type=tf_template#tf_add_new'), 'parent' => 'template_list');
                     $menus['template_list_view'] = array('label' => __('View all Templates', 'themify-flow'), 'href' => admin_url('edit.php?post_type=tf_template'), 'parent' => 'template_list');
                     // Template Part
                     $menus['template_part_list'] = array('label' => __('Template Parts', 'themify-flow'), 'href' => '#');
                     $menus['template_part_list_add_new'] = array('label' => __('Add New', 'themify-flow'), 'href' => admin_url('edit.php?post_type=tf_template_part#tf_add_new'), 'parent' => 'template_part_list');
                     $menus['template_part_list_view'] = array('label' => __('View all Template Parts', 'themify-flow'), 'href' => admin_url('edit.php?post_type=tf_template_part'), 'parent' => 'template_part_list');
                     if (TF_Model::is_tf_styling_active()) {
                         $menus['global_styling'] = array('label' => __('Global Styling', 'themify-flow'), 'href' => '#', 'meta' => array('class' => 'tf_load_global_styling'));
                         $menus['custom_css'] = array('label' => __('Custom CSS', 'themify-flow'), 'href' => '#', 'meta' => array('class' => 'tf_load_customcss'));
                     } else {
                         $menus['edit_global_styling'] = array('label' => __('Global Styling', 'themify-flow'), 'href' => esc_url(add_query_arg(array('tf' => 1, 'tf_global_styling' => 1))));
                         $menus['edit_custom_css'] = array('label' => __('Custom CSS', 'themify-flow'), 'href' => esc_url(add_query_arg(array('tf' => 1, 'tf_custom_css' => 1))));
                     }
                     $menus['theme_settings'] = array('label' => __('Settings', 'themify-flow'), 'href' => admin_url('admin.php?page=tf-settings'));
                 }
             }
         }
     }
     $menus = apply_filters('tf_frontend_menus', $menus);
     $frontend_menus = tf_parse_menu($menus);
     include_once sprintf('%s/includes/templates/template-frontend-menu.php', $TF->framework_path());
 }