#179276 by JirkaRybka: (regression) fix profile field sections to order properly by weight.

6.x
Gábor Hojtsy 2007-10-25 10:30:40 +00:00
parent b036bef620
commit 13f9882979
3 changed files with 6 additions and 4 deletions

View File

@ -2612,7 +2612,7 @@ function drupal_render(&$elements) {
// Either the elements did not go through form_builder or one of the children
// has a #weight.
if (!isset($elements['#sorted'])) {
uasort($elements, "_element_sort");
uasort($elements, "element_sort");
}
$elements += array('#title' => NULL, '#description' => NULL);
if (!isset($elements['#children'])) {
@ -2676,9 +2676,9 @@ function drupal_render(&$elements) {
}
/**
* Function used by uasort in drupal_render() to sort structured arrays by weight.
* Function used by uasort to sort structured arrays by weight.
*/
function _element_sort($a, $b) {
function element_sort($a, $b) {
$a_weight = (is_array($a) && isset($a['#weight'])) ? $a['#weight'] : 0;
$b_weight = (is_array($b) && isset($b['#weight'])) ? $b['#weight'] : 0;
if ($a_weight == $b_weight) {

View File

@ -569,7 +569,7 @@ function user_user($type, &$edit, &$account, $category = NULL) {
$account->content['summary'] += array(
'#type' => 'user_profile_category',
'#attributes' => array('class' => 'user-member'),
'#weight' => -5,
'#weight' => 5,
'#title' => t('History'),
);
$account->content['summary']['member_for'] = array(

View File

@ -170,6 +170,8 @@ function user_view($account) {
*/
function template_preprocess_user_profile(&$variables) {
$variables['profile'] = array();
// Sort sections by weight
uasort($variables['account']->content, 'element_sort');
// Provide keyed variables so themers can print each section independantly.
foreach (element_children($variables['account']->content) as $key) {
$variables['profile'][$key] = drupal_render($variables['account']->content[$key]);