Sources de données DiGIR

Pour configurer un Fetcher DiGIR il est souvent plus efficace de copier le Fetcher DiGIR par défaut et de personnaliser la copie. Le Fetcher DiGIR par défaut peut être trouvé dans :

web/webservices/portal/fetchers/DefaultDigir.php

Le copier dans :

~web/webservices/portal/CLIENT/fetchers/XXXXXDigir.php

où :

CLIENT

est le nom d'administration du client de votre implémentation EMu. Par exemple, CLIENT serait remplacé par am pour le Australian Museum, nhm pour le Natural History Museum, dpiq pour le Department of Primary Industry Queensland, etc.

XXXXX

est un nom approprié ex. SmithsonianDigir.php ou BerkeleyDigir.php, etc.

Éditer le nouveau Fetcher :

<?php
/**
** The Local Default Fetcher
** This fetcher should connect to a standard EMu DiGIR Provider set up on this
* host
** Copyright (c) 2008 - KE Software Pty Ltd
** @package EMuWebServices
**/
if (!isset($WEB_ROOT))
{
// Fetchers may live in 2 places - the default or the client localised
// path.
if (preg_match("/portal.fetchers/",realpath(__FILE__)))
$WEB_ROOT = dirname(dirname(dirname(dirname(realpath(__FILE__)))));
else
$WEB_ROOT = dirname(dirname(dirname(dirname(dirname(realpath(__FILE__))))));
}
require_once ($WEB_ROOT . '/objects/lib/webinit.php');
require_once ($WEB_ROOT . '/webservices/portal/DigirFetcher.php');
class DefaultDigirFetcher extends DigirFetcher
{
var 	$enabled = false;
var 	$serviceName = "LocalDigirFetcher";
/*  Describe Digir configuration parameters
*  of the source
	*/
var 	$sourceName = "EMu (EMu-DiGIR.02)";
var	$hostname = "localhost";
var	$port = 80;
var	$resource = "EMu";
var 	$preferredRGB = '#eeffaa';
var 	$preferredIcon = '';
var 	$caheIsOn = false;
function DefaultDigirFetcher($instanceDir='',$backendType='',$webRoot='',$webDirName='',$debugOn='')
	{
$this->{get_parent_class(__CLASS__)}($instanceDir,$backendType,$webRoot,$webDirName,$debugOn);
// data source is local EMu-DiGIR service
$this->provider = $this->webDirName . "/webservices/digir.php";
// used to set queryable fields.  May also participate in
// "SELECT" type statement when querying data source.
// Returned fields will be translated from source field to
//   syntax:
// setKnownConcept(Concept,DataSourceField,[ExampleValue])
$this->setKnownConcept("IRN","CatalogNumberNumeric","","integer");
$this->setKnownConcept("Family","Family","Unionidae");
$this->setKnownConcept("Genus","Genus");
$this->setKnownConcept("Species","Species");
$this->setKnownConcept("Latitude","DecimalLatitude","","float");
$this->setKnownConcept("Longitude","DecimalLongitude","","float");
	}
function describe()
	{
return
"A Local Default Fetcher is a\n".
"Fetcher that should connect to the local DiGIR service\n".
"of the EMuWeb system the fetcher is configured on\n\n".
parent::describe();
	}
}
if (isset($_REQUEST['test']))
{
if (basename($_SERVER['PHP_SELF']) == 'DefaultDigir.php')
	{
$source = new DefaultDigirFetcher();
$source->test(true);
	}
}
?>
  1. Remplacez globalement :

    DefaultDigir

    par le nom donné à votre fichier. Par exemple, DefaultDigir devient SmithsonianDigir.

    Dans vi le remplacement global serait :

    :s/DefaultDigir/SmithsonianDigir/g

  2. Régler enabled sur true.
  3. Régler sourceName sur quelque chose d'approprié (c'est le nom des données sources comme affiché dans les Cartes Web). Par exemple :

    $sourceName = "NYBG Digir Source";

  4. Définissez la propriété hostname de manière appropriée.

    Une source DiGIR est hébergée par quelqu'un, quelque part. Par exemple, l'adresse du DiGIR au Museum of Comparative Zoology de l'université de Harvard est la suivante : http://digir.mcz.harvard.edu:80/digir/DiGIR.php. Le nom d'hôte dans ce cas = digir.mcz.harvard.edu

  5. Vérifier que la propriété du port est réglée de façon appropriée. D'habitude mais pas toujours :

    port = 80

    La propriété du port est spécifiée dans la documentation de la source de données DiGIR.

  6. En utilisant la méthode setKnownConcept associe les concepts de champs génériques utilisés dans les Cartes Web avec les champs DiGIR. Par exemple :

    $this->setKnownConcept("Family","Family");

    $this->setKnownConcept("Genus","Genus");

    $this->setKnownConcept("Species","Species");

    $this->setKnownConcept("Latitude","DecimalLatitude","","float");

    $this->setKnownConcept("Longitude","DecimalLongitude","","float"

  7. Régler n'importe quel exemple de terme de recherche (c'est optionnel).

    Pour créer des exemples ou tests de termes de recherche, ajouter un troisième argument à la méthode setknownConcept. Par exemple :

    $this->setKnownConcept("Family","Family","Unionidae");

    Cela utilisera la valeur d'exemple Unionidae en tant que Famille.

    Les valeurs d'exemple peuvent être utiles pour fournir un test ou un essai rapide.