function _redirect_uasort in Redirect 7.2
Same name and namespace in other branches
- 7 redirect.module \_redirect_uasort()
uasort callback; Compare redirects based on language neutrality and rids.
1 string reference to '_redirect_uasort'
- redirect_load_by_source in ./
redirect.module - Load multiple URL redirects from the database by {redirect}.source.
File
- ./
redirect.module, line 1594
Code
function _redirect_uasort($a, $b) {
$a_weight = isset($a->weight) ? $a->weight : 0;
$b_weight = isset($b->weight) ? $b->weight : 0;
// First sort by weight (case sensitivity).
if ($a_weight != $b_weight) {
return $a_weight > $b_weight ? -1 : 1;
}
// Then sort by language specific over language neutral.
if ($a->language != $b->language) {
return $a->language != LANGUAGE_NONE ? -1 : 1;
}
// Prioritize redirects that have more query parameters over those with less.
$a_query_count = isset($a->source_options['query']) ? count($a->source_options['query']) : 0;
$b_query_count = isset($b->source_options['query']) ? count($b->source_options['query']) : 0;
if ($a_query_count != $b_query_count) {
return $a_query_count > $b_query_count ? -1 : 1;
}
// Lastly sort by the highest redirect ID.
return $a->rid > $b->rid ? -1 : 1;
}