while (list($field_name, $map_field_data) = @each($user_maps[$map_name]['fields'])) {
         if (isset($row[$field_name . '_virt'])) {
             $row[$field_name] = $row[$field_name . '_virt'];
         }
     }
     $users[] = $row;
 }
 // display the users
 $color = false;
 for ($i = 0; $i < count($users); $i++) {
     $color = !$color;
     $template->assign_block_vars('userrow', array('CLASS' => $color ? 'row1' : 'row2', 'NUMBER' => $i + 1 + $start));
     @reset($user_maps[$map_name]['fields']);
     while (list($field_name, $map_field_data) = @each($user_maps[$map_name]['fields'])) {
         if ($field_ids[$map_field_data['ind']]) {
             $template->assign_block_vars('userrow.user_list', array('FIELD' => pcp_output($field_name, $users[$i], $map_name)));
         }
     }
     if ($friend_list || $ignore_list) {
         $template->assign_block_vars('userrow.select', array('USER_ID' => $users[$i]['user_id'], 'CHECKED' => ''));
     }
 }
 // friend or ignore list : add select column
 $col = count($field_ids) + 1;
 if ($friend_list || $ignore_list) {
     $col += $col + 2;
     $template->assign_block_vars('select', array());
 }
 $template->assign_vars(array('L_USER_FIELDS' => $lang['User_fields'], 'COLSPAN' => $nb_cell, 'DOWN_ARROW' => $images['down_arrow'], 'UP_ARROW' => $images['up_arrow'], 'L_FILTER_FIELDS' => $lang['Select'], 'S_FILTER_FIELDS' => $s_filter, 'S_COMP' => $s_comp, 'FILTER' => str_replace("\\'", "'", $fvalue), 'ROW_SPAN' => $col, 'L_SUBMIT' => $lang['Submit'], 'L_RESET' => $lang['Reset'], 'L_GO' => $lang['Go'], 'L_SELECT' => $lang['Select'], 'L_ADD_MEMBER' => $lang['Add_member'], 'L_FIND_USERNAME' => $lang['Find_username'], 'L_REMOVE_SELECTED' => $lang['Remove_selected'], 'PAGINATION' => generate_pagination($call, $total_users, $board_config['topics_per_page'], $start), 'PAGE_NUMBER' => sprintf($lang['Page_of'], floor($start / $board_config['topics_per_page']) + 1, ceil($total_users / $board_config['topics_per_page'])), 'L_GOTO_PAGE' => $lang['Goto_page'], 'S_HIDDEN_FIELDS' => $s_hidden_fields, 'U_SEARCH_USER' => append_sid("./search.{$phpEx}?mode=searchuser"), 'S_PROFILCP_ACTION' => append_sid("./profile.{$phpEx}")));
 // page
 $template->pparse('body');
 $template->assign_block_vars('col.panel', array('SPAN' => $col, 'TITLE' => $title));
 if (!$split) {
     $template->assign_block_vars('col.panel.linefeed', array());
 }
 // panel field
 @reset($user_maps[$maps[$i]]['fields']);
 while (list($field_name, $field_data) = @each($user_maps[$maps[$i]]['fields'])) {
     if (substr($field_name, 0, 4) == '[lf]') {
         $template->assign_block_vars('col.panel.row', array());
         $template->assign_block_vars('col.panel.row.linefeed', array());
     } else {
         $is_leg = $col > 1;
         $leg = pcp_output($field_name, $view_userdata, $maps[$i], true);
         // forget the legend
         $user_maps[$maps[$i]]['fields'][$field_name]['leg'] = false;
         $val = pcp_output($field_name, $view_userdata, $maps[$i]);
         if ($field_name == 'user_groups') {
             $val = "</span>" . $val . "<span>";
         }
         // reset the legend
         $user_maps[$maps[$i]]['fields'][$field_name]['leg'] = $is_leg;
         // output
         $template->assign_block_vars('col.panel.row', array());
         if ($is_leg) {
             $template->assign_block_vars('col.panel.row.cell', array('CLASS' => 'row2', 'ALIGN' => 'right', 'WIDTH' => '40%', 'WRAP' => 'nowrap="nowrap"', 'VALUE' => $is_leg ? $leg . (!empty($leg) ? ':&nbsp;' : '') : ''));
         }
         $template->assign_block_vars('col.panel.row.cell', array('CLASS' => 'row1', 'ALIGN' => $is_leg ? 'left' : 'center', 'WIDTH' => $is_leg ? '100%' : '60%', 'WRAP' => '', 'VALUE' => $val));
         if ($is_leg) {
             $template->assign_block_vars('col.panel.row.cellfeed', array());
         }
     }
function pcp_output_panel($map_name, $view_userdata)
{
    global $board_config, $phpbb_root_path, $phpEx, $lang, $images, $userdata;
    global $values_list, $tables_linked, $classes_fields, $user_maps, $user_fields;
    $res = '';
    @reset($user_maps[$map_name]['fields']);
    while (list($field_name, $field_data) = @each($user_maps[$map_name]['fields'])) {
        $res .= pcp_output($field_name, $view_userdata, $map_name);
    }
    return $res;
}