unset($a_field);
    tabfooter('bmarchive');
    check_submit_func($submitstr);
} else {
    $c_upload = new cls_upload();
    $fields = fields_order($fields);
    $a_field = new cls_field();
    foreach ($fields as $k => $v) {
        if ($v['available'] && !$v['isadmin'] && !$v['isfunc']) {
            $a_field->init();
            $a_field->field = $v;
            $a_field->oldvalue = isset($aedit->archive[$k]) ? $aedit->archive[$k] : '';
            $a_field->deal('marchivenew');
            if (!empty($a_field->error)) {
                $c_upload->rollback();
                mcmessage($a_field->error, M_REFERER);
            }
            $aedit->updatefield($k, $a_field->newvalue);
            if ($arr = multi_val_arr($a_field->newvalue, $v)) {
                foreach ($arr as $x => $y) {
                    $aedit->updatefield($k . '_' . $x, $y);
                }
            }
        }
    }
    unset($a_field);
    $aedit->updatedb();
    $c_upload->closure(1, $maid, 'marchives');
    $c_upload->saveuptotal(1);
    mcmessage('marceditfinish', $forward);
}