PluginProbe
WP Ultimate Post Grid / 2.8.0
WP Ultimate Post Grid v2.8.0
4.1.1 trunk 1.5 1.6 1.7 1.7.1 1.7.2 1.8 1.9 2.0 2.1 2.2 2.3 2.4.0 2.5.0 2.6.0 2.7.0 2.8.0 2.8.2 3.0.0 3.3.0 3.4.0 3.5.0 3.6.0 3.7.0 All 32 releases
wp-ultimate-post-grid / helpers / meta_boxes / meta_box_limit_posts.php

meta_box_limit_posts.php in WP Ultimate Post Grid 2.8.0, at helpers/meta_boxes/meta_box_limit_posts.php

254 lines 14.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 // Grid should never be null. Construct just allows easy access to WPUPG_Grid functions in IDE.
3 if( is_null( $grid ) ) $grid = new WPUPG_Grid(0);
4 ?>
5
6 <table id="wpupg_form_limit_posts" class="wpupg_form">
7 <thead>
8 <tr>
9 <td>Field/Term</td>
10 <td>Values</td>
11 <td>Type</td>
12 <td>&nbsp;</td>
13 </tr>
14 </thead>
15 <tbody id="wpupg_rule_placeholder">
16 <tr id="wpupg_rule_0" data-rule="0">
17 <td>
18 <select name="wpupg_limit_posts_rule[0][field]" id="wpupg_limit_posts_rule_field_0" class="wpupg_rule_field">
19 <optgroup label="<?php _e( 'General', 'wp-ultimate-post-grid' ); ?>">
20 <?php
21 $rule_field_options = array(
22 'wpupg_general|author' => __( 'Author', 'wp-ultimate-post-grid' ),
23 'wpupg_general|date' => __( 'Date', 'wp-ultimate-post-grid' ),
24 'wpupg_general|id' => __( 'Post ID', 'wp-ultimate-post-grid' ),
25 );
26
27 foreach( $rule_field_options as $rule_field => $rule_field_name ) {
28 $selected = '';//$rule_field == $grid->filter_type() ? ' selected="selected"' : '';
29 echo '<option value="' . esc_attr( $rule_field ) . '"' . $selected . '>' . $rule_field_name . '</option>';
30 }
31 ?>
32 </optgroup>
33 <?php
34 $post_types = get_post_types( '', 'objects' );
35
36 unset( $post_types[WPUPG_POST_TYPE] );
37 unset( $post_types['revision'] );
38 unset( $post_types['nav_menu_item'] );
39
40 $rule_fields = array();
41 $rule_field_terms = array();
42
43 foreach( $post_types as $post_type => $options ) {
44 $taxonomies = get_object_taxonomies( $post_type, 'objects' );
45
46 if( count( $taxonomies ) > 0 ) {
47 echo '<optgroup label="' . __( 'Taxonomies', 'wp-ultimate-post-grid' ) . ' (' . $options->labels->name . ')">';
48
49 foreach( $taxonomies as $taxonomy => $tax_options ) {
50 $selected = '';//in_array( $taxonomy, $grid->filter_taxonomies() ) ? ' selected="selected"' : '';
51 echo '<option value="' . esc_attr( $post_type ) . '|' . esc_attr( $taxonomy ) . '"' . $selected . '>' . $tax_options->labels->name . '</option>';
52
53 $rule_fields[] = $post_type . '|' . $taxonomy;
54 if( !isset( $rule_field_terms[$taxonomy] ) ) {
55 $rule_field_terms[$taxonomy] = get_terms( $taxonomy, array( 'hide_empty' => false ) );
56 }
57 }
58 echo '</optgroup>';
59 }
60 }
61 ?>
62 </select>
63 </td>
64 <td>
65 <div class="rule_container rule_container_wpupg_general_author">
66 <select name="wpupg_limit_posts_rule[0][values_wpupg_general_author][]" id="wpupg_limit_posts_rule_values_wpupg_general_author_0" multiple>
67 <?php
68 $args = array(
69 'who' => 'authors',
70 'fields' => array(
71 'ID', 'display_name'
72 )
73 );
74 $authors = get_users( $args );
75
76 foreach( $authors as $author ) {
77 $selected = '';//$rule_type == $grid->filter_type() ? ' selected="selected"' : '';
78 echo '<option value="' . esc_attr( $author->ID ) . '"' . $selected . '>' . $author->ID . ' - ' . $author->display_name . '</option>';
79 }
80 ?>
81 </select>
82 </div>
83 <div class="rule_container rule_container_wpupg_general_date">
84 <select name="wpupg_limit_posts_rule[0][values_wpupg_general_date_condition]" id="wpupg_limit_posts_rule_values_wpupg_general_date_condition_0">
85 <?php
86 $date_condition_options = array(
87 'before' => __( 'Before', 'wp-ultimate-post-grid' ),
88 'is' => __( 'Is', 'wp-ultimate-post-grid' ),
89 'after' => __( 'After', 'wp-ultimate-post-grid' ),
90 );
91
92 foreach( $date_condition_options as $date_condition => $date_condition_name ) {
93 $selected = '';//$rule_field == $grid->filter_type() ? ' selected="selected"' : '';
94 echo '<option value="' . esc_attr( $date_condition ) . '"' . $selected . '>' . $date_condition_name . '</option>';
95 }
96 ?>
97 </select>
98 </div>
99 <div class="rule_container rule_container_wpupg_general_date">
100 <input type="text" name="wpupg_limit_posts_rule[0][values_wpupg_general_date_date]" class="wpupg-date" id="wpupg_limit_posts_rule_values_wpupg_general_date_date_0" placeholder="01/28/1988"/>
101 <input type="hidden" name="wpupg_limit_posts_rule[0][values_wpupg_general_date]" id="wpupg_limit_posts_rule_values_wpupg_general_date_0"/>
102 </div>
103 <div class="rule_container rule_container_wpupg_general_id">
104 <input type="text" name="wpupg_limit_posts_rule[0][values_wpupg_general_id]" id="wpupg_limit_posts_rule_values_wpupg_general_id_0" placeholder="<?php _e( 'Separate post IDs with a semicolon', 'wp-ultimate-post-grid' ); ?> (1;28;88)"/>
105 </div>
106 <?php
107 foreach( $rule_fields as $rule_field ) {
108 $rule_field_parts = explode( '|', $rule_field );
109 $rule_field_name = $rule_field_parts[0] . '_' . $rule_field_parts[1];
110
111 echo '<div class="rule_container rule_container_' . $rule_field_name . '">';
112 echo '<select name="wpupg_limit_posts_rule[0][values_' . $rule_field_name . '][]" id="wpupg_limit_posts_rule_values_' . $rule_field_name . '_0" multiple>';
113
114 $terms = $rule_field_terms[$rule_field_parts[1]];
115 foreach( $terms as $term ) {
116 $selected = '';//$rule_type == $grid->filter_type() ? ' selected="selected"' : '';
117 echo '<option value="' . esc_attr( $term->term_id ) . '"' . $selected . '>' . $term->name . '</option>';
118 }
119
120 echo '</select>';
121 echo '</div>';
122 }
123 ?>
124 </td>
125 <td>
126 <select name="wpupg_limit_posts_rule[0][type]" id="wpupg_limit_posts_rule_type_0">
127 <?php
128 $rule_type_options = array(
129 'restrict' => __( 'Only these items', 'wp-ultimate-post-grid' ),
130 'exclude' => __( 'Exclude these items', 'wp-ultimate-post-grid' ),
131 );
132
133 foreach( $rule_type_options as $rule_type => $rule_type_name ) {
134 $selected = '';//$rule_type == $grid->filter_type() ? ' selected="selected"' : '';
135 echo '<option value="' . esc_attr( $rule_type ) . '"' . $selected . '>' . $rule_type_name . '</option>';
136 }
137 ?>
138 </select>
139 </td>
140 <td>
141 <img src="<?php echo WPUltimatePostGrid::get()->coreUrl . '/img/trash.png'; ?>" class="wpupg_rule_delete" title="<?php _e( 'Delete Rule', 'wp-ultimate-post-grid' ); ?>"/>
142 </td>
143 </tr>
144 </tbody>
145 <tbody id="wpupg_rules">
146 <?php
147 $limit_rules = $grid->limit_rules();
148
149 $rule_id = 1;
150 foreach( $limit_rules as $rule ) {
151 if( $rule['post_type'] == 'wpupg_general' || in_array( $rule_field, $rule_fields ) ) {
152 ?>
153 <tr id="wpupg_rule_<?php echo $rule_id; ?>" data-rule="<?php echo $rule_id; ?>">
154 <td>
155 <select name="wpupg_limit_posts_rule[<?php echo $rule_id; ?>][field]" id="wpupg_limit_posts_rule_field_<?php echo $rule_id; ?>" class="wpupg_rule_field">
156 <optgroup label="<?php _e( 'General', 'wp-ultimate-post-grid' ); ?>">
157 <?php
158 foreach( $rule_field_options as $rule_field => $rule_field_name ) {
159 $selected = $rule_field == $rule['field'] ? ' selected="selected"' : '';
160 echo '<option value="' . esc_attr( $rule_field ) . '"' . $selected . '>' . $rule_field_name . '</option>';
161 }
162 ?>
163 </optgroup>
164 <?php
165 foreach( $post_types as $post_type => $options ) {
166 $taxonomies = get_object_taxonomies( $post_type, 'objects' );
167
168 if( count( $taxonomies ) > 0 ) {
169 echo '<optgroup label="' . __( 'Taxonomies', 'wp-ultimate-post-grid' ) . ' (' . $options->labels->name . ')">';
170
171 foreach( $taxonomies as $taxonomy => $tax_options ) {
172 $selected = $post_type == $rule['post_type'] && $taxonomy == $rule['taxonomy'] ? ' selected="selected"' : '';
173 echo '<option value="' . esc_attr( $post_type ) . '|' . esc_attr( $taxonomy ) . '"' . $selected . '>' . $tax_options->labels->name . '</option>';
174 }
175 echo '</optgroup>';
176 }
177 }
178 ?>
179 </select>
180 </td>
181 <td>
182 <div class="rule_container rule_container_wpupg_general_author">
183 <select name="wpupg_limit_posts_rule[<?php echo $rule_id; ?>][values_wpupg_general_author][]" id="wpupg_limit_posts_rule_values_wpupg_general_author_<?php echo $rule_id; ?>" multiple>
184 <?php
185 foreach( $authors as $author ) {
186 $selected = $rule['post_type'] == 'wpupg_general' && $rule['taxonomy'] == 'author' && in_array( $author->ID, $rule['values'] ) ? ' selected="selected"' : '';
187 echo '<option value="' . esc_attr( $author->ID ) . '"' . $selected . '>' . $author->ID . ' - ' . $author->display_name . '</option>';
188 }
189 ?>
190 </select>
191 </div>
192 <?php
193 $rule_date_condition = $rule['post_type'] == 'wpupg_general' && $rule['taxonomy'] == 'date' && isset( $rule['values'][0] ) ? $rule['values'][0] : '';
194 $rule_date_date = $rule['post_type'] == 'wpupg_general' && $rule['taxonomy'] == 'date' && isset( $rule['values'][1] ) ? $rule['values'][1] : '';
195 $rule_date = $rule_date_condition . ';' . $rule_date_date;
196 ?>
197 <div class="rule_container rule_container_wpupg_general_date">
198 <select name="wpupg_limit_posts_rule[<?php echo $rule_id; ?>][values_wpupg_general_date_condition]" id="wpupg_limit_posts_rule_values_wpupg_general_date_condition_<?php echo $rule_id; ?>">
199 <?php
200 foreach( $date_condition_options as $date_condition => $date_condition_name ) {
201 $selected = $date_condition == $rule_date_condition ? ' selected="selected"' : '';
202 echo '<option value="' . esc_attr( $date_condition ) . '"' . $selected . '>' . $date_condition_name . '</option>';
203 }
204 ?>
205 </select>
206 </div>
207 <div class="rule_container rule_container_wpupg_general_date">
208 <input type="text" name="wpupg_limit_posts_rule[<?php echo $rule_id; ?>][values_wpupg_general_date_date]" class="wpupg-date" id="wpupg_limit_posts_rule_values_wpupg_general_date_date_<?php echo $rule_id; ?>" value="<?php echo $rule_date_date; ?>" placeholder="01/28/1988"/>
209 <input type="hidden" name="wpupg_limit_posts_rule[<?php echo $rule_id; ?>][values_wpupg_general_date]" id="wpupg_limit_posts_rule_values_wpupg_general_date_<?php echo $rule_id; ?>" value="<?php echo $rule_date; ?>"/>
210 </div>
211 <div class="rule_container rule_container_wpupg_general_id">
212 <?php $id_value = $rule['post_type'] == 'wpupg_general' && $rule['taxonomy'] == 'id' ? implode( ';', $rule['values'] ) : ''; ?>
213 <input type="text" name="wpupg_limit_posts_rule[<?php echo $rule_id; ?>][values_wpupg_general_id]" id="wpupg_limit_posts_rule_values_wpupg_general_id_<?php echo $rule_id; ?>" value="<?php echo $id_value; ?>" placeholder="<?php _e( 'Separate post IDs with a semicolon', 'wp-ultimate-post-grid' ); ?> (1;28;88)"/>
214 </div>
215 <?php
216 foreach( $rule_fields as $rule_field ) {
217 $rule_field_parts = explode( '|', $rule_field );
218 $rule_field_name = $rule_field_parts[0] . '_' . $rule_field_parts[1];
219
220 echo '<div class="rule_container rule_container_' . $rule_field_name . '">';
221 echo '<select name="wpupg_limit_posts_rule[' . $rule_id . '][values_' . $rule_field_name . '][]" id="wpupg_limit_posts_rule_values_' . $rule_field_name . '_' . $rule_id . '" multiple>';
222
223 $terms = $rule_field_terms[$rule_field_parts[1]];
224 foreach( $terms as $term ) {
225 $selected = $rule['post_type'] == $rule_field_parts[0] && $rule['taxonomy'] == $rule_field_parts[1] && in_array( $term->term_id, $rule['values'] ) ? ' selected="selected"' : '';
226 echo '<option value="' . esc_attr( $term->term_id ) . '"' . $selected . '>' . $term->name . '</option>';
227 }
228
229 echo '</select>';
230 echo '</div>';
231 }
232 ?>
233 </td>
234 <td>
235 <select name="wpupg_limit_posts_rule[<?php echo $rule_id; ?>][type]" id="wpupg_limit_posts_rule_type_<?php echo $rule_id; ?>">
236 <?php
237 foreach( $rule_type_options as $rule_type => $rule_type_name ) {
238 $selected = $rule_type == $rule['type'] ? ' selected="selected"' : '';
239 echo '<option value="' . esc_attr( $rule_type ) . '"' . $selected . '>' . $rule_type_name . '</option>';
240 }
241 ?>
242 </select>
243 </td>
244 <td>
245 <img src="<?php echo WPUltimatePostGrid::get()->coreUrl . '/img/trash.png'; ?>" class="wpupg_rule_delete" title="<?php _e( 'Delete Rule', 'wp-ultimate-post-grid' ); ?>"/>
246 </td>
247 </tr>
248 <?php
249 $rule_id++;
250 }
251 } ?>
252 </tbody>
253 </table>
254 <a href="#" id="wpupg_add_rule"><?php _e( 'Add Rule', 'wp-ultimate-post-grid' ); ?></a>