حزمة PHP لدعم استخدام SirsiDynix Symphony Web Services API (ILSWS) لوظائف المستفيد
جون هاوزر [email protected]
يمكن استخدام هذه الوظائف مع أي نقطة وصول صالحة لـ ILSWS. سوف يرمون استثناءات على الخطأ.
تتوافق هذه الوظائف مع نقاط وصول ILSWS، ولكنها تتحقق من صحة جميع المدخلات وستطرح استثناءات إذا تم تقديمها بمدخلات غير مناسبة.
توفر هذه الوظائف وظائف لا يدعمها ILSWS بشكل مباشر عن طريق إجراء استعلامات متعددة أو عن طريق دمج البيانات أو معالجتها أو تقييمها من نظام Symphony.
لراحة المطورين، تقبل مكتبة التعليمات البرمجية التواريخ بالتنسيقات التالية، حيثما يتم قبول التاريخ كمعلمة: 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}}
راجع ملف libilsws .yaml.sample للتعرف على تعريفات الحقول وتوثيق خيارات تكوين YAML.
للحصول على مجموعة كاملة من أمثلة التعليمات البرمجية، راجع أمثلة البرامج النصية في دليل test
.
تحذير: قد تقوم البرامج النصية للاختبار بإجراء تغييرات حقيقية على نظام Symphony الذي تم تكوينه. لا تستخدم في نظام الإنتاج دون مراجعة ما يفعلونه بعناية!