function wpv_filter_order_by_admin_summary($view_settings) { $view_settings = wpv_order_by_default_settings($view_settings); switch ($view_settings['orderby']) { case 'post_date': $order_by = __('post date', 'wpv-views'); break; case 'post_title': $order_by = __('post title', 'wpv-views'); break; case 'ID': $order_by = __('post ID', 'wpv-views'); break; case 'menu_order': $order_by = __('menu order', 'wpv-views'); break; case 'rand': $order_by = __('random order', 'wpv-views'); break; default: $order_by = str_replace('field-', '', $view_settings['orderby']); $order_by = sprintf(__('Field - %s', 'wpv-views'), $order_by); break; } $order = __('descending', 'wpv-views'); if ($view_settings['order'] == 'ASC') { $order = __('ascending', 'wpv-views'); } echo sprintf(__(' ordered by %s, %s', 'wpv-views'), $order_by, $order); }
function add_view_ordering($view_settings, $view_id) { global $views_edit_help, $WP_Views; $hide = ''; if (isset($view_settings['sections-show-hide']) && isset($view_settings['sections-show-hide']['ordering']) && 'off' == $view_settings['sections-show-hide']['ordering']) { $hide = ' hidden'; } ?> <div class="wpv-setting-container wpv-settings-ordering js-wpv-settings-ordering<?php echo $hide; ?> "> <div class="wpv-settings-header"> <h3> <?php _e('Ordering', 'wpv-views'); ?> <i class="icon-question-sign js-display-tooltip" data-header="<?php echo $views_edit_help['ordering']['title']; ?> " data-content="<?php echo $views_edit_help['ordering']['content']; ?> "></i> </h3> </div> <div class="wpv-setting"> <p class="wpv-settings-query-type-posts js-wpv-settings-posts-order"<?php echo $view_settings['query_type'][0] != 'posts' ? ' style="display: none;"' : ''; ?> > <?php $view_settings = wpv_order_by_default_settings($view_settings); // TODO this should not be needed ?> <label for="wpv-settings-orderby"><?php _e('Order by: ', 'wpv-views'); ?> </label> <select id="wpv-settings-orderby" class="js-wpv-posts-orderby" name="_wpv_settings[orderby]" data-rand="<?php _e('Pagination and random ordering do not work together and would produce unexpected results. Please disable pagination or random ordering.', 'wpv-views'); ?> "> <option value="post_date"><?php _e('post date', 'wpv-views'); ?> </option> <?php $selected = $view_settings['orderby'] == 'post_title' ? ' selected="selected"' : ''; ?> <option value="post_title" <?php echo $selected; ?> ><?php _e('post title', 'wpv-views'); ?> </option> <?php $selected = $view_settings['orderby'] == 'ID' ? ' selected="selected"' : ''; ?> <option value="ID" <?php echo $selected; ?> ><?php _e('post id', 'wpv-views'); ?> </option> <?php $selected = $view_settings['orderby'] == 'modified' ? ' selected="selected"' : ''; ?> <option value="modified" <?php echo $selected; ?> ><?php _e('last modified', 'wpv-views'); ?> </option> <?php $selected = $view_settings['orderby'] == 'menu_order' ? ' selected="selected"' : ''; ?> <option value="menu_order" <?php echo $selected; ?> ><?php _e('menu order', 'wpv-views'); ?> </option> <?php $selected = $view_settings['orderby'] == 'rand' ? ' selected="selected"' : ''; ?> <option value="rand" <?php echo $selected; ?> ><?php _e('random order', 'wpv-views'); ?> </option> <?php $all_types_fields = get_option('wpcf-fields', array()); $cf_keys = $WP_Views->get_meta_keys(); foreach ($cf_keys as $key) { $selected = $view_settings['orderby'] == "field-" . $key ? ' selected="selected"' : ''; $option = '<option value="field-' . $key . '"' . $selected . '>'; if (stripos($key, 'wpcf-') === 0) { if (isset($all_types_fields[substr($key, 5)]) && isset($all_types_fields[substr($key, 5)]['name'])) { $option .= sprintf(__('Field - %s', 'wpv-views'), $all_types_fields[substr($key, 5)]['name']); } else { $option .= sprintf(__('Field - %s', 'wpv-views'), $key); } } else { $option .= sprintf(__('Field - %s', 'wpv-views'), $key); } $option .= '</option>'; echo $option; } ?> </select> <select name="_wpv_settings[order]" class="js-wpv-posts-order"> <option value="DESC"><?php _e('Descending', 'wpv-views'); ?> </option> <?php $selected = $view_settings['order'] == 'ASC' ? ' selected="selected"' : ''; ?> <option value="ASC"<?php echo $selected; ?> ><?php _e('Ascending', 'wpv-views'); ?> </option> </select> </p> <p class="wpv-settings-query-type-taxonomy"<?php echo $view_settings['query_type'][0] != 'taxonomy' ? ' style="display: none;"' : ''; ?> > <?php $view_settings = wpv_taxonomy_order_by_default_settings($view_settings); $taxonomy_order_by = array('id' => __('ID'), 'count' => __('Count'), 'name' => __('Name'), 'slug' => __('Slug'), 'term_group' => __('Term_group'), 'none' => __('None')); ?> <label for="wpv-settings-orderby"><?php _e('Order by: ', 'wpv-views'); ?> </label> <select id="wpv-settings-orderby" class="js-wpv-taxonomy-orderby" name="_wpv_settings[taxonomy_orderby]"> <?php foreach ($taxonomy_order_by as $id => $text) { $selected = $view_settings['taxonomy_orderby'] == $id ? ' selected="selected"' : ''; ?> <option value="<?php echo $id; ?> " <?php echo $selected; ?> ><?php echo $text; ?> </option> <?php } ?> </select> <select name="_wpv_settings[taxonomy_order]" class="js-wpv-taxonomy-order"> <option value="DESC"><?php _e('Descending', 'wpv-views'); ?> </option> <?php $selected = $view_settings['taxonomy_order'] == 'ASC' ? ' selected="selected"' : ''; ?> <option value="ASC"<?php echo $selected; ?> ><?php _e('Ascending', 'wpv-views'); ?> </option> </select> </p> <p class="wpv-settings-query-type-users"<?php echo $view_settings['query_type'][0] != 'users' ? ' style="display: none;"' : ''; ?> > <?php $users_order_by = array('user_login' => __('user login'), 'ID' => __('user id'), 'user_name' => __('user name'), 'display_name' => __('user display name'), 'user_nicename' => __('user nicename'), 'user_email' => __('user email'), 'user_url' => __('user url'), 'user_registered' => __('user registered date'), 'post_count' => __('user post count')); if (!isset($view_settings['users_orderby'])) { $view_settings['users_orderby'] = 'user_login'; } if (!isset($view_settings['users_order'])) { $view_settings['users_order'] = 'DESC'; } ?> <label for="wpv-settings-orderby"><?php _e('Order by: ', 'wpv-views'); ?> </label> <select id="wpv-settings-orderby" class="js-wpv-users-orderby" name="_wpv_settings[users_orderby]"> <?php foreach ($users_order_by as $id => $text) { $selected = $view_settings['users_orderby'] == $id ? ' selected="selected"' : ''; ?> <option value="<?php echo $id; ?> " <?php echo $selected; ?> ><?php echo $text; ?> </option> <?php } ?> </select> <select name="_wpv_settings[users_order]" class="js-wpv-users-order"> <?php $selected = $view_settings['users_order'] == 'DESC' ? ' selected="selected"' : ''; ?> <option value="DESC"<?php echo $selected; ?> ><?php _e('Descending', 'wpv-views'); ?> </option> <?php $selected = $view_settings['users_order'] == 'ASC' ? ' selected="selected"' : ''; ?> <option value="ASC"<?php echo $selected; ?> ><?php _e('Ascending', 'wpv-views'); ?> </option> </select> </p> <p class="update-button-wrap"> <button data-success="<?php echo htmlentities(__('Sorting options updated', 'wpv-views'), ENT_QUOTES); ?> " data-unsaved="<?php echo htmlentities(__('Sorting options not saved', 'wpv-views'), ENT_QUOTES); ?> " data-nonce="<?php echo wp_create_nonce('wpv_view_ordering_nonce'); ?> " class="js-wpv-ordering-update button-secondary" disabled="disabled"><?php _e('Update', 'wpv-views'); ?> </button> </p> </div> </div> <?php }
function wpv_filter_types_admin($view_settings) { $view_settings = wpv_types_defaults($view_settings); $view_settings = wpv_post_default_settings($view_settings); $view_settings = wpv_taxonomy_default_settings($view_settings); $view_settings = wpv_order_by_default_settings($view_settings); ?> <td></td> <td> <div id="wpv-filter-type-show"> <?php wpv_get_type_filter_summary($view_settings); ?> </div> <div id="wpv-filter-type-edit" style="background:<?php echo WPV_EDIT_BACKGROUND; ?> ;display:none"> <?php wp_nonce_field('wpv_type_filter_nonce', 'wpv_type_filter_nonce'); ?> <fieldset> <legend style="margin-bottom:5px"><strong><?php _e('Select what content type to load:', 'wpv-views'); ?> </strong></legend> <ul style="padding-left:20px;"> <?php $checked = $view_settings['query_type'][0] == 'posts' ? ' checked="checked"' : ''; ?> <li><label><input type="radio" name="_wpv_settings[query_type][]" value="posts" <?php echo $checked; ?> onclick="wpv_select_post_type_filter()"/> <?php echo __("Posts (This View returns posts)", 'wpv-views'); ?> </label></li> <?php $checked = $view_settings['query_type'][0] == 'taxonomy' ? ' checked="checked"' : ''; ?> <li><label><input type="radio" name="_wpv_settings[query_type][]" value="taxonomy" <?php echo $checked; ?> onclick="wpv_select_taxonomy_type_filter()"/> <?php echo __("Taxonomy (This View returns taxonomies)", 'wpv-views'); ?> </label></li> </ul> <div id="wpv-post-type-checkboxes"<?php if ($view_settings['query_type'][0] != 'posts') { echo ' style="display:none"'; } ?> > <?php wpv_post_types_checkboxes($view_settings); ?> </div> <div id="wpv-taxonomy-radios"<?php if ($view_settings['query_type'][0] != 'taxonomy') { echo ' style="display:none"'; } ?> > <?php wpv_taxonomy_radios($view_settings); ?> </div> </fieldset> <div id="wpv-post-types-settings"<?php if ($view_settings['query_type'][0] != 'posts') { echo ' style="display:none"'; } ?> > <?php wpv_post_types_settings($view_settings); ?> </div> <div id="wpv-post-order-by"<?php if ($view_settings['query_type'][0] != 'posts') { echo ' style="display:none"'; } ?> > <?php wpv_filter_order_by_admin($view_settings); ?> </div> <div id="wpv-post-limit"<?php if ($view_settings['query_type'][0] != 'posts') { echo ' style="display:none"'; } ?> > <?php wpv_filter_limit_admin($view_settings); ?> </div> <div id="wpv-taxonomy-settings"<?php if ($view_settings['query_type'][0] != 'taxonomy') { echo ' style="display:none"'; } ?> > <?php wpv_taxonomy_settings($view_settings); ?> </div> <div id="wpv-taxonomy-order-by"<?php if ($view_settings['query_type'][0] != 'taxonomy') { echo ' style="display:none"'; } ?> > <?php wpv_filter_taxonomy_order_by_admin($view_settings); ?> </div> <div id="wpv-taxonomy-limit"<?php if ($view_settings['query_type'][0] != 'taxonomy') { echo ' style="display:none"'; } ?> > <?php wpv_filter_limit_admin($view_settings, 'taxonomy'); ?> </div> <input class="button-primary" type="button" value="<?php echo __('OK', 'wpv-views'); ?> " name="<?php echo __('OK', 'wpv-views'); ?> " onclick="wpv_show_type_edit_ok()"/> <input class="button-secondary" type="button" value="<?php echo __('Cancel', 'wpv-views'); ?> " name="<?php echo __('Cancel', 'wpv-views'); ?> " onclick="wpv_show_type_edit_cancel()"/> </div> </td> <?php }
/** * wpv_get_ordering_summary * * Returns the sorting summary for a View * * @param $view_settings * * @returns (string) $summary * * @since 1.6.0 */ function wpv_get_ordering_summary($view_settings, $context = 'listing') { $view_settings = wpv_order_by_default_settings($view_settings); $view_settings = wpv_taxonomy_order_by_default_settings($view_settings); $view_settings = wpv_users_order_by_default_settings($view_settings); $return = ''; if (!isset($view_settings['query_type']) || isset($view_settings['query_type']) && $view_settings['query_type'][0] == 'posts') { switch ($view_settings['orderby']) { case 'post_date': $order_by = __('post date', 'wpv-views'); break; case 'post_title': $order_by = __('post title', 'wpv-views'); break; case 'ID': $order_by = __('post ID', 'wpv-views'); break; case 'menu_order': $order_by = __('menu order', 'wpv-views'); break; case 'rand': $order_by = __('random order', 'wpv-views'); break; default: $order_by = str_replace('field-', '', $view_settings['orderby']); $order_by = sprintf(__('Field - %s', 'wpv-views'), $order_by); break; } $order = __('descending', 'wpv-views'); if ($view_settings['order'] == 'ASC') { $order = __('ascending', 'wpv-views'); } } if (isset($view_settings['query_type']) && $view_settings['query_type'][0] == 'taxonomy') { $order_by = ''; switch ($view_settings['taxonomy_orderby']) { case 'count': $order_by = __('term count', 'wpv-views'); break; case 'name': $order_by = __('term name', 'wpv-views'); break; case 'slug': $order_by = __('term slug', 'wpv-views'); break; case 'term_group': $order_by = __('term group', 'wpv-views'); break; case 'none': $order_by = __('no specific criteria', 'wpv-views'); break; } $order = __('descending', 'wpv-views'); if ($view_settings['taxonomy_order'] == 'ASC') { $order = __('ascending', 'wpv-views'); } } if (isset($view_settings['query_type']) && $view_settings['query_type'][0] == 'users') { $order_by = ''; switch ($view_settings['users_orderby']) { case 'user_login': $order_by = __('user login', 'wpv-views'); break; case 'ID': $order_by = __('user ID', 'wpv-views'); break; case 'user_name': $order_by = __('user name', 'wpv-views'); break; case 'display_name': $order_by = __('display name', 'wpv-views'); break; case 'user_nicename': $order_by = __('user nicename', 'wpv-views'); break; case 'user_email': $order_by = __('user email', 'wpv-views'); break; case 'user_url': $order_by = __('user url', 'wpv-views'); break; case 'user_registered': $order_by = __('user registered date', 'wpv-views'); break; case 'post_count': $order_by = __('user post count', 'wpv-views'); break; } $order = __('descending', 'wpv-views'); if ($view_settings['users_order'] == 'ASC') { $order = __('ascending', 'wpv-views'); } } $order_by = esc_html($order_by); $order = esc_html($order); if ($context == 'embedded-info') { $return .= sprintf(__('ordered by <strong>%s</strong> in <strong>%s</strong> order', 'wpv-views'), $order_by, $order); } else { $return .= sprintf(__(' ordered by %s, %s', 'wpv-views'), $order_by, $order); } return $return; }