Package PHP pour prendre en charge l'utilisation de l'API SirsiDynix Symphony Web Services (ILSWS) pour les fonctions d'usager
John Houser [email protected]
Ces fonctions peuvent être utilisées avec n’importe quel point d’accès ILSWS valide. Ils lanceront des exceptions en cas d'erreur.
Ces fonctions correspondent aux points d'accès ILSWS, mais elles valident toutes les entrées et lèveront des exceptions si elles sont présentées avec des entrées inappropriées.
Ces fonctions offrent des fonctionnalités non directement prises en charge par ILSWS en effectuant plusieurs requêtes ou en combinant, manipulant ou évaluant les données du système Symphony.
Pour la commodité des développeurs, la bibliothèque de codes accepte les dates dans les formats suivants, partout où une date est acceptée comme paramètre : AAAAMMJJ, AAAA-MM-JJ, AAAA/MM/JJ, MM-JJ-AAAA ou MM/JJ/. AAAA.
Les règles de validation des numéros de téléphone sont actuellement définies pour s'attendre à une chaîne de chiffres sans ponctuation. Cependant, il serait facile de modifier les règles de validation en haut de toute fonction publique pour accepter la ponctuation dans les numéros de téléphone.
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);
Remarques sur le paramètre includeFields :
bib{650_a}
callList{callNumber}
callList{itemList{barcode}}
Consultez le fichier libilsws .yaml.sample pour les définitions de champs et la documentation des options de configuration YAML.
Pour un ensemble complet d'exemples de code, consultez les exemples de scripts dans le répertoire test
.
Attention : les scripts de test peuvent apporter de réelles modifications au système Symphony configuré. Ne pas utiliser sur un système de production sans examiner attentivement ce qu'ils font !