/**
* 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 }