function flexprofile_get_data_for_edit_form($form, $user = null)
{
    if ($user) {
        $data = form_get_data_from_profile($form->getGUID(), $user);
    } else {
        $data = array();
    }
    $tab_data = array();
    $tabs = form_display_by_tab($form, $data);
    // add access control pulldowns
    if ($tabs) {
        foreach ($tabs as $tab => $tab_items) {
            $tab_data[$tab] = '';
            foreach ($tab_items as $item) {
                $internalname = $item->internalname;
                $access_id = $item->default_access;
                $access_bit = '<p class="form-field-access">';
                $access_bit .= elgg_view('input/access', array('internalname' => 'flexprofile_access[' . $internalname . ']', 'value' => $access_id));
                $access_bit .= '</p>';
                $tab_data[$tab] .= $item->html . $access_bit;
            }
        }
    }
    return $tab_data;
}
function form_get_data_for_profile_edit_form($form, $entity = null, $group_profile_category = '')
{
    if ($entity) {
        $data = form_get_data_from_profile($form->getGUID(), $entity);
    } else {
        if ($group_profile_category) {
            $item = new stdClass();
            $item->name = 'group_profile_category';
            $item->value = $group_profile_category;
            $data = array('group_profile_category' => $item);
        }
    }
    $tab_data = array();
    $tabs = form_display_by_tab($form, $data, true);
    if ($tabs) {
        foreach ($tabs as $tab => $tab_items) {
            $tab_data[$tab] = '';
            foreach ($tab_items as $item) {
                if ($entity instanceof ElggUser) {
                    // add access control pulldowns
                    $internalname = $item->internalname;
                    if (isset($data[$internalname])) {
                        $access_id = $data[$internalname]->access_id;
                    } else {
                        if ($item->default_access || $item->default_access === 0) {
                            $access_id = $item->default_access;
                        } else {
                            $access_id = get_default_access();
                        }
                    }
                    $access_bit = '<p class="form-field-access">';
                    $access_bit .= elgg_view('input/access', array('internalname' => 'flexprofile_access[' . $internalname . ']', 'value' => $access_id));
                    $access_bit .= '</p>';
                } else {
                    $access_bit = '';
                }
                $tab_data[$tab] .= $item->html . $access_bit;
            }
        }
    }
    return $tab_data;
}
function form_get_data_for_edit_form($form, $data = null)
{
    $tab_data = array();
    $tabs = form_display_by_tab($form, $data);
    // just flatten the result and return
    if ($tabs) {
        foreach ($tabs as $tab => $tab_items) {
            $tab_data[$tab] = '';
            foreach ($tab_items as $item) {
                $tab_data[$tab] .= $item->html;
            }
        }
    }
    return $tab_data;
}