1: <?php
2:
3: 4: 5: 6: 7: 8: 9:
10: function papi_get_tab_options( $options ) {
11: if ( ! is_array( $options ) && ! is_object( $options ) || empty( $options ) ) {
12: return;
13: }
14:
15: if ( is_object( $options ) ) {
16: $options = (array) $options;
17: }
18:
19: $defaults = [
20: 'capabilities' => [],
21: 'icon' => '',
22: 'sort_order' => papi_filter_settings_sort_order(),
23:
24: '_name' => ''
25: ];
26:
27: $options = array_merge( $defaults, $options );
28:
29: return (object) $options;
30: }
31:
32: 33: 34: 35: 36: 37: 38:
39: function papi_setup_tabs( array $tabs ) {
40: $_tabs = [];
41:
42: foreach ( $tabs as $tab ) {
43: $tab = (object) $tab;
44:
45: if ( ! isset( $tab->options ) ) {
46: continue;
47: }
48:
49: $tab->options = papi_get_tab_options( $tab->options );
50:
51: if ( papi_current_user_is_allowed( $tab->options->capabilities ) ) {
52: $_tabs[] = $tab;
53: }
54: }
55:
56: $tabs = papi_sort_order( $_tabs );
57:
58:
59: $len = count( $tabs );
60: for ( $i = 0; $i < $len; $i ++ ) {
61: $tabs[ $i ]->options->_name = papi_html_name( $tabs[$i]->options->title ) . '_' . $i;
62: }
63:
64: return $tabs;
65: }
66:
67: 68: 69: 70: 71: 72: 73: 74:
75: function papi_tab( $file_or_options, $properties = [] ) {
76: list( $options, $properties ) = papi_get_options_and_properties( $file_or_options, $properties, false );
77:
78:
79:
80: return (object) [
81: 'options' => $options,
82: 'properties' => $properties,
83: 'tab' => true
84: ];
85: }
86: