パトロン機能のための SirsiDynix Symphony Web Services API (ILSWS) の使用をサポートする PHP パッケージ
ジョン・ハウザー [email protected]
これらの機能は、有効な ILSWS アクセス ポイントで使用できます。エラーが発生すると例外がスローされます。
これらの関数は ILSWS アクセス ポイントに対応しますが、すべての入力を検証し、不適切な入力が指定された場合は例外をスローします。
これらの関数は、複数のクエリを実行したり、Symphony システムからのデータを結合、操作、評価したりすることによって、ILWSS によって直接サポートされていない機能を提供します。
開発者の便宜を図るため、コード ライブラリは、日付がパラメーターとして受け入れられる場合は常に、YYYYMMDD、YYYY-MM-DD、YYYY/MM/DD、MM-DD-YYYY、または MM/DD/ の形式で日付を受け入れます。 YYYY。
電話番号の検証ルールは現在、句読点のない数字の文字列を想定するように設定されています。ただし、電話番号の句読点を受け入れるように、パブリック関数の先頭にある検証ルールを変更するのは簡単です。
require_once 'vendor/autoload.php';
// Initialize and load configuration from YAML configuration file
$ilsws = new libilsws libilsws ('./ libilsws .yaml');
// Connect to ILSWS with configuration loaded from YAML file
$token = $ilsws->connect();
/**
* Valid incoming params are:
* ct = number of results to return,
* rw = row to start on (so you can page through results),
* j = boolean AND or OR to use with multiple search terms, and
* includeFields = fields to return in result.
*/
$index = 'EMAIL';
$search = '[email protected]';
// Prepare search parameters, including fields to return
$options = [
'rw' => 1,
'ct' => 10,
'j' => 'AND',
'includeFields' => 'key,barcode']
];
// Run search
$response = $ilsws->search_patron($token, $index, $search, $options);
$response = $ilsws->get_patron_attributes($token, $patron_key);
/**
* The order of the fields doesn't matter. Not all of these are actually required.
* See the YAML configuration file to determine which fields are required. If an
* email template name is included in the options array, an email will be sent to the
* patron. Actual template files must include a language extension (for example .en for
* English. The system will look for template that matches the patrons language
* preference. If one is found, it will use that, otherwise it will attempt to
* find and use an English template.
*/
$patron = [
'birthDate' => '1962-03-07',
'city_state' => 'Portland, OR',
'county' => '0_MULT',
'email' => '[email protected]',
'firstName' => 'Bogus',
'friends_notices' => 'YES',
'home_library' => 'CEN',
'language' => 'ENGLISH',
'lastName' => 'Bogart',
'library_news' => 'YES',
'middleName' => 'T',
'notice_type' => 'PHONE',
'patron_id' => '21168045918653',
'postal_code' => '97209',
'street' => '925 NW Hoyt St Apt 406',
'telephone' => '215-534-6821',
'sms_phone' => [
'number' => '215-534-6821',
'countryCode' => 'US',
'bills' => true,
'general' => true,
'holds' => true,
'manual' => true,
'overdues' => true,
],
];
$addr_num = 1;
$options = [];
$options['role'] = 'STAFF';
$options['client_id'] = 'StaffClient';
$options['template'] = 'template.html.twig';
$options['subject'] = 'Welcome to the library!';
$response = $ilsws->register_patron($patron, $token, $addr_num, $options);
// Define patron array
$patron = [
'firstName' => 'John',
'middleName' => 'Rad',
'lastName' => 'Houser',
'birthDate' => '1972-03-10',
'home_library' => 'CEN',
'county' => '0_MULT',
'notice_type' => 'PHONE',
'library_news' => 'YES',
'friends_notices' => 'YES',
'online_update' => 'YES',
'street' => '925 NW Hoyt St Apt 606',
'city_state' => 'Portland, OR',
'patron_id' => '21168045918653',
'postal_code' => '97208',
'email' => '[email protected]',
'telephone' => '215-544-6941',
'sms_phone' => [
'number' => '215-544-6941',
'countryCode => 'US',
'bills' => true,
'general' => true,
'holds' => true,
'manual' => true,
'overdues' => true,
],
];
$addr_num = 1;
$patron_key = '782339';
// Update the patron record
$response = $ilsws->update_patron($patron, $token, $patron_key, $addr_num);
/**
* Convert UTF-8 characters with accents to ASCII and strip unwanted characters and
* boolean operators from search terms
*/
$search = $ilsws->prepare_search($search);
// Prepare search parameters and choose fields to return
$params = [
'ct' => '50',
'rw' => '1',
'j' => 'AND',
'includeFields' => 'author,title,bib{650_a,856_u},callList{callNumber,itemList{barcode,currentLocation}}'
];
// Run search
$response = $ilsws->search_bib($token, $index, $search, $params);
includeFields パラメータに関する注意:
bib{650_a}
を追加します。callList{callNumber}
を追加します。callList{itemList{barcode}}
を追加します。 YAML 構成オプションのフィールド定義とドキュメントについては、 libilsws .yaml.sample ファイルを参照してください。
コード例の完全なセットについては、 test
ディレクトリ内のサンプル スクリプトを参照してください。
警告:テスト スクリプトは、構成された Symphony システムに実際の変更を加える可能性があります。動作を慎重に検討することなく実稼働システムで使用しないでください。