Paquete PHP para admitir el uso de la API de servicios web SirsiDynix Symphony (ILSWS) para funciones de usuario
John Houser [email protected]
Estas funciones se pueden utilizar con cualquier punto de acceso ILSWS válido. Lanzarán excepciones en caso de error.
Estas funciones se corresponden con los puntos de acceso ILSWS, pero validan todas las entradas y generarán excepciones si se presentan entradas inapropiadas.
Estas funciones ofrecen funcionalidades que ILSWS no admite directamente al realizar múltiples consultas o al combinar, manipular o evaluar datos del sistema Symphony.
Para comodidad de los desarrolladores, la biblioteca de códigos acepta fechas en los siguientes formatos, siempre que se acepte una fecha como parámetro: AAAAMMDD, AAAA-MM-DD, AAAA/MM/DD, MM-DD-AAAA o MM/DD/. AAAA.
Actualmente, las reglas de validación para números de teléfono están configuradas para esperar una cadena de dígitos sin puntuación. Sin embargo, sería fácil modificar las reglas de validación en la parte superior de cualquier función pública para aceptar la puntuación en los números de teléfono.
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);
Notas sobre el parámetro includeFields:
bib{650_a}
callList{callNumber}
callList{itemList{barcode}}
Consulte el archivo libilsws .yaml.sample para obtener definiciones de campos y documentación de las opciones de configuración de YAML.
Para obtener un conjunto completo de ejemplos de código, consulte los scripts de ejemplo en el directorio test
.
Advertencia: los scripts de prueba pueden realizar cambios reales en el sistema Symphony configurado. ¡No lo use en un sistema de producción sin revisar cuidadosamente lo que hacen!