/** * 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_orderby_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; }
function add_view_ordering( $view_settings, $view_id ) { global $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'; } $section_help_pointer = WPV_Admin_Messages::edit_section_help_pointer( 'ordering' ); $view_settings = wpv_order_orderby_default_settings( $view_settings ); ?> <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 esc_attr( $section_help_pointer['title'] ); ?>" data-content="<?php echo esc_attr( $section_help_pointer['content'] ); ?>"> </i> </h3> </div> <div class="wpv-setting js-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;"' : ''; ?>> <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]" autocomplete="off" data-rand="<?php echo esc_attr( __('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> <option value="post_title" <?php selected( $view_settings['orderby'], 'post_title' ); ?>><?php _e('Post title', 'wpv-views'); ?></option> <option value="ID" <?php selected( $view_settings['orderby'], 'ID' ); ?>><?php _e('Post ID', 'wpv-views'); ?></option> <option value="modified" <?php selected( $view_settings['orderby'], 'modified' ); ?>><?php _e('Last modified', 'wpv-views'); ?></option> <option value="menu_order" <?php selected( $view_settings['orderby'], 'menu_order' ); ?>><?php _e('Menu order', 'wpv-views'); ?></option> <option value="rand" <?php selected( $view_settings['orderby'], 'rand' ); ?>><?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-' . esc_attr( $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" autocomplete="off"> <option value="DESC" <?php selected( $view_settings['order'], 'DESC' ); ?>><?php _e( 'Descending', 'wpv-views' ) ?></option> <option value="ASC" <?php selected( $view_settings['order'], 'ASC' ); ?>><?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 $taxonomy_order_by = array( 'id' => __('Term ID'), 'count' => __('Post count'), 'name' => __('Term name'), 'slug' => __('Term slug'), 'term_group' => __('Term group'), 'none' => __('No order') ); ?> <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]" autocomplete="off"> <?php foreach ( $taxonomy_order_by as $id => $text ) { ?> <option value="<?php echo esc_attr( $id ); ?>" <?php selected( $view_settings['taxonomy_orderby'], $id ); ?>><?php echo $text; ?></option> <?php } ?> </select> <select name="_wpv_settings[taxonomy_order]" class="js-wpv-taxonomy-order" autocomplete="off"> <option value="DESC" <?php selected( $view_settings['taxonomy_order'], 'DESC' ); ?>><?php _e( 'Descending', 'wpv-views' ) ?></option> <option value="ASC" <?php selected( $view_settings['taxonomy_order'], 'ASC' ); ?>><?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]" autocomplete="off"> <?php foreach ( $users_order_by as $id => $text ) { ?> <option value="<?php echo esc_attr( $id ); ?>" <?php selected( $view_settings['users_orderby'], $id ); ?>><?php echo $text; ?></option> <?php } ?> </select> <select name="_wpv_settings[users_order]" class="js-wpv-users-order" autocomplete="off"> <option value="DESC" <?php selected( $view_settings['users_order'], 'DESC' ); ?>><?php _e( 'Descending', 'wpv-views' ) ?></option> <option value="ASC" <?php selected( $view_settings['users_order'], 'ASC' ); ?>><?php _e( 'Ascending', 'wpv-views' ) ?></option> </select> </p> <div class="js-wpv-toolset-messages"></div> </div> <span class="update-action-wrap auto-update js-wpv-update-action-wrap"> <span class="js-wpv-message-container"></span> <span type="hidden" data-success="<?php echo esc_attr( __('Updated', 'wpv-views') ); ?>" data-unsaved="<?php echo esc_attr( __('Not saved', 'wpv-views') ); ?>" data-nonce="<?php echo wp_create_nonce( 'wpv_view_ordering_nonce' ); ?>" class="js-wpv-ordering-update" /> </span> </div> <?php }