[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
Backup
/
14082024
/
Data
/
htdocs
/
htdocs
/
perpustakaan
/
admin
/
modules
/
bibliography
/
[
Home
]
File: ucs_upload.sh.php
<?php /** * Copyright (C) 2017 Arie Nugraha (dicarve@gmail.com) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ /* Send ALL Catalog data to UCS server */ // check if we are running from command line or not if (php_sapi_name() != 'cli') { die('This script intended to be run on command line interface only!'); } set_time_limit(0); define('INDEX_AUTH', 1); // main system configuration require '../../../sysconfig.inc.php'; // load settings utility::loadSettings($dbs); // check if UCS is enabled or not if (!$sysconf['ucs']['enable']) { die(__('UCS is not enabled! Change global system configuration to enable UCS')); } require LIB.'http_request.inc.php'; // fetch all data from biblio table $sql = "SELECT b.biblio_id, b.title, b.spec_detail_info, gmd.gmd_code, gmd.gmd_name, b.edition, b.isbn_issn, publ.publisher_name, b.publish_year, b.collation, b.series_title, b.call_number, lang.language_id, lang.language_name, pl.place_name, b.classification, b.notes, fr.frequency FROM biblio AS b LEFT JOIN mst_gmd AS gmd ON b.gmd_id=gmd.gmd_id LEFT JOIN mst_publisher AS publ ON b.publisher_id=publ.publisher_id LEFT JOIN mst_language AS lang ON b.language_id=lang.language_id LEFT JOIN mst_frequency AS fr ON b.frequency_id=fr.frequency_id LEFT JOIN mst_place AS pl ON b.publish_place_id=pl.place_id"; // invoke query $q = @$dbs->query($sql); // die(json_encode(array('status' => 'DEBUG_SQL', 'message' => $sql))); if ($dbs->error) { die('Error on database: '.$dbs->error); } echo "Starting send data to UCS server... \n"; flush(); $data = array(); // loop record and poll it in an array while ($d = $q->fetch_assoc()) { $id = (integer)$d['biblio_id']; $data[$id] = $d; $data[$id]['authors'] = array(); $data[$id]['subjects'] = array(); // author $author_q = @$dbs->query("SELECT a.author_name, ba.level, a.authority_type, a.auth_list FROM biblio_author AS ba LEFT JOIN mst_author AS a ON ba.author_id=a.author_id WHERE ba.biblio_id=$id ORDER BY level ASC"); while ($author_d = $author_q->fetch_row()) { $data[$id]['authors'][] = array('name' => $author_d[0], 'level' => $author_d[1], 'type' => $author_d[2], 'auth_list' => $author_d[3]); } // subject $topic_q = @$dbs->query("SELECT t.topic, bt.level, t.topic_type, t.auth_list FROM biblio_topic AS bt LEFT JOIN mst_topic AS t ON bt.topic_id=t.topic_id WHERE bt.biblio_id=$id ORDER BY level ASC"); while ($topic_d = $topic_q->fetch_row()) { $data[$id]['subjects'][] = array('name' => $topic_d[0], 'level' => $topic_d[1], 'type' => $topic_d[2], 'auth_list' => $topic_d[3]); } } // encode array to json format if ($data) { $to_sent['node_info'] = $sysconf['ucs']; $to_sent['node_data'] = $data; // create HTTP request $http_request = new http_request(); // send HTTP POST request if (isset($sysconf['ucs']['serverversion']) && $sysconf['ucs']['serverversion'] < 3) { $http_request->send_http_request($sysconf['ucs']['serveraddr'].'/ucpoll.php', $server_addr, $to_sent, 'POST', 'text/json'); } else { $http_request->send_http_request($sysconf['ucs']['serveraddr'].'/ucs.php', $server_addr, $to_sent, 'POST', 'text/json'); } // below is for debugging purpose only // die($http_request->body()); // check for http request error if ($req_error = $http_request->error()) { echo $req_error['message']."\n"; exit(6); } // print out body of request result $response = json_decode($http_request->body(), true); echo $response['message']."\n"; exit(0); } else { exit(0); }