PHP-Paket zur Unterstützung der Verwendung der SirsiDynix Symphony Web Services API (ILSWS) für Benutzerfunktionen
John Houser [email protected]
Diese Funktionen können mit jedem gültigen ILSWS-Zugangspunkt verwendet werden. Sie lösen bei Fehlern Ausnahmen aus.
Diese Funktionen entsprechen ILSWS-Zugriffspunkten, validieren jedoch alle Eingaben und lösen Ausnahmen aus, wenn unangemessene Eingaben angezeigt werden.
Diese Funktionen bieten Funktionen, die von ILSWS nicht direkt unterstützt werden, indem sie mehrere Abfragen durchführen oder Daten aus dem Symphony-System kombinieren, bearbeiten oder auswerten.
Zur Vereinfachung für Entwickler akzeptiert die Codebibliothek Datumsangaben in den folgenden Formaten, sofern ein Datum als Parameter akzeptiert wird: JJJJMMTT, JJJJ-MM-TT, JJJJ/MM/TT, MM-TT-JJJJ oder MM/TT/ JJJJ.
Die Validierungsregeln für Telefonnummern sind derzeit so eingestellt, dass sie eine Ziffernfolge ohne Satzzeichen erwarten. Es wäre jedoch einfach, die Validierungsregeln oben in jeder öffentlichen Funktion zu ändern, um Satzzeichen in Telefonnummern zu akzeptieren.
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);
Hinweise zum includeFields-Parameter:
bib{650_a}callList{callNumber} hinzucallList{itemList{barcode}} hinzu. Felddefinitionen und Dokumentation der YAML-Konfigurationsoptionen finden Sie in der Datei libilsws .yaml.sample.
Einen vollständigen Satz an Codebeispielen finden Sie in den Beispielskripten im test .
Warnung: Die Testskripte können echte Änderungen am konfigurierten Symphony-System vornehmen. Nicht auf einem Produktionssystem verwenden, ohne sorgfältig zu prüfen, was sie tun!