resources
7 years ago
ajax-customers.php
6 years ago
ajax-posts.php
7 years ago
ajax-products.php
8 years ago
ajax-terms.php
7 years ago
buttons.php
8 years ago
checkbox-array.php
6 years ago
checkbox.php
8 years ago
colorpicker.php
5 years ago
country-select.php
6 years ago
custom.php
7 years ago
customtabs.php
8 years ago
date-format.php
6 years ago
datepicker.php
6 years ago
dimensions.php
5 years ago
hidden.php
8 years ago
html.php
8 years ago
icons.php
8 years ago
image-gallery.php
8 years ago
inline-fields.php
5 years ago
list-table.php
6 years ago
multi-colorpicker.php
6 years ago
multi-select.php
6 years ago
number.php
8 years ago
onoff.php
6 years ago
password.php
6 years ago
preview.php
8 years ago
radio.php
5 years ago
select-buttons.php
6 years ago
select-images.php
6 years ago
select-mailchimp.php
8 years ago
select.php
5 years ago
sep.php
8 years ago
sidebarlist.php
8 years ago
sidebars.php
8 years ago
simple-text.php
8 years ago
slider.php
8 years ago
text-array.php
8 years ago
text-button.php
8 years ago
text.php
6 years ago
textarea-codemirror.php
8 years ago
textarea-editor.php
5 years ago
textarea.php
6 years ago
title.php
6 years ago
toggle-element-fixed.php
5 years ago
toggle-element.php
5 years ago
upload.php
6 years ago
customtabs.php
151 lines
| 1 | <?php |
| 2 | /** |
| 3 | * This file belongs to the YIT Plugin Framework. |
| 4 | * |
| 5 | * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0) |
| 6 | * that is bundled with this package in the file LICENSE.txt. |
| 7 | * It is also available through the world-wide-web at this URL: |
| 8 | * http://www.gnu.org/licenses/gpl-3.0.txt |
| 9 | * |
| 10 | * @var array $field |
| 11 | * |
| 12 | */ |
| 13 | |
| 14 | !defined( 'ABSPATH' ) && exit; // Exit if accessed directly |
| 15 | |
| 16 | extract( $field ); |
| 17 | |
| 18 | $field[ 'labels' ] = array( |
| 19 | 'plural_name' => 'Tabs', |
| 20 | 'singular_name' => 'Tab', |
| 21 | 'item_name_sing' => 'Tab', |
| 22 | 'item_name_plur' => 'Tabs', |
| 23 | ); |
| 24 | $value = is_array( $value ) ? $value : array(); |
| 25 | ?> |
| 26 | <div id="yit_custom_tabs" class="panel wc-metaboxes-wrapper" style="display: block;"> |
| 27 | <p class="toolbar"> |
| 28 | <a href="#" class="close_all"><?php _e( 'Close all', 'yith-plugin-fw' ) ?></a><a href="#" class="expand_all"><?php _e( 'Expand all', 'yith-plugin-fw' ) ?></a> |
| 29 | </p> |
| 30 | |
| 31 | <div class="yit_custom_tabs wc-metaboxes ui-sortable" style=""> |
| 32 | |
| 33 | <?php if ( !empty( $value ) ): ?> |
| 34 | <?php foreach ( $value as $i => $tab ): ?> |
| 35 | <div class="yit_custom_tab wc-metabox closed" rel="0"> |
| 36 | <h3> |
| 37 | <button type="button" class="remove_row button"><?php _e( 'Remove', 'yith-plugin-fw' ) ?></button> |
| 38 | <div class="handlediv" title="Click to toggle"></div> |
| 39 | <strong class="attribute_name"><?php echo $tab[ 'name' ] ?></strong> |
| 40 | </h3> |
| 41 | |
| 42 | <table cellpadding="0" cellspacing="0" class="woocommerce_attribute_data wc-metabox-content" style="display: table;"> |
| 43 | <tbody> |
| 44 | <tr> |
| 45 | <td class="attribute_name"> |
| 46 | <label><?php _e( 'Name', 'yith-plugin-fw' ) ?>:</label> |
| 47 | <input type="text" class="attribute_name" name="<?php echo $name ?>[<?php echo $i ?>][name]" value="<?php echo esc_attr( $tab[ 'name' ] ) ?>"> |
| 48 | <input type="hidden" name="<?php echo $name ?>[<?php echo $i ?>][position]" class="attribute_position" value="<?php echo $i ?>"> |
| 49 | </td> |
| 50 | |
| 51 | <td rowspan="3"> |
| 52 | <label><?php _e( 'Value', 'yith-plugin-fw' ) ?>:</label> |
| 53 | <textarea name="<?php echo $name ?>[<?php echo $i ?>][value]" cols="5" rows="5" placeholder="<?php _e( 'Content of the tab. (HTML is supported)', 'yith-plugin-fw' ) ?>"><?php echo $tab[ 'value' ] ?></textarea> |
| 54 | </td> |
| 55 | </tr> |
| 56 | </tbody> |
| 57 | </table> |
| 58 | |
| 59 | </div> |
| 60 | <?php endforeach ?> |
| 61 | <?php endif ?> |
| 62 | </div> |
| 63 | |
| 64 | <p class="toolbar"> |
| 65 | <button type="button" class="button button-primary add_custom_tab"><?php _e( 'Add custom product tab', 'yith-plugin-fw' ) ?></button> |
| 66 | </p> |
| 67 | |
| 68 | <div class="clear"></div> |
| 69 | </div> |
| 70 | |
| 71 | <script> |
| 72 | jQuery( document ).ready( function ( $ ) { |
| 73 | // Add rows |
| 74 | $( 'button.add_custom_tab' ).on( 'click', function () { |
| 75 | |
| 76 | var size = $( '.yit_custom_tabs .yit_custom_tab' ).size() + 1; |
| 77 | |
| 78 | // Add custom attribute row |
| 79 | $( '.yit_custom_tabs' ).append( '<div class="yit_custom_tab wc-metabox">\ |
| 80 | <h3>\ |
| 81 | <button type="button" class="remove_row button"><?php _e( 'Remove', 'yith-plugin-fw' ) ?></button>\ |
| 82 | <div class="handlediv" title="Click to toggle"></div>\ |
| 83 | <strong class="attribute_name"></strong>\ |
| 84 | </h3>\ |
| 85 | <table cellpadding="0" cellspacing="0" class="woocommerce_attribute_data">\ |
| 86 | <tbody>\ |
| 87 | <tr>\ |
| 88 | <td class="attribute_name">\ |
| 89 | <label><?php _e( 'Name', 'yith-plugin-fw' ) ?>:</label>\ |
| 90 | <input type="text" class="attribute_name" name="<?php echo $name ?>[' + size + '][name]" />\ |
| 91 | <input type="hidden" name="<?php echo $name ?>[' + size + '][position]" class="attribute_position" value="' + size + '" />\ |
| 92 | </td>\ |
| 93 | <td rowspan="3">\ |
| 94 | <label><?php _e( 'Value', 'yith-plugin-fw' ) ?>:</label>\ |
| 95 | <textarea name="<?php echo $name ?>[' + size + '][value]" cols="5" rows="5" placeholder="<?php echo addslashes( __( 'Content of the tab. (HTML is supported)', 'yith-plugin-fw' ) ) ?>"></textarea>\ |
| 96 | </td>\ |
| 97 | </tr>\ |
| 98 | </tbody>\ |
| 99 | </table>\ |
| 100 | </div>' ); |
| 101 | |
| 102 | } ); |
| 103 | |
| 104 | |
| 105 | $( '.yit_custom_tabs' ).on( 'click', 'button.remove_row', function () { |
| 106 | var answer = confirm( "<?php _e( 'Do you want to remove the custom tab?', 'yith-plugin-fw' ) ?>" ); |
| 107 | if ( answer ) { |
| 108 | var $parent = $( this ).parent().parent(); |
| 109 | |
| 110 | $parent.remove(); |
| 111 | attribute_row_indexes(); |
| 112 | } |
| 113 | return false; |
| 114 | } ); |
| 115 | |
| 116 | // Attribute ordering |
| 117 | $( '.yit_custom_tabs' ).sortable( { |
| 118 | items : '.yit_custom_tab', |
| 119 | cursor : 'move', |
| 120 | axis : 'y', |
| 121 | handle : 'h3', |
| 122 | scrollSensitivity : 40, |
| 123 | forcePlaceholderSize: true, |
| 124 | helper : 'clone', |
| 125 | opacity : 0.65, |
| 126 | placeholder : 'wc-metabox-sortable-placeholder', |
| 127 | start : function ( event, ui ) { |
| 128 | ui.item.css( 'background-color', '#f6f6f6' ); |
| 129 | }, |
| 130 | stop : function ( event, ui ) { |
| 131 | ui.item.removeAttr( 'style' ); |
| 132 | attribute_row_indexes(); |
| 133 | } |
| 134 | } ); |
| 135 | |
| 136 | function attribute_row_indexes() { |
| 137 | $( '.yit_custom_tabs .yit_custom_tab' ).each( function ( index, el ) { |
| 138 | var newVal = '[' + $( el ).index( '.yit_custom_tabs .yit_custom_tab' ) + ']'; |
| 139 | var oldVal = '[' + $( '.attribute_position', el ).val() + ']'; |
| 140 | |
| 141 | $( ':input:not(button)', el ).each( function () { |
| 142 | var name = $( this ).attr( 'name' ); |
| 143 | $( this ).attr( 'name', name.replace( oldVal, newVal ) ); |
| 144 | } ); |
| 145 | |
| 146 | $( '.attribute_position', el ).val( $( el ).index( '.yit_custom_tabs .yit_custom_tab' ) ); |
| 147 | } ); |
| 148 | } |
| 149 | |
| 150 | } ); |
| 151 | </script> |