/** * Add the post_relationship filter to the filter popup. * */ function wpv_add_post_relationship($args) { global $wpdb; $edit = isset($args['mode']) && $args['mode'] == 'edit'; $view_settings = isset($args['view_settings']) ? $args['view_settings'] : array(); $defaults = array('post_relationship_mode' => 'current_page', 'post_relationship_id' => 0); $view_settings = wp_parse_args($view_settings, $defaults); wp_nonce_field('wpv_get_posts_select_nonce', 'wpv_get_posts_select_nonce'); ?> <div class="post_relationship-div" style="margin-left: 20px;"> <ul> <?php $radio_name = $edit ? '_wpv_settings[post_relationship_mode][]' : 'post_relationship_mode[]'; ?> <li> <?php $checked = $view_settings['post_relationship_mode'] == 'current_page' ? 'checked="checked"' : ''; ?> <label><input type="radio" name="<?php echo $radio_name; ?> " value="current_page" <?php echo $checked; ?> > <?php _e('Post where this View is inserted', 'wpv-views'); ?> </label> </li> <li> <?php $checked = $view_settings['post_relationship_mode'] == 'parent_view' ? 'checked="checked"' : ''; ?> <label><input type="radio" name="<?php echo $radio_name; ?> " value="parent_view" <?php echo $checked; ?> > <?php _e('Post set by parent View', 'wpv-views'); ?> </label> </li> <li> <?php $checked = $view_settings['post_relationship_mode'] == 'this_page' ? 'checked="checked"' : ''; ?> <label><input type="radio" name="<?php echo $radio_name; ?> " value="this_page" <?php echo $checked; ?> > <?php _e('Specific:', 'wpv-views'); ?> </label> <?php $select_id = $edit ? 'wpv_post_relationship_post_type' : 'wpv_post_relationship_post_type_add'; ?> <select id="<?php echo $select_id; ?> "> <?php $post_types = get_post_types(array('public' => true), 'objects'); if ($view_settings['post_relationship_id'] == 0) { if ($edit && isset($_POST['post_relationship_type'])) { $selected_type = $_POST['post_relationship_type']; } else { $selected_type = 'page'; } } else { $selected_type = $wpdb->get_var($wpdb->prepare("\n SELECT post_type FROM {$wpdb->prefix}posts WHERE ID=%d", $view_settings['post_relationship_id'])); if (!$selected_type) { $selected_type = 'page'; } } foreach ($post_types as $post_type) { $selected = $selected_type == $post_type->name ? ' selected="selected"' : ''; echo '<option value="' . $post_type->name . '"' . $selected . '>' . $post_type->labels->singular_name . '</option>'; } ?> </select> <?php $post_relationship_select_name = $edit ? '_wpv_settings[post_relationship_id]' : 'wpv_post_relationship_id_add'; ?> <?php wpv_show_posts_dropdown($selected_type, $post_relationship_select_name, $view_settings['post_relationship_id']); ?> <img id="wpv_update_post_relationship" src="<?php echo WPV_URL; ?> /res/img/ajax-loader.gif" width="16" height="16" style="display:none" alt="loading" /> </li> </ul> </div> <?php }
/** * wpv_get_post_relationship_post_select_callback * * Render a select dropdown given a post type * * @since unknown */ static function wpv_get_post_relationship_post_select_callback() { $nonce = $_POST["wpnonce"]; if ( ! wp_verify_nonce( $nonce, 'wpv_view_filter_post_relationship_post_type_nonce' ) ) { die( "Security check" ); } wpv_show_posts_dropdown( $_POST['post_type'], 'post_relationship_id' ); die(); }
/** * Render post relationship filter options */ function wpv_render_post_relationship($args) { global $wpdb; $edit = isset($args['mode']) && $args['mode'] == 'edit'; $view_settings = isset($args['view_settings']) ? $args['view_settings'] : array(); $defaults = array('post_relationship_mode' => 'current_page', 'post_relationship_id' => 0, 'post_relationship_shortcode_attribute' => 'wpvprchildof', 'post_relationship_url_parameter' => 'wpv-pr-child-of'); $view_settings = wp_parse_args($view_settings, $defaults); ?> <ul> <li> <?php $checked = $view_settings['post_relationship_mode'] == 'current_page' ? 'checked="checked"' : ''; ?> <label><input type="radio" class="js-post-relationship-mode" name="post_relationship_mode[]" value="current_page" <?php echo $checked; ?> /> <?php _e('Post where this View is inserted', 'wpv-views'); ?> </label> </li> <li> <?php $checked = $view_settings['post_relationship_mode'] == 'parent_view' ? 'checked="checked"' : ''; ?> <label><input type="radio" class="js-post-relationship-mode" name="post_relationship_mode[]" value="parent_view" <?php echo $checked; ?> /> <?php _e('Post set by parent View', 'wpv-views'); ?> </label> </li> <li> <?php $checked = $view_settings['post_relationship_mode'] == 'shortcode_attribute' ? 'checked="checked"' : ''; ?> <label><input type="radio" class="js-post-relationship-mode" name="post_relationship_mode[]" value="shortcode_attribute" <?php echo $checked; ?> /> <?php _e('Post with ID set by the shortcode attribute', 'wpv-views'); ?> </label> <input class="js-post-relationship-shortcode-attribute js-wpv-filter-validate" data-type="shortcode" type="text" value="<?php echo $view_settings['post_relationship_shortcode_attribute']; ?> " /> </li> <li> <?php $checked = $view_settings['post_relationship_mode'] == 'url_parameter' ? 'checked="checked"' : ''; ?> <label><input type="radio" class="js-post-relationship-mode" name="post_relationship_mode[]" value="url_parameter" <?php echo $checked; ?> /> <?php _e('Post with ID set by the URL parameter', 'wpv-views'); ?> </label> <input class="js-post-relationship-url-parameter js-wpv-filter-validate" data-type="url" type="text" value="<?php echo $view_settings['post_relationship_url_parameter']; ?> " /> </li> <li> <?php $checked = $view_settings['post_relationship_mode'] == 'this_page' ? 'checked="checked"' : ''; ?> <label><input type="radio" class="js-post-relationship-mode" name="post_relationship_mode[]" value="this_page" <?php echo $checked; ?> /> <?php _e('Specific:', 'wpv-views'); ?> </label> <select id="wpv_post_relationship_post_type" class="js-post-relationship-post-type" data-nonce="<?php echo wp_create_nonce('wpv_view_filter_post_relationship_post_type_nonce'); ?> "> <?php $post_types = get_post_types(array('public' => true), 'objects'); if ($view_settings['post_relationship_id'] == 0) { if ($edit && isset($_POST['post_relationship_type'])) { $selected_type = $_POST['post_relationship_type']; } else { $selected_type = 'page'; } } else { $selected_type = $wpdb->get_var($wpdb->prepare("\n SELECT post_type FROM {$wpdb->prefix}posts WHERE ID=%d", $view_settings['post_relationship_id'])); if (!$selected_type) { $selected_type = 'page'; } } foreach ($post_types as $post_type) { $selected = $selected_type == $post_type->name ? ' selected="selected"' : ''; echo '<option value="' . $post_type->name . '"' . $selected . '>' . $post_type->labels->singular_name . '</option>'; } ?> </select> <?php $post_relationship_select_name = 'post_relationship_id'; ?> <?php wpv_show_posts_dropdown($selected_type, $post_relationship_select_name, $view_settings['post_relationship_id']); ?> </li> </ul> <p> <a class="wpv-help-link" target="_blank" href="http://wp-types.com/documentation/user-guides/querying-and-displaying-child-posts/"> <?php _e('Querying and Displaying Child Posts', 'wpv-views'); ?> </a> </p> <?php }
/** * DEPRECATED test */ function wpv_get_posts_select() { if (wp_verify_nonce($_POST['wpv_nonce'], 'wpv_get_posts_select_nonce')) { wpv_show_posts_dropdown($_POST['post_type']); } die; }