function _block_compare
_block_compare($a, $b)
Sorts active blocks by region, then by weight; sorts inactive blocks by name.
Callback for usort() in block_admin_display_prepare_blocks().
File
- modules/block/block.admin.inc, line 204
- Admin page callbacks for the block module.
Code
function _block_compare($a, $b) { global $theme_key; // Theme should be set before calling this function, or the current theme // is being used. $theme = &drupal_static(__FUNCTION__ . ':theme'); if (!isset($theme)) { $theme = $theme_key; } $regions = &drupal_static(__FUNCTION__ . ':regions'); // We need the region list to correctly order by region. if (!isset($regions)) { $regions = array_flip(array_keys(system_region_list($theme))); $regions[BLOCK_REGION_NONE] = count($regions); } // Separate enabled from disabled. $status = $b['status'] - $a['status']; if ($status) { return $status; } // Sort by region (in the order defined by theme .info file). if ((!empty($a['region']) && !empty($b['region'])) && ($place = ($regions[$a['region']] - $regions[$b['region']]))) { return $place; } // Sort by weight, unless disabled. if ($a['region'] != BLOCK_REGION_NONE) { $weight = $a['weight'] - $b['weight']; if ($weight) { return $weight; } } // Sort by title. return strcmp($a['info'], $b['info']); }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/modules!block!block.admin.inc/function/_block_compare/7.x