| 1 |
<div id="cooked-settings-prewrap"><div id="cooked-settings-wrap"> |
| 2 |
|
| 3 |
<form action="options.php" method="post"> |
| 4 |
|
| 5 |
<div class="cooked-settings-update-button"> |
| 6 |
<?php submit_button( __( 'Update Settings', 'cooked' ), 'primary', 'submit', false ); ?> |
| 7 |
</div> |
| 8 |
|
| 9 |
<div class="cooked-settings-header"> |
| 10 |
<i class="cooked-icon cooked-icon-cooked-icon"></i> <?php esc_html_e('Cooked Settings','cooked'); ?> |
| 11 |
</div> |
| 12 |
<div id="cooked-settings-panel" class="wrap"><?php |
| 13 |
|
| 14 |
global $_cooked_settings; |
| 15 |
$Cooked_Settings = new Cooked_Settings(); |
| 16 |
$cooked_settings_tabs_fields = $Cooked_Settings->tabs_fields(); |
| 17 |
$parent_page_slug = ( isset($_cooked_settings['browse_page']) && $_cooked_settings['browse_page'] ? basename( get_permalink( $_cooked_settings['browse_page'] ) ) : false ); |
| 18 |
|
| 19 |
$tab_counter = 1; |
| 20 |
echo '<ul id="cooked-settings-tabs" class="cooked-clearfix">'; |
| 21 |
foreach ( $cooked_settings_tabs_fields as $tab_slug => $tab ): |
| 22 |
echo '<li id="cooked-settings-tab-' . esc_attr( $tab_slug ) . '"' . ( $tab_counter == 1 ? ' class="active"' : '' ) . '><a href="#' . esc_attr( $tab_slug ) . '"><i class="cooked-icon cooked-icon-' . esc_attr( $tab['icon'] ) . '"></i> ' . esc_attr( $tab['name'] ) . '</a></li>'; |
| 23 |
$tab_counter++; |
| 24 |
endforeach; |
| 25 |
echo '</ul>'; |
| 26 |
|
| 27 |
?> |
| 28 |
|
| 29 |
<?php settings_errors('cooked_settings_group'); ?> |
| 30 |
|
| 31 |
<div id="cooked_recipe_settings" class="cooked-settings-form-wrapper"> |
| 32 |
|
| 33 |
<input type="hidden" name="cooked_settings_saved" value="true" /> |
| 34 |
|
| 35 |
<?php settings_fields( 'cooked_settings_group' ); ?> |
| 36 |
|
| 37 |
<div class="cooked-settings-tab-content-wrapper"> |
| 38 |
|
| 39 |
<?php |
| 40 |
|
| 41 |
global $conditions; |
| 42 |
$conditions = []; |
| 43 |
$conditional_requirements_js = []; |
| 44 |
$tab_counter = 1; |
| 45 |
|
| 46 |
foreach ( $cooked_settings_tabs_fields as $tab_slug => $tab ): |
| 47 |
echo '<div id="cooked-settings-tab-content-' . esc_attr( $tab_slug ) . '" class="cooked-settings-tab-content">'; |
| 48 |
|
| 49 |
// Add a hidden H2 tag for the messages, if any, to show up below it. |
| 50 |
if ($tab_counter == 1): echo '<h2 style="display:none;"></h2>'; endif; |
| 51 |
foreach ( $tab['fields'] as $name => $field ): |
| 52 |
|
| 53 |
$notitle = false; |
| 54 |
$conditional_requirement = ''; |
| 55 |
|
| 56 |
$class = ( isset($field['class']) ? ' ' . $field['class'] : '' ); |
| 57 |
$current_val = ( isset($_cooked_settings[$name]) ? $_cooked_settings[$name] : null ); |
| 58 |
$field_type = 'field_' . esc_attr( $field['type'] ); |
| 59 |
$field_options = ( isset($field['options']) ? $field['options'] : false ); |
| 60 |
$field_options = ( !$field_options ? ( isset($field['placeholder']) ? $field['placeholder'] : $field_options ) : $field_options ); |
| 61 |
$color = ( isset($field['color']) && $field['color'] ? $field['color'] : false ); |
| 62 |
|
| 63 |
if ( method_exists ( $Cooked_Settings, $field_type ) ): |
| 64 |
|
| 65 |
if ( $field['type'] == 'misc_button' || $field['type'] == 'nonce' ): |
| 66 |
$notitle = true; |
| 67 |
$field_options = ( isset($field['title']) ? $field['title'] : false ); |
| 68 |
endif; |
| 69 |
|
| 70 |
if ( isset($field['conditional_requirement']) && $field['conditional_requirement'] ): |
| 71 |
if ( is_array($field['conditional_requirement']) ): |
| 72 |
$conditional_requirement = ' v-show="' . implode( ' && ', $field['conditional_requirement'] ) . '"'; |
| 73 |
else: |
| 74 |
$conditional_requirement = ' v-show="' . esc_attr($field['conditional_requirement']) . '"'; |
| 75 |
endif; |
| 76 |
endif; |
| 77 |
|
| 78 |
echo ( $conditional_requirement ? '<transition name="fade">' : '' ); |
| 79 |
echo '<div' . wp_kses( $conditional_requirement, array() ) . ' class="recipe-setting-block ' . esc_attr( $field['type'] ) . ' cooked-bm-25' . esc_attr( $class ) . '">'; |
| 80 |
echo ( !$notitle ? '<h3 class="cooked-settings-title">' . wp_kses_post( $field['title'] ) . '</h3>' : '' ); |
| 81 |
echo ( isset($field['desc']) && $field['desc'] ? '<p>' . wp_kses_post( $field['desc'] ). '</p>' : '' ); |
| 82 |
$Cooked_Settings->$field_type( $name, $field_options, $color, $field ); |
| 83 |
echo '</div>'; |
| 84 |
echo ( $conditional_requirement ? '</transition>' : '' ); |
| 85 |
|
| 86 |
endif; |
| 87 |
|
| 88 |
endforeach; |
| 89 |
$tab_counter++; |
| 90 |
|
| 91 |
echo '</div>'; |
| 92 |
endforeach; ?> |
| 93 |
|
| 94 |
</div> |
| 95 |
|
| 96 |
</div> |
| 97 |
|
| 98 |
<?php if ( COOKED_DEV ): |
| 99 |
Cooked_Functions::wpml_xml( $cooked_settings_tabs_fields ); |
| 100 |
endif; ?> |
| 101 |
|
| 102 |
</div><?php |
| 103 |
|
| 104 |
if ( !empty($conditions) ): |
| 105 |
|
| 106 |
foreach ( $conditions as $setting_name => $array ): |
| 107 |
foreach ( $array as $name => $true_val ): |
| 108 |
$val = ( isset( $_cooked_settings[$setting_name] ) && is_array( $_cooked_settings[$setting_name] ) && in_array( $true_val, $_cooked_settings[$setting_name] ) ? 'true' : 'false' ); |
| 109 |
$conditional_requirements_js[] = "'$name':$val"; |
| 110 |
endforeach; |
| 111 |
endforeach; ?> |
| 112 |
|
| 113 |
<script type="text/javascript"> |
| 114 |
var vm = new Vue({ |
| 115 |
el: '#cooked-settings-panel', |
| 116 |
data: { |
| 117 |
<?php echo wp_kses( implode( ',', $conditional_requirements_js ), array() ); ?> |
| 118 |
} |
| 119 |
}); |
| 120 |
</script> |
| 121 |
|
| 122 |
<style type="text/css"> |
| 123 |
.fade-enter-active { transition: opacity .5s } |
| 124 |
.fade-enter, .fade-leave-to { opacity: 0 } |
| 125 |
</style><?php |
| 126 |
|
| 127 |
endif; |
| 128 |
|
| 129 |
?></form> |
| 130 |
|
| 131 |
</div></div> |