Exemple #1
0
function record()
{
    global $pmb_notice_controle_doublons;
    global $recept_cat_error_form;
    global $integre, $serialized_post, $existant_notice_id, $existant_b_level, $existant_h_level, $signature, $id_lig, $serialized_search;
    $recorded = false;
    switch ($integre) {
        case 'new':
            $unserialized_post = unserialize(rawurldecode(stripslashes($serialized_post)));
            foreach ($unserialized_post as $key => $val) {
                if (get_magic_quotes_gpc()) {
                    $GLOBALS[$key] = $val;
                } else {
                    add_sl($val);
                    $GLOBALS[$key] = $val;
                }
                global ${$key};
            }
            $z = new z3950_notice("form");
            $z->signature = $signature;
            $ret = $z->insert_in_database();
            $notice_id = $ret[1];
            $recorded = true;
            break;
        case 'existant':
            $notice_id = $existant_notice_id;
            $b_level = $existant_b_level;
            $h_level = $existant_h_level;
            $recorded = true;
            break;
        default:
            $duplicate = array();
            $signature = '';
            $r = object;
            if ($pmb_notice_controle_doublons != 0) {
                $sign = new notice_doublon(true);
                $signature = $sign->gen_signature();
                $r = $sign->getDuplicate();
            }
            if ($r->notice_id) {
                if ($r->niveau_biblio == 'a' && $r->niveau_hierar == 2) {
                    //article
                    $serial = new serial_display($r->notice_id, 6, '', '', '', '', '', 0, 2, 1, 0, 1, 0, 0, '', 0);
                    $notice_display = $serial->result;
                } elseif ($r->niveau_biblio == 'm' && $r->niveau_hierar == 0) {
                    //monographie
                    $display = new mono_display($r->notice_id, 6, '', 1, '', '', '', 0, 2, 1, 1, '', 0, 0, 1, 0);
                    $notice_display = $display->result;
                }
                $form = $recept_cat_error_form;
                $form = str_replace('!!serialized_post!!', rawurlencode(serialize($_POST)), $form);
                $form = str_replace('!!existant_notice_id!!', $r->notice_id, $form);
                $form = str_replace('!!existant_b_level!!', $r->niveau_biblio, $form);
                $form = str_replace('!!existant_h_level!!', $r->niveau_hierar, $form);
                $form = str_replace('!!signature!!', $signature, $form);
                $form = str_replace('!!id_lig!!', $id_lig, $form);
                $form = str_replace('!!serialized_search!!', stripslashes($serialized_search), $form);
                $form = str_replace('<!-- notice_display -->', $notice_display, $form);
                print $form;
                return false;
            } else {
                $z = new z3950_notice("form");
                $z->signature = $signature;
                $ret = $z->insert_in_database();
                $notice_id = $ret[1];
                $recorded = true;
            }
            break;
    }
    if ($recorded) {
        global $id_bibli, $id_exer, $f_fou_code, $f_dem_code, $t_dem, $f_rub_code, $cde_query, $all_query, $chk_dev, $lgstat_filter;
        $unserialized_search = unserialize(rawurldecode(stripslashes($serialized_search)));
        $id_bibli = $unserialized_search['id_bibli'];
        $id_exer = $unserialized_search['id_exer'];
        $f_fou_code = $unserialized_search['f_fou_code'];
        $f_dem_code = $unserialized_search['f_dem_code'];
        $t_dem = $unserialized_search['t_dem'];
        $f_rub_code = $unserialized_search['f_rub_code'];
        $cde_query = $unserialized_search['cde_query'];
        $all_query = $unserialized_search['all_query'];
        $chk_dev = $unserialized_search['chk_dev'];
        $lgstat_filter = $unserialized_search['lgstat_filter'];
        if ($notice_id) {
            $typ_lig = 1;
            if ($b_level == 'a' && $h_level == 2) {
                $typ_lig = 5;
            }
            lignes_actes::updateFields(array(0 => $id_lig), array('num_produit' => $notice_id, 'type_ligne' => $typ_lig));
        }
    }
    return $recorded;
}