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 ) );
}