/** * Module Settings Fields * @param array $module_options * @return string */ function themify_builder_module_settings_field($module_options, $module_name) { foreach ($module_options as $field) { $id = isset($field['id']) ? $field['id'] : ''; // custom field types used by 3rd party module authors if (function_exists("themify_builder_field_{$field['type']}")) { call_user_func("themify_builder_field_{$field['type']}", $field, $module_name); continue; } elseif ($field['type'] == 'group') { // simple wrapper for multiple related options $classes = isset($field['wrap_with_class']) ? $field['wrap_with_class'] : ''; echo '<div class="themify_builder_field ' . esc_attr($id . ' ' . $classes) . '">'; themify_builder_module_settings_field($field['fields'], $module_name); echo '</div>'; continue; } else { if ($field['type'] == 'tabs') { themify_builder_tabs($field, $module_name); continue; } } if (isset($field['separated']) && $field['separated'] == 'top') { ?> <hr /> <?php } ?> <?php if ($field['type'] != 'builder' && (!isset($field['hide']) || $field['hide'] == false)) { ?> <div class="themify_builder_field <?php echo esc_attr($id); ?> <?php echo isset($field['wrap_with_class']) ? esc_attr($field['wrap_with_class']) : ''; ?> "> <?php } ?> <?php if (isset($field['id']) && isset($field['label']) && $field['label'] != false) { ?> <div class="themify_builder_label"><?php echo esc_html($field['label']); ?> </div> <?php } ?> <?php if ($field['type'] == 'multi') { echo '<div class="' . esc_attr($id) . ' tf_multi_fields tf_fields_count_' . esc_attr(count($field['fields'])) . '">'; foreach ($field['fields'] as $_field) { themify_builder_module_settings_field(array($_field), $module_name); } echo '</div>'; } else { if ('wp_editor' == $field['type']) { wp_editor('', $field['id'], array('editor_class' => $field['class'] . ' tfb_lb_wp_editor tfb_lb_option', 'textarea_rows' => 20)); } elseif ('builder' == $field['type']) { ?> <div class="<?php echo isset($field['wrap_with_class']) ? esc_attr($field['wrap_with_class']) : ''; ?> "> <hr /> <div id="<?php echo esc_attr($field['id']); ?> " class="themify_builder_module_opt_builder_wrap themify_builder_row_js_wrapper tfb_lb_option"> <div class="themify_builder_row clearfix"> <div class="themify_builder_row_top"> <div class="row_menu"> <div class="menu_icon"> </div> <ul style="display: none;" class="themify_builder_dropdown"> <li><a href="#" class="themify_builder_duplicate_row"><?php _e('Duplicate', 'themify'); ?> </a></li> <li><a href="#" class="themify_builder_delete_row"><?php _e('Delete', 'themify'); ?> </a></li> </ul> </div> <!-- /row_menu --> <div class="toggle_row"></div><!-- /toggle_row --> </div> <!-- /row_top --> <div class="themify_builder_row_content"> <?php themify_builder_module_settings_field_builder($field); ?> </div> <!-- /themify_builder_row_content --> </div> <!-- /builder_row --> </div> <!-- /themify_builder_module_opt_builder_wrap --> <p class="add_new"><a href="#"><span class="themify_builder_icon add"></span><?php echo isset($field['new_row_text']) ? $field['new_row_text'] : __('Add new row', 'themify'); ?> </a></p> </div> <!-- /builder wrapper --> <?php } else { ?> <div class="themify_builder_input<?php echo isset($field['pushed']) && $field['pushed'] != '' ? ' ' . $field['pushed'] : ''; ?> "> <?php if ('text' == $field['type']) { ?> <?php if (isset($field['colorpicker']) && $field['colorpicker'] == true) { ?> <span class="builderColorSelect"><span></span></span> <input type="text" class="<?php echo esc_attr($field['class']); ?> colordisplay" <?php echo themify_builder_get_binding_data($field); ?> /> <input id="<?php echo esc_attr($field['id']); ?> " name="<?php echo esc_attr($field['id']); ?> " value="<?php if (isset($field['value'])) { echo esc_attr($field['value']); } ?> " class="builderColorSelectInput tfb_lb_option" type="hidden" /> <?php } else { ?> <input id="<?php echo esc_attr($field['id']); ?> " name="<?php echo esc_attr($field['id']); ?> " value="<?php if (isset($field['value'])) { echo esc_attr($field['value']); } ?> " class="<?php echo isset($field['class']) ? $field['class'] : ''; ?> <?php echo isset($add_class) ? esc_attr($add_class) : ''; ?> tfb_lb_option" type="text" <?php echo themify_builder_get_binding_data($field); ?> /> <?php if (isset($field['after'])) { echo wp_kses_post($field['after']); } ?> <?php if (isset($field['unit'])) { ?> <select id="<?php echo esc_attr($field['unit']['id']); ?> " class="tfb_lb_option" <?php echo themify_builder_get_binding_data($field); ?> > <?php foreach ($field['unit']['options'] as $u) { ?> <option value="<?php echo esc_attr($u['value']); ?> " <?php echo isset($field['unit']['selected']) && $field['unit']['selected'] == $u['value'] ? 'selected="selected"' : ''; ?> ><?php echo esc_html($u['value']); ?> </option> <?php } ?> </select> <?php } // unit ?> <?php } ?> <?php } elseif ('icon' == $field['type']) { ?> <input id="<?php echo esc_attr($field['id']); ?> " name="<?php echo esc_attr($field['id']); ?> " value="<?php if (isset($field['value'])) { echo esc_attr($field['value']); } ?> " class="themify_field_icon <?php if (isset($field['class'])) { echo esc_attr($field['class']); } ?> tfb_lb_option" type="text" <?php echo themify_builder_get_binding_data($field); ?> /> <a class="button button-secondary hide-if-no-js themify_fa_toggle" href="#" data-target="#<?php echo esc_attr($field['id']); ?> "><?php _e('Insert Icon', 'themify'); ?> </a> <?php } elseif ('radio' == $field['type']) { ?> <?php $option_js = isset($field['option_js']) && $field['option_js'] == true ? 'tf-option-checkbox-js' : ''; $option_js_wrap = isset($field['option_js']) && $field['option_js'] == true ? 'tf-option-checkbox-enable' : ''; ?> <div id="<?php echo esc_attr($field['id']); ?> " class="tfb_lb_option tf-radio-input-container <?php echo esc_attr($option_js_wrap); ?> "> <?php foreach ($field['options'] as $k => $v) { ?> <?php $default_checked = isset($field['default']) && $field['default'] == $k ? 'checked="checked"' : ''; $data_el = isset($field['option_js']) && $field['option_js'] == true ? 'data-selected="tf-group-element-' . $k . '"' : ''; ?> <input id="<?php echo esc_attr($field['id'] . '_' . $k); ?> " name="<?php echo esc_attr($field['id']); ?> " type="radio" class="<?php echo esc_attr($option_js); ?> " value="<?php echo esc_attr($k); ?> " <?php echo " {$default_checked} {$data_el}"; ?> /> <label for="<?php echo esc_attr($field['id'] . '_' . $k); ?> " class="pad-right"><?php echo wp_kses_post($v); ?> </label> <?php if (isset($field['break']) && $field['break'] == true) { ?> <br /> <?php } ?> <?php } ?> </div> <?php } elseif ('layout' == $field['type']) { ?> <p id="<?php echo esc_attr($field['id']); ?> " class="layout_icon tfb_lb_option themify-layout-icon"> <?php foreach ($field['options'] as $option) { ?> <a href="#" id="<?php echo esc_attr($option['value']); ?> " title="<?php echo esc_attr($option['label']); ?> " class="tfl-icon"> <?php $image_url = filter_var($option['img'], FILTER_VALIDATE_URL) ? $option['img'] : THEMIFY_BUILDER_URI . '/img/builder/' . $option['img']; ?> <img src="<?php echo esc_url($image_url); ?> " alt="<?php echo esc_attr($option['label']); ?> " /> </a> <?php } ?> </p> <?php } elseif ('image' == $field['type']) { ?> <input id="<?php echo esc_attr($field['id']); ?> " name="<?php echo esc_attr($field['id']); ?> " placeholder="<?php if (isset($field['value'])) { echo esc_attr($field['value']); } ?> " class="<?php echo esc_attr($field['class']); ?> themify-builder-uploader-input tfb_lb_option" type="text" <?php echo themify_builder_get_binding_data($field); ?> /><br /> <div class="small"> <?php if (is_multisite() && !is_upload_space_available()) { ?> <?php echo sprintf(__('Sorry, you have filled your %s MB storage quota so uploading has been disabled.', 'themify'), get_space_allowed()); ?> <?php } else { ?> <div class="themify-builder-plupload-upload-uic hide-if-no-js tf-upload-btn" id="<?php echo esc_attr($field['id']); ?> themify-builder-plupload-upload-ui"> <input id="<?php echo esc_attr($field['id']); ?> themify-builder-plupload-browse-button" type="button" value="<?php esc_attr_e(__('Upload', 'themify')); ?> " class="builder_button" /> <span class="ajaxnonceplu" id="ajaxnonceplu<?php echo wp_create_nonce($field['id'] . 'themify-builder-plupload'); ?> "></span> </div> <?php _e('or', 'themify'); ?> <a href="#" class="themify-builder-media-uploader tf-upload-btn" data-uploader-title="<?php esc_attr_e('Upload an Image', 'themify'); ?> " data-uploader-button-text="<?php esc_attr_e('Insert file URL', 'themify'); ?> "><?php _e('Browse Library', 'themify'); ?> </a> <?php } ?> </div> <p class="thumb_preview"> <span class="img-placeholder"></span> <a href="#" class="themify_builder_icon small delete themify-builder-delete-thumb"></a> </p> <?php } elseif ('checkbox' == $field['type']) { ?> <?php if (isset($field['before'])) { echo wp_kses_post($field['before']); } ?> <div id="<?php echo esc_attr($field['id']); ?> " class="tfb_lb_option themify-checkbox"> <?php foreach ($field['options'] as $opt) { ?> <?php $checkbox_checked = ''; if (isset($field['default']) && is_array($field['default'])) { if (in_array($opt['name'], $field['default'])) { $checkbox_checked = 'checked="checked"'; } } elseif (isset($field['default'])) { $checkbox_checked = checked($field['default'], $opt['name'], false); } ?> <input id="<?php echo esc_attr($field['id'] . '_' . $opt['name']); ?> " name="<?php echo esc_attr($field['id']); ?> []" type="checkbox" class="tf-checkbox" value="<?php echo esc_attr($opt['name']); ?> " <?php echo $checkbox_checked; ?> /> <label for="<?php echo esc_attr($field['id'] . '_' . $opt['name']); ?> " class="pad-right"><?php echo wp_kses_post($opt['value']); ?> </label> <?php if (isset($opt['help'])) { ?> <small><?php echo wp_kses_post($opt['help']); ?> </small> <?php } ?> <?php if (!isset($field['new_line']) || $field['new_line'] == true) { ?> <br /> <?php } ?> <?php } ?> </div> <?php if (isset($field['after'])) { echo wp_kses_post($field['after']); } ?> <?php } elseif ('textarea' == $field['type']) { ?> <textarea id="<?php echo esc_attr($field['id']); ?> " name="<?php echo esc_attr($field['id']); ?> " class="<?php echo esc_attr($field['class']); ?> tfb_lb_option" row="3" type="text" <?php echo themify_builder_get_binding_data($field); ?> ></textarea> <?php } elseif ('select' == $field['type']) { ?> <?php if (!isset($field['hide']) || $field['hide'] == false) { ?> <select id="<?php echo esc_attr($field['id']); ?> " name="<?php echo esc_attr($field['id']); ?> " class="tfb_lb_option" <?php echo themify_builder_get_binding_data($field); ?> > <?php if (isset($field['empty'])) { ?> <option value="<?php echo esc_attr($field['empty']['val']); ?> "><?php echo esc_html($field['empty']['label']); ?> </option> <?php } ?> <?php foreach ($field['options'] as $key => $value) { $selected = isset($field['default']) && $field['default'] == $value ? ' selected="selected"' : ''; echo '<option value="' . esc_attr($key) . '" ' . $selected . '>' . esc_html($value) . '</option>'; } ?> </select> <?php } // isset hide ?> <?php if (isset($field['help'])) { ?> <br /> <?php } // isset help ?> <?php } elseif ('selectbasic' == $field['type']) { ?> <select id="<?php echo esc_attr($field['id']); ?> " name="<?php echo esc_attr($field['id']); ?> " class="tfb_lb_option" <?php echo themify_builder_get_binding_data($field); ?> > <?php foreach ($field['options'] as $value) { $selected = isset($field['default']) && $field['default'] == $value ? ' selected="selected"' : ''; echo '<option value="' . esc_attr($value) . '" ' . $selected . '>' . esc_html($value) . '</option>'; } ?> </select> <?php } elseif ('select_menu' == $field['type']) { ?> <select id="<?php echo esc_attr($field['id']); ?> " name="<?php echo esc_attr($field['id']); ?> " class="tfb_lb_option select_menu_field" <?php echo themify_builder_get_binding_data($field); ?> > <option value=""><?php esc_html_e('Select a Menu...', 'themify'); ?> </option> <?php foreach ($field['options'] as $key => $value) { $selected = isset($field['default']) && $field['default'] == $value ? ' selected="selected"' : ''; echo '<option value="' . esc_attr($value->slug) . '" ' . $selected . ' data-termid="' . esc_attr($value->term_id) . '">' . esc_html($value->name) . '</option>'; } ?> </select> <?php } elseif ('query_category' == $field['type']) { ?> <?php $terms_tax = isset($field['options']['taxonomy']) ? $field['options']['taxonomy'] : 'category'; $terms_by_tax = get_terms($terms_tax); $terms_list = array(); $terms_list['0'] = array('title' => __('All Categories', 'themify'), 'slug' => '0'); foreach ($terms_by_tax as $term) { $terms_list[$term->term_id] = array('title' => $term->name, 'slug' => $term->slug); } ?> <select id="<?php echo esc_attr($field['id'] . '_dropdown'); ?> " class="query_category_single" <?php echo themify_builder_get_binding_data($field); ?> > <option></option> <?php foreach ($terms_list as $term_id => $term) { $term_selected = ''; printf('<option value="%s" data-termid="%s" %s>%s</option>', esc_attr($term['slug']), esc_attr($term_id), $term_selected, esc_html($term['title'])); } ?> </select> <?php _e('or', 'themify'); ?> <input class="small query_category_multiple" type="text" /><br /><small><?php _e('multiple category IDs (eg. 2,5,8) or slug (eg. news,blog,featured)', 'themify'); ?> </small><br /> <input type="hidden" id="<?php echo esc_attr($field['id']); ?> " name="<?php echo esc_attr($field['id']); ?> " value="" class="tfb_lb_option themify-option-query-cat" /> <?php /////////////////////////////////////////// // Query category single field /////////////////////////////////////////// } elseif ('query_category_single' == $field['type']) { ?> <?php echo preg_replace('/>/', '><option></option>', wp_dropdown_categories(array('taxonomy' => isset($field['options']['taxonomy']) ? $field['options']['taxonomy'] : 'category', 'class' => 'tfb_lb_option', 'show_option_all' => __('All Categories', 'themify'), 'hide_empty' => 0, 'echo' => 0, 'name' => $field['id'], 'selected' => '')), 1); echo '<br />'; ?> <?php /////////////////////////////////////////// // Multifield /////////////////////////////////////////// } elseif ('multifield' == $field['type']) { ?> <?php if (isset($field['options']['select'])) { ?> <select id="<?php echo esc_attr($field['options']['select']['id']); ?> " class="tfb_lb_option" <?php echo themify_builder_get_binding_data($field); ?> > <?php foreach ($field['options']['select']['options'] as $opt => $label) { ?> <option value="<?php echo esc_attr($opt); ?> "><?php echo esc_html($label); ?> </option> <?php } ?> </select> <?php } ?> <?php if (isset($field['options']['text'])) { ?> <input id="<?php echo esc_attr($field['options']['text']['id']); ?> " class="xsmall tfb_lb_option" type="text" <?php echo themify_builder_get_binding_data($field); ?> /> <?php if (isset($field['options']['text']['help'])) { ?> <small><?php echo wp_kses_post($field['options']['text']['help']); ?> </small> <?php } ?> <?php } ?> <?php if (isset($field['options']['colorpicker'])) { ?> <?php $color_class = isset($field['options']['colorpicker']['class']) ? $field['options']['colorpicker']['class'] : 'xsmall'; ?> <span class="builderColorSelect"><span></span></span> <input id="<?php echo esc_attr($field['options']['colorpicker']['id']); ?> " class="<?php echo esc_attr($color_class); ?> tfb_lb_option builderColorSelectInput" type="text" /> <?php } ?> <?php /////////////////////////////////////////// // Type Slider option /////////////////////////////////////////// } elseif ('slider' == $field['type']) { ?> <?php foreach ($field['options'] as $fieldsec) { ?> <?php if ($fieldsec['type'] == 'select') { ?> <select id="<?php echo esc_attr($fieldsec['id']); ?> " name="<?php echo esc_attr($fieldsec['id']); ?> " class="tfb_lb_option" <?php echo themify_builder_get_binding_data($field); ?> > <?php if (isset($fieldsec['empty'])) { ?> <option value="<?php echo esc_attr($fieldsec['empty']['val']); ?> "><?php echo esc_html($fieldsec['empty']['label']); ?> </option> <?php } ?> <?php foreach ($fieldsec['options'] as $key => $value) { $selected = isset($fieldsec['default']) && $fieldsec['default'] == $value ? ' selected="selected"' : ''; echo '<option value="' . esc_attr($key) . '" ' . $selected . '>' . esc_html($value) . '</option>'; } ?> </select> <?php } elseif ($fieldsec['type'] == 'text') { ?> <input id="<?php echo esc_attr($fieldsec['id']); ?> " name="<?php echo esc_attr($fieldsec['id']); ?> " class="<?php echo esc_attr($fieldsec['class']); ?> tfb_lb_option" class="<?php echo esc_attr($fieldsec['class']); ?> tfb_lb_option" type="text" /> <?php echo isset($fieldsec['unit']) ? '<small>' . esc_html($fieldsec['unit']) . '</small>' : ''; ?> <?php } ?> <?php echo isset($fieldsec['help']) ? wp_kses_post($fieldsec['help']) : ''; ?> <br /> <?php } ?> <?php } ?> <?php // hook actions do_action('themify_builder_lightbox_fields', $field, $module_name); ?> <?php if (isset($field['break']) && $field['break'] == true) { ?> <br /> <?php } ?> <?php if (isset($field['help'])) { ?> <small><?php echo wp_kses_post($field['help']); ?> </small> <?php } ?> </div> <!-- /themify_builder_input --> <?php } } ?> <?php if ($field['type'] != 'builder' && (!isset($field['hide']) || $field['hide'] == false)) { ?> </div> <!-- /themify_builder_field --> <?php } ?> <?php if (isset($field['separated']) && $field['separated'] == 'bottom') { ?> <hr /> <?php } } }
<?php if (count($styling_settings) > 0) { ?> <li><a href="#themify_builder_options_styling"><?php _e('Styling', 'themify'); ?> </a></li> <?php } ?> </ul> <div id="themify_builder_options_setting" class="themify_builder_options_tab_content"> <?php if (count($module_settings) > 0) { themify_builder_module_settings_field($module_settings, $module->slug); } ?> </div> <?php if (count($styling_settings) > 0) { ?> <div id="themify_builder_options_styling" class="themify_builder_options_tab_content"> <?php themify_render_styling_settings($styling_settings); ?> <p> <a href="#" class="reset-module-styling" data-reset="module">