escape_string($str_value); $_sql_id_q = sprintf('SELECT author_id FROM mst_author WHERE author_name=\'%s\'', $str_value); $id_q = $dbs->query($_sql_id_q); if ($id_q->num_rows > 0) { $id_d = $id_q->fetch_row(); unset($id_q); // cache if ($arr_cache) { $arr_cache[$str_value] = $id_d[0]; } return $id_d[0]; } else { $_curr_date = date('Y-m-d'); // if not found then we insert it as new value $_sql_insert_author = sprintf('INSERT IGNORE INTO mst_author (author_name, authority_type, input_date, last_update)' .' VALUES (\'%s\', \'%s\', \'%s\', \'%s\')', $str_value, $str_author_type, $_curr_date, $_curr_date); $dbs->query($_sql_insert_author); if (!$dbs->error) { // cache if ($arr_cache) { $arr_cache[$str_value] = $dbs->insert_id; } return $dbs->insert_id; } } } /** * Utility function to get subject ID **/ function getSubjectID($str_subject, $str_subject_type, &$arr_cache = false, $str_class_number = '') { global $dbs; $str_value = trim($str_subject); if ($arr_cache) { if (isset($arr_cache[$str_value])) { return $arr_cache[$str_value]; } } $str_value = $dbs->escape_string($str_value); $_sql_id_q = sprintf('SELECT topic_id FROM mst_topic WHERE topic=\'%s\' OR classification=\'%s\'', $str_value, $str_class_number); $id_q = $dbs->query($_sql_id_q); if ($id_q->num_rows > 0) { $id_d = $id_q->fetch_row(); unset($id_q); // cache if ($arr_cache) { $arr_cache[$str_value] = $id_d[0]; } return $id_d[0]; } else { $_curr_date = date('Y-m-d'); // if not found then we insert it as new value $_sql_insert_topic = sprintf('INSERT IGNORE INTO mst_topic (topic, topic_type, classification, input_date, last_update)' .' VALUES (\'%s\', \'%s\', \'%s\', \'%s\', \'%s\')', $str_value, $str_subject_type, $str_class_number, $_curr_date, $_curr_date); $dbs->query($_sql_insert_topic); if (!$dbs->error) { // cache if ($arr_cache) { $arr_cache[$str_value] = $dbs->insert_id; } return $dbs->insert_id; } else { echo $dbs->error; } } } /** * callback function to show title and authors in datagrid **/ function showTitleAuthors($obj_db, $array_data) { global $sysconf; global $label_cache; $_opac_hide = false; $_promoted = false; $_labels = ''; // biblio author detail if ($sysconf['index']['type'] == 'default') { $_sql_biblio_q = sprintf('SELECT b.title, a.author_name, opac_hide, promoted, b.labels FROM biblio AS b LEFT JOIN biblio_author AS ba ON b.biblio_id=ba.biblio_id LEFT JOIN mst_author AS a ON ba.author_id=a.author_id WHERE b.biblio_id=%d', $array_data[0]); $_biblio_q = $obj_db->query($_sql_biblio_q); $_authors = ''; while ($_biblio_d = $_biblio_q->fetch_row()) { $_title = $_biblio_d[0]; $_authors .= $_biblio_d[1].' - '; $_opac_hide = (integer)$_biblio_d[2]; $_promoted = (integer)$_biblio_d[3]; $_labels = $_biblio_d[4]; } $_authors = substr_replace($_authors, '', -3); $_output = '