PodsUI::filters PHP Method

filters() public method

public filters ( )
    public function filters()
    {
        include_once ABSPATH . 'wp-admin/includes/template.php';
        wp_enqueue_script('thickbox');
        wp_enqueue_style('pods-ui-list-table', PODS_URL . 'ui/css/pods-ui-list-table.css', array('thickbox'), PODS_VERSION);
        $filters = $this->filters;
        foreach ($filters as $k => $filter) {
            if (isset($this->pod->fields[$filter])) {
                $filter_field = $this->pod->fields[$filter];
            } elseif (isset($this->fields['manage'][$filter])) {
                $filter_field = $this->fields['manage'][$filter];
            } else {
                continue;
            }
            if (isset($filter_field) && in_array($filter_field['type'], array('date', 'datetime', 'time'))) {
                if ('' == pods_var_raw('filter_' . $filter . '_start', 'get', '', null, true) && '' == pods_var_raw('filter_' . $filter . '_end', 'get', '', null, true)) {
                    unset($filters[$k]);
                }
            } elseif ('' === pods_var_raw('filter_' . $filter, 'get', '')) {
                unset($filters[$k]);
            }
        }
        $filtered = false;
        if (!empty($filters)) {
            $filtered = true;
        }
        ?>
    <div class="pods-ui-filter-bar">
        <div class="pods-ui-filter-bar-primary">
            <?php 
        if (!empty($this->views)) {
            ?>
                <ul class="subsubsub">
                    <li class="pods-ui-filter-view-label"><strong><?php 
            echo $this->heading['views'];
            ?>
</strong></li>

                    <?php 
            foreach ($this->views as $view => $label) {
                if (false === strpos($label, '<a')) {
                    $link = pods_query_arg(array('view' . $this->num => $view, 'pg' . $this->num => ''), self::$allowed, $this->exclusion());
                    if ($this->view == $view) {
                        $label = '<a href="' . esc_url($link) . '" class="current">' . $label . '</a>';
                    } else {
                        $label = '<a href="' . esc_url($link) . '">' . $label . '</a>';
                    }
                }
                ?>
                        <li class="<?php 
                echo esc_attr($view);
                ?>
"><?php 
                echo $label;
                ?>
</li>
                    <?php 
            }
            ?>
                </ul>
            <?php 
        }
        ?>

            <?php 
        if (false !== $this->search && false !== $this->searchable) {
            ?>
                <p class="search-box">
                    <?php 
            if ($filtered || '' != pods_var_raw('search' . $this->num, 'get', '', null, true)) {
                $clear_filters = array('search' . $this->num => false);
                foreach ($this->filters as $filter) {
                    $clear_filters['filter_' . $filter . '_start'] = false;
                    $clear_filters['filter_' . $filter . '_end'] = false;
                    $clear_filters['filter_' . $filter] = false;
                }
                ?>
                        <a href="<?php 
                echo esc_url(pods_query_arg($clear_filters, array('orderby' . $this->num, 'orderby_dir' . $this->num, 'limit' . $this->num, 'page'), $this->exclusion()));
                ?>
" class="pods-ui-filter-reset">[<?php 
                _e('Reset', 'pods');
                ?>
]</a>
                    <?php 
            }
            if (false !== $this->do_hook('filters_show_search', true)) {
                ?>
						&nbsp;&nbsp; <label class="screen-reader-text" for="page-search<?php 
                echo esc_attr($this->num);
                ?>
-input"><?php 
                _e('Search', 'pods');
                ?>
:</label>
						<?php 
                echo PodsForm::field('search' . $this->num, $this->search, 'text', array('attributes' => array('id' => 'page-search' . $this->num . '-input')));
                ?>
					<?php 
            } else {
                echo PodsForm::field('search' . $this->num, '', 'hidden');
            }
            ?>

                    <?php 
            echo PodsForm::submit_button($this->header['search'], 'button', false, false, array('id' => 'search' . $this->num . '-submit'));
            ?>
                </p>
            <?php 
        }
        ?>
        </div>

        <?php 
        if (!empty($this->filters)) {
            ?>
            <div class="pods-ui-filter-bar-secondary">
                <ul class="subsubsub">
                    <?php 
            if (!$filtered) {
                ?>
                        <li class="pods-ui-filter-bar-add-filter">
                            <a href="#TB_inline?width=640&inlineId=pods-ui-posts-filter-popup" class="thickbox" title="<?php 
                esc_attr_e('Advanced Filters', 'pods');
                ?>
">
                                <?php 
                _e('Advanced Filters', 'pods');
                ?>
                            </a>
                        </li>
                    <?php 
            } else {
                ?>
                        <li class="pods-ui-filter-bar-add-filter">
                            <a href="#TB_inline?width=640&inlineId=pods-ui-posts-filter-popup" class="thickbox" title="<?php 
                esc_attr_e('Advanced Filters', 'pods');
                ?>
">
                                + <?php 
                _e('Add Filter', 'pods');
                ?>
                            </a>
                        </li>
                    <?php 
            }
            foreach ($filters as $filter) {
                $value = pods_var_raw('filter_' . $filter, 'get');
                if (isset($this->pod->fields[$filter])) {
                    $filter_field = $this->pod->fields[$filter];
                } elseif (isset($this->fields['manage'][$filter])) {
                    $filter_field = $this->fields['manage'][$filter];
                } else {
                    continue;
                }
                $data_filter = 'filter_' . $filter;
                $start = $end = $value_label = '';
                if (in_array($filter_field['type'], array('date', 'datetime', 'time'))) {
                    $start = pods_var_raw('filter_' . $filter . '_start', 'get', '', null, true);
                    $end = pods_var_raw('filter_' . $filter . '_end', 'get', '', null, true);
                    if (!empty($start) && !in_array($start, array('0000-00-00', '0000-00-00 00:00:00', '00:00:00'))) {
                        $start = PodsForm::field_method($filter_field['type'], 'convert_date', $start, 'n/j/Y');
                    }
                    if (!empty($end) && !in_array($end, array('0000-00-00', '0000-00-00 00:00:00', '00:00:00'))) {
                        $end = PodsForm::field_method($filter_field['type'], 'convert_date', $end, 'n/j/Y');
                    }
                    $value = trim($start . ' - ' . $end, ' -');
                    $data_filter = 'filter_' . $filter . '_start';
                } elseif ('pick' == $filter_field['type']) {
                    $value_label = trim(PodsForm::field_method('pick', 'value_to_label', $filter, $value, $filter_field, $this->pod->pod_data, null));
                } elseif ('boolean' == $filter_field['type']) {
                    $yesno_options = array('1' => pods_var_raw('boolean_yes_label', $filter_field['options'], __('Yes', 'pods'), null, true), '0' => pods_var_raw('boolean_no_label', $filter_field['options'], __('No', 'pods'), null, true));
                    if (isset($yesno_options[(string) $value])) {
                        $value_label = $yesno_options[(string) $value];
                    }
                }
                if (strlen($value_label) < 1) {
                    $value_label = $value;
                }
                ?>
                        <li class="pods-ui-filter-bar-filter" data-filter="<?php 
                echo esc_attr($data_filter);
                ?>
">
                            <a href="#TB_inline?width=640&inlineId=pods-ui-posts-filter-popup" class="thickbox" title="<?php 
                esc_attr_e('Advanced Filters', 'pods');
                ?>
">
                                <strong><?php 
                echo $filter_field['label'];
                ?>
:</strong>
                                <?php 
                echo esc_html($value_label);
                ?>
                            </a>

                            <a href="#remove-filter" class="remove-filter" title="<?php 
                esc_attr_e('Remove Filter', 'pods');
                ?>
">x</a>

                            <?php 
                if (in_array($filter_field['type'], array('date', 'datetime', 'time'))) {
                    echo PodsForm::field('filter_' . $filter . '_start', $start, 'hidden');
                    echo PodsForm::field('filter_' . $filter . '_end', $end, 'hidden');
                } else {
                    echo PodsForm::field($data_filter, $value, 'hidden');
                }
                ?>
                        </li>
                    <?php 
            }
            ?>
                </ul>
            </div>
        <?php 
        }
        ?>
    </div>

    <script type="text/javascript">
        jQuery( function() {
            jQuery( '.pods-ui-filter-bar-secondary' ).on( 'click', '.remove-filter', function ( e ) {
                jQuery( '.pods-ui-filter-popup #' + jQuery( this ).parent().data( 'filter' ) ).remove();

                jQuery( this ).parent().find( 'input' ).each( function () {
                    jQuery( this ).remove();
                } );

                jQuery( 'form#posts-filter [name="pg<?php 
        echo esc_attr($this->num);
        ?>
"]' ).prop( 'disabled', true );
                jQuery( 'form#posts-filter [name="action<?php 
        echo esc_attr($this->num);
        ?>
"]' ).prop( 'disabled', true );
                jQuery( 'form#posts-filter [name="action_bulk<?php 
        echo esc_attr($this->num);
        ?>
"]' ).prop( 'disabled', true );
	            jQuery( 'form#posts-filter [name="_wpnonce<?php 
        echo esc_attr($this->num);
        ?>
"]' ).prop( 'disabled', true );

                jQuery( 'form#posts-filter' ).submit();

                e.preventDefault();
            } );
        } );
    </script>
<?php 
    }