rep__normalize_search_categories()

This function is used to normalize search categories by a given set and return a list of normalized search categories.

Namespace

REP_Malcolm

Parameters

$search_categories

array

Search categories

Return

array

List of normalized search categories

Source

File: \includes\rep-helper-functions.php

function rep__normalize_search_categories( $search_categories, $include_related = false ){

    $normalized_search_categories = [];

    if( is_array( $search_categories ) ){
        foreach( $search_categories as $search_category ){

            $search_category = strtolower( $search_category );

            switch( $search_category ){
                case 'holiday lease' :
                    $normalized_search_categories[] = 'holiday rental';
                break;
                case 'all' :
                    $normalized_search_categories = array_merge( $normalized_search_categories, REP__Common::SEARCH_CATEGORIES );
                break;
                case 'all sale' :
                    foreach( REP__Common::LISTING_CATEGORIES as $listing_category ){
                        $normalized_search_categories[] = "$listing_category sale";
                    }
                break;
                case 'all lease' :
                    foreach( REP__Common::LISTING_CATEGORIES as $listing_category ){
                        $normalized_search_categories[] = "$listing_category lease";
                    }
                break;
                case 'all sold' :
                    foreach( REP__Common::LISTING_CATEGORIES as $listing_category ){
                        $normalized_search_categories[] = "$listing_category sold";
                    }
                break;
                case 'all leased' :
                    foreach( REP__Common::LISTING_CATEGORIES as $listing_category ){
                        $normalized_search_categories[] = "$listing_category leased";
                    }
                break;
                default :
                    if( in_array( $search_category, REP__Common::SEARCH_CATEGORIES ) ){
                        $normalized_search_categories[] = $search_category;
                    }
            }
            
        }
    }

    if( $include_related ){
        $additional_search_categories = [];

        foreach( $normalized_search_categories as $search_category ){
            if( in_array( $search_category, ["commercial sale", "commercial lease"] ) ){
                $additional_search_categories[] = "commercial sale or lease";
            } elseif( in_array( $search_category, ["commercial sold", "commercial leased"] ) ){
                $additional_search_categories[] = "commercial sold or leased";
            } elseif( $search_category == "commercial sale or lease" ){
                $additional_search_categories[] = "commercial sale";
                $additional_search_categories[] = "commercial lease";
            } elseif( $search_category == "commercial sold or leased" ){
                $additional_search_categories[] = "commercial sold";
                $additional_search_categories[] = "commercial leased";
            } 
        }

        if( ! empty( $additional_search_categories ) ){
            foreach( $additional_search_categories as $additional ){
                if( ! in_array( $additional, $normalized_search_categories ) ){
                    $normalized_search_categories[] = $additional;
                }
            }
        }
    }

    return array_values( array_unique( $normalized_search_categories ) );

}