/**
 * Display list of sort options available in front end using dropdown.
 *
 * @since 1.0.0
 * @package GeoDirectory
 * @global object $wp_query WordPress Query object.
 */
function geodir_display_sort_options()
{
    global $wp_query;
    /**
     * On search pages there should be no sort options, sorting is done by search criteria.
     *
     * @since 1.4.4
     */
    if (is_search()) {
        return;
    }
    $sort_by = '';
    if (isset($_REQUEST['sort_by'])) {
        $sort_by = $_REQUEST['sort_by'];
    }
    $gd_post_type = geodir_get_current_posttype();
    $sort_options = geodir_get_sort_options($gd_post_type);
    $sort_field_options = '';
    if (!empty($sort_options)) {
        foreach ($sort_options as $sort) {
            $sort = stripslashes_deep($sort);
            // strip slashes
            $label = __($sort->site_title, 'geodirectory');
            if ($sort->field_type == 'random') {
                $key = $sort->field_type;
                $sort_by == $key || $sort->is_default == '1' && !isset($_REQUEST['sort_by']) ? $selected = 'selected="selected"' : ($selected = '');
                $sort_field_options .= '<option ' . $selected . ' value="' . esc_url(add_query_arg('sort_by', $key)) . '">' . __($label, 'geodirectory') . '</option>';
            }
            if ($sort->htmlvar_name == 'comment_count') {
                $sort->htmlvar_name = 'rating_count';
            }
            if ($sort->sort_asc) {
                $key = $sort->htmlvar_name . '_asc';
                $label = $sort->site_title;
                if ($sort->asc_title) {
                    $label = $sort->asc_title;
                }
                $sort_by == $key || $sort->is_default == '1' && $sort->default_order == $key && !isset($_REQUEST['sort_by']) ? $selected = 'selected="selected"' : ($selected = '');
                $sort_field_options .= '<option ' . $selected . ' value="' . esc_url(add_query_arg('sort_by', $key)) . '">' . __($label, 'geodirectory') . '</option>';
            }
            if ($sort->sort_desc) {
                $key = $sort->htmlvar_name . '_desc';
                $label = $sort->site_title;
                if ($sort->desc_title) {
                    $label = $sort->desc_title;
                }
                $sort_by == $key || $sort->is_default == '1' && $sort->default_order == $key && !isset($_REQUEST['sort_by']) ? $selected = 'selected="selected"' : ($selected = '');
                $sort_field_options .= '<option ' . $selected . ' value="' . esc_url(add_query_arg('sort_by', $key)) . '">' . __($label, 'geodirectory') . '</option>';
            }
        }
    }
    if ($sort_field_options != '') {
        ?>

        <div class="geodir-tax-sort">

            <select name="sort_by" id="sort_by" onchange="javascript:window.location=this.value;">

                <option
                    value="<?php 
        echo esc_url(add_query_arg('sort_by', ''));
        ?>
" <?php 
        if ($sort_by == '') {
            echo 'selected="selected"';
        }
        ?>
><?php 
        _e('Sort By', 'geodirectory');
        ?>
</option><?php 
        echo $sort_field_options;
        ?>

            </select>

        </div>
    <?php 
    }
}
/**
 * BuddyPress listings tab sort options.
 *
 * @since 1.0.0
 * @package GeoDirectory_BuddyPress_Integration
 */
function geodir_buddypress_display_sort_options()
{
    global $wp_query;
    $sort_by = isset($_REQUEST['sort_by']) ? $_REQUEST['sort_by'] : '';
    $post_type = geodir_buddypress_action_post_type();
    $sort_options = geodir_get_sort_options($post_type);
    if ($post_type && !empty($sort_options)) {
        $sort_field_options = '';
        foreach ($sort_options as $sort) {
            $label = $sort->site_title;
            if ($sort->field_type == 'random') {
                $key = $sort->field_type;
                $selected = $sort_by == $key || $sort->is_default == '1' && !isset($_REQUEST['sort_by']) ? 'selected="selected"' : '';
                $sort_field_options .= '<option ' . $selected . ' value="' . esc_url(add_query_arg('sort_by', $key)) . '">' . $label . '</option>';
            }
            if ($sort->htmlvar_name == 'comment_count') {
                $sort->htmlvar_name = 'rating_count';
            }
            if ($sort->sort_asc) {
                $key = $sort->htmlvar_name . '_asc';
                $label = $sort->asc_title ? $sort->asc_title : $sort->site_title;
                $selected = $sort_by == $key || $sort->is_default == '1' && !isset($_REQUEST['sort_by']) ? 'selected="selected"' : '';
                $sort_field_options .= '<option ' . $selected . ' value="' . esc_url(add_query_arg('sort_by', $key)) . '">' . $label . '</option>';
            }
            if ($sort->sort_desc) {
                $key = $sort->htmlvar_name . '_desc';
                $label = $sort->desc_title ? $sort->desc_title : $sort->site_title;
                $selected = $sort_by == $key || $sort->is_default == '1' && !isset($_REQUEST['sort_by']) ? 'selected="selected"' : '';
                $sort_field_options .= '<option ' . $selected . ' value="' . esc_url(add_query_arg('sort_by', $key)) . '">' . $label . '</option>';
            }
        }
        if ($sort_field_options != '') {
            ?>
            <div class="geodir-tax-sort">
                <select name="sort_by" id="sort_by" onchange="javascript:window.location=this.value;">
                    <option
                        value="<?php 
            echo esc_url(add_query_arg('sort_by', ''));
            ?>
" <?php 
            if ($sort_by == '') {
                echo 'selected="selected"';
            }
            ?>
><?php 
            _e('Sort By', GDBUDDYPRESS_TEXTDOMAIN);
            ?>
</option>
                    <?php 
            echo $sort_field_options;
            ?>
                </select>
            </div>
        <?php 
        }
    }
}