PluginProbe
Woody Code Snippets – Insert PHP, CSS, JS, and Header/Footer Scripts / trunk
Woody Code Snippets – Insert PHP, CSS, JS, and Header/Footer Scripts vtrunk
2.7.7 2.7.6 2.7.5 2.7.4 trunk 1.3 2.0.4 2.0.6 2.1.91 2.2.4 2.2.7 2.2.9 2.3.1 2.3.10 2.4.10 2.4.2 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.6.0 2.6.1 2.7.0 All 28 releases
← All changes | admin/includes/class.filter.snippet.php +111 -88 2.2.4trunk View file →
@@ -1,88 +1,111 @@
1 -<?php
2 -/**
3 - * Filter for snippet list
4 - * @author Webcraftic <wordpress.webraftic@gmail.com>
5 - * @copyright (c) 16.11.2018, Webcraftic
6 - * @version 1.0
7 - */
8 -
9 -// Exit if accessed directly
10 -if ( ! defined( 'ABSPATH' ) ) {
11 - exit;
12 -}
13 -
14 -class WINP_Filter_List {
15 -
16 - /**
17 - * WINP_Filter_List constructor.
18 - */
19 - public function __construct()
20 - {
21 - add_action( 'restrict_manage_posts', array( $this, 'restrictManagePosts' ) );
22 - add_filter( 'parse_query', array( $this, 'parseQuery' ) );
23 - }
24 -
25 - /**
26 - * Create the dropdown
27 - */
28 - function restrictManagePosts()
29 - {
30 - $type = WINP_Plugin::app()->request->get( 'post_type', 'post' );
31 -
32 - $terms = get_terms(
33 - array(
34 - 'taxonomy' => WINP_SNIPPETS_TAXONOMY,
35 - 'hide_empty' => true,
36 - )
37 - );
38 -
39 - if ( WINP_SNIPPETS_POST_TYPE == $type && ! empty( $terms ) ) { ?>
40 - <select name="winp_filter_tag">
41 - <option value=""><?php _e( 'Filter by tag:', 'insert-php' ); ?></option>
42 - <?php
43 - $current_filter = WINP_Plugin::app()->request->get( 'winp_filter_tag', '' );
44 - foreach ( $terms as $term ) {
45 - if ( is_object( $term ) && isset( $term->slug ) ) {
46 - printf(
47 - '<option value="%s"%s>%s</option>',
48 - $term->slug,
49 - $term->slug == $current_filter ? ' selected="selected"' : '',
50 - $term->name
51 - );
52 - }
53 - }
54 - ?>
55 - </select>
56 - <?php
57 - }
58 - }
59 -
60 - /**
61 - * If submitted filter by tag
62 - *
63 - * @param $query
64 - */
65 - function parseQuery( $query ) {
66 - global $pagenow;
67 -
68 - $type = WINP_Plugin::app()->request->get( 'post_type', 'post' );
69 -
70 - if (
71 - WINP_SNIPPETS_POST_TYPE == $type
72 - && is_admin()
73 - && 'edit.php' == $pagenow
74 - && WINP_Plugin::app()->request->get( 'winp_filter_tag', '' )
75 - ) {
76 - $taxquery = array(
77 - array(
78 - 'taxonomy' => WINP_SNIPPETS_TAXONOMY,
79 - 'field' => 'slug',
80 - 'terms' => array( WINP_Plugin::app()->request->get( 'winp_filter_tag', '' ) ),
81 - 'operator' => 'IN',
82 - ),
83 - );
84 - $query->set( 'tax_query', $taxquery );
85 - }
86 - }
87 -
88 -}
1 +<?php
2 +/**
3 + * Filter for snippet list
4 + *
5 + * @package Woody_Code_Snippets
6 + */
7 +
8 +// Exit if accessed directly
9 +if ( ! defined( 'ABSPATH' ) ) {
10 + exit;
11 +}
12 +
13 +class WINP_Filter_List {
14 +
15 + /**
16 + * WINP_Filter_List constructor.
17 + */
18 + public function __construct() {
19 + add_action( 'restrict_manage_posts', [ $this, 'restrictManagePosts' ] );
20 + add_filter( 'parse_query', [ $this, 'parseQuery' ] );
21 + }
22 +
23 + /**
24 + * Create the dropdown
25 + */
26 + function restrictManagePosts() {
27 + $type = WINP_HTTP::get( 'post_type', 'post' );
28 +
29 + $terms = get_terms(
30 + [
31 + 'taxonomy' => WINP_SNIPPETS_TAXONOMY,
32 + 'hide_empty' => true,
33 + ]
34 + );
35 +
36 + if ( WINP_SNIPPETS_POST_TYPE == $type && ! empty( $terms ) ) { ?>
37 + <select name="winp_filter_tag">
38 + <option value=""><?php _e( 'Filter by tag:', 'insert-php' ); ?></option>
39 + <?php
40 + $current_filter = WINP_HTTP::get( 'winp_filter_tag', '' );
41 + foreach ( $terms as $term ) {
42 + if ( is_object( $term ) && isset( $term->slug ) ) {
43 + printf( '<option value="%s"%s>%s</option>', $term->slug, $term->slug == $current_filter ? ' selected="selected"' : '', $term->name );
44 + }
45 + }
46 + ?>
47 + </select>
48 + <?php
49 + }
50 +
51 + $types = [
52 + 'PHP',
53 + 'HTML',
54 + 'CSS',
55 + 'JS',
56 + 'Universal',
57 + 'Text',
58 + 'Advertisement',
59 + ];
60 +
61 + if ( WINP_SNIPPETS_POST_TYPE == $type && ! empty( $types ) ) {
62 + ?>
63 + <select name="winp_filter_type">
64 + <option value=""><?php _e( 'Filter by type:', 'insert-php' ); ?></option>
65 + <?php
66 + $current_type = WINP_HTTP::get( 'winp_filter_type', '' );
67 + foreach ( $types as $t ) {
68 + if ( is_string( $t ) ) {
69 + printf( '<option value="%s"%s>%s</option>', strtolower( $t ), strtolower( $t ) == $current_type ? ' selected="selected"' : '', $t );
70 + }
71 + }
72 + ?>
73 + </select>
74 + <?php
75 + }
76 + }
77 +
78 + /**
79 + * If submitted filter by tag
80 + *
81 + * @param $query WP_Query
82 + */
83 + function parseQuery( $query ) {
84 + global $pagenow;
85 +
86 + $type = WINP_HTTP::get( 'post_type' );
87 +
88 + if ( WINP_SNIPPETS_POST_TYPE == $type && is_admin() && 'edit.php' == $pagenow && WINP_HTTP::get( 'winp_filter_tag', '' ) ) {
89 + $taxquery = [
90 + [
91 + 'taxonomy' => WINP_SNIPPETS_TAXONOMY,
92 + 'field' => 'slug',
93 + 'terms' => [ WINP_HTTP::get( 'winp_filter_tag', '' ) ],
94 + 'operator' => 'IN',
95 + ],
96 + ];
97 + $query->set( 'tax_query', $taxquery );
98 + }
99 +
100 + if ( WINP_SNIPPETS_POST_TYPE == $type && is_admin() && 'edit.php' == $pagenow && WINP_HTTP::get( 'winp_filter_type', '' ) ) {
101 + $meta_query = [
102 + [
103 + 'key' => 'wbcr_inp_snippet_type',
104 + 'value' => WINP_HTTP::get( 'winp_filter_type', '' ),
105 + 'compare' => '=',
106 + ],
107 + ];
108 + $query->set( 'meta_query', $meta_query );
109 + }
110 + }
111 +}