From 56d7f33ca2088e784ebf248a201cea1f61947870 Mon Sep 17 00:00:00 2001 From: Usuario Moodle Date: Tue, 7 May 2013 17:16:52 -0300 Subject: [PATCH] isolating sets and database configs in files --- config-database.php | 76 +++++++++++++++++++++++++++++++++ config-sets.php | 28 +++++++++++++ listsets.php | 1 + oai2.php | 2 + oaidp-config.php | 100 +------------------------------------------- 5 files changed, 108 insertions(+), 99 deletions(-) create mode 100644 config-database.php create mode 100644 config-sets.php diff --git a/config-database.php b/config-database.php new file mode 100644 index 0000000..fbf170b --- /dev/null +++ b/config-database.php @@ -0,0 +1,76 @@ +$SQL: Settings for database and queries from database + * + * - $DSN: DSN for connecting your database. Reference PDO for details. + * + */ + +// Data Source Name: This is the universal connection string +// if you use something other than mysql edit accordingly. +// Example for MySQL +// $DSN = "mysql://$DB_USER:$DB_PASSWD@$DB_HOST/$DB_NAME"; +// Example for Oracle +// $DSN = "oci8://$DB_USER:$DB_PASSWD@$DB_NAME"; + +$DSN = "mysql:host={$DB_HOST};dbname={$DB_NAME};port=3306;"; + +// the charset you store your metadata in your database +// currently only utf-8 and iso8859-1 are supported +$charset = "utf8"; + +// if entities such as < > ' " in your metadata has already been escaped +// then set this to true (e.g. you store < as < in your DB) +$xmlescaped = false; + +// We store multiple entries for one element in a single row +// in the database. SQL['split'] lists the delimiter for these entries. +// If you do not do this, do not define $SQL['split'] +// $SQL['split'] = ';'; + +// the name of the table where your store your metadata's header +$SQL['table'] = 'oai_headers'; + +// the name of the column where you store the unique identifiers +// pointing to your item. +// this is your internal identifier for the item +$SQL['identifier'] = 'oai_identifier'; + +$SQL['metadataPrefix'] = 'oai_metadataprefix'; + +// If you want to expand the internal identifier in some way +// use this (but not for OAI stuff, see next line) +$idPrefix = ''; + +// this is your external (OAI) identifier for the item +// this will be expanded to +// oai:$repositoryIdentifier:$idPrefix$SQL['identifier'] +// should not be changed +// +// Commented out 24/11/10 14:19:09 +// $oaiprefix = "oai".$delimiter.$repositoryIdentifier.$delimiter.$idPrefix; +$oaiprefix = ""; + +// adjust anIdentifier with sample contents an identifier +// $sampleIdentifier = $oaiprefix.'anIdentifier'; + +// the name of the column where you store your datestamps +$SQL['datestamp'] = 'datestamp'; + +// the name of the column where you store information whether +// a record has been deleted. Leave it as it is if you do not use +// this feature. +$SQL['deleted'] = 'deleted'; + +// to be able to quickly retrieve the sets to which one item belongs, +// the setnames are stored for each item +// the name of the column where you store sets +$SQL['set'] = 'oai_set'; diff --git a/config-sets.php b/config-sets.php new file mode 100644 index 0000000..7ae85a7 --- /dev/null +++ b/config-sets.php @@ -0,0 +1,28 @@ +$SETS: An array with key words . List of supported SETs. + * + */ + +// define all supported sets in your repository +$SETS = array ( + array('setSpec'=>'class:activity', 'setName'=>'Activities'), + array('setSpec'=>'class:collection', 'setName'=>'Collections'), + array('setSpec'=>'class:party', 'setName'=>'Parties'), + /* + array('setSpec'=>'math', 'setName'=>'Mathematics') , + array('setSpec'=>'phys', 'setName'=>'Physics'), + + array('setSpec'=>'phdthesis', + 'setName'=>'PHD Thesis', + 'setDescription'=>' + This set contains metadata describing + electronic music recordings made during the 1950ies + ') + */ +); diff --git a/listsets.php b/listsets.php index d05d857..53b0d27 100644 --- a/listsets.php +++ b/listsets.php @@ -4,6 +4,7 @@ * \brief Response to Verb ListSets * * Lists what sets are available to records in the system. + * This variable is filled in config-sets.php */ // Here the size of sets is small, no resumptionToken is taken care. diff --git a/oai2.php b/oai2.php index dc4b023..adf43d3 100644 --- a/oai2.php +++ b/oai2.php @@ -68,6 +68,8 @@ foreach($attribs as $val) { require_once('oaidp-config.php'); require_once('config-metadataformats.php'); +require_once('config-sets.php'); +require_once('config-database.php'); // Create a PDO object try { diff --git a/oaidp-config.php b/oaidp-config.php index 0b98392..0f75525 100644 --- a/oaidp-config.php +++ b/oaidp-config.php @@ -7,23 +7,15 @@ * Please read through the WHOLE file, there are several things, that * need to be adjusted. * - * * The response may may be compressed for better performace: * - Compression : a compression encoding supported by the repository. The recommended values are those defined for the Content-Encoding header in Section 14.11 of RFC 2616 describing HTTP 1.1. A compression element should not be included for the identity encoding, which is implied. * - * * Some other used variables: * * - $repositoryIdentifier : For a data provider there is only one. For repositories to comply with the oai * format it has to be unique identifiers for items records. Basically using domainname will be fine. * See: http://www.openarchives.org/OAI/2.0/guidelines-oai-identifier.htm. * - * - $SETS: An array with key words . List of supported SETs. - * - * - $SQL: Settings for database and queries from database - * - * - $DSN: DSN for connecting your database. Reference PDO for details. - * * The rest of settings will not normally need to be adjusted. Read source code for details. */ @@ -142,6 +134,7 @@ define('REG_OBJ_GROUP','Something agreed on'); // Please check identify.php for other possible containers // in the Identify response $show_identifier = false; + // MUST (only one) // should not be changed. Only useful when NODE description is included in the response to Identifier $delimiter = ':'; @@ -166,96 +159,5 @@ $expirationdatetime = gmstrftime('%Y-%m-%dT%TZ', time()+TOKEN_VALID); /** Where token is saved and path is included */ define('TOKEN_PREFIX','/tmp/ANDS_DBPD-'); -// define all supported sets in your repository -$SETS = array ( - array('setSpec'=>'class:activity', 'setName'=>'Activities'), - array('setSpec'=>'class:collection', 'setName'=>'Collections'), - array('setSpec'=>'class:party', 'setName'=>'Parties') - /*, - array('setSpec'=>'phdthesis', 'setName'=>'PHD Thesis', 'setDescription'=>' - This set contains metadata describing electronic music recordings made during the 1950ies - ') //, - // array('setSpec'=>'math', 'setName'=>'Mathematics') , - // array('setSpec'=>'phys', 'setName'=>'Physics') - */ -); - - // The shorthand of xml schema namespace, no need to change this define('XMLSCHEMA', 'http://www.w3.org/2001/XMLSchema-instance'); - -// -// DATABASE SETUP -// - -// change according to your local DB setup. -$DB_HOST = ''; -$DB_USER = ''; -$DB_PASSWD = ''; -$DB_NAME = ''; - -// Data Source Name: This is the universal connection string -// if you use something other than mysql edit accordingly. -// Example for MySQL -// $DSN = "mysql://$DB_USER:$DB_PASSWD@$DB_HOST/$DB_NAME"; -// Example for Oracle -// $DSN = "oci8://$DB_USER:$DB_PASSWD@$DB_NAME"; - -$DSN = "mysql:host={$DB_HOST};dbname={$DB_NAME};port=3306;"; - -// the charset you store your metadata in your database -// currently only utf-8 and iso8859-1 are supported -$charset = "iso8859-1"; - -// if entities such as < > ' " in your metadata has already been escaped -// then set this to true (e.g. you store < as < in your DB) -$xmlescaped = false; - -// We store multiple entries for one element in a single row -// in the database. SQL['split'] lists the delimiter for these entries. -// If you do not do this, do not define $SQL['split'] -// $SQL['split'] = ';'; - -// the name of the table where your store your metadata's header -$SQL['table'] = 'oai_headers'; - -// the name of the column where you store the unique identifiers -// pointing to your item. -// this is your internal identifier for the item -$SQL['identifier'] = 'oai_identifier'; - -$SQL['metadataPrefix'] = 'oai_metadataprefix'; - -// If you want to expand the internal identifier in some way -// use this (but not for OAI stuff, see next line) -$idPrefix = ''; - -// this is your external (OAI) identifier for the item -// this will be expanded to -// oai:$repositoryIdentifier:$idPrefix$SQL['identifier'] -// should not be changed -// -// Commented out 24/11/10 14:19:09 -// $oaiprefix = "oai".$delimiter.$repositoryIdentifier.$delimiter.$idPrefix; -$oaiprefix = ""; - -// adjust anIdentifier with sample contents an identifier -// $sampleIdentifier = $oaiprefix.'anIdentifier'; - -// the name of the column where you store your datestamps -$SQL['datestamp'] = 'datestamp'; - -// the name of the column where you store information whether -// a record has been deleted. Leave it as it is if you do not use -// this feature. -$SQL['deleted'] = 'deleted'; - -// to be able to quickly retrieve the sets to which one item belongs, -// the setnames are stored for each item -// the name of the column where you store sets -$SQL['set'] = 'oai_set';