phpDocumentor default
[ class tree: default ] [ index: default ] [ all elements ]

Class: mets_insert

Source Location: /lodel/scripts/mets_insert.php

Class mets_insert

Property Summary
mixed   $error_levels  
array   $partners   Tableau des noms des éléments racines (partenaires)
array   $request   Tableau destiné à stocker la requête envoyée à Lodel pour insérer une entité dans la base (numéro ou article)
array   $revue   Tableau qui stocke les informations de la revue en cours de traitement

[ Top ]
Method Summary
mets_insert   __construct()   Constructeur
array   get_partners()   Liste les partenaires : classe Lodel 'partner' (la seule dont les types peuvent être insérés à la racine) Les partenaires doivent être au préalable insérés via l'interface de Lodel, à la racine du site
array   get_revues_dir()   Liste les répertoires contenus dans le dossier du partenaire (un répertoire = une revue) Les répertoires doivent exister (un répertoire par revue)
void   parse_dc()   Insère les données dublin core dans la base Lodel, pour une revue
void   parse_mets()   Insère les données issues du METS dans la base Lodel, pour une revue N.B : insertion et mise à jour des entités, mais PAS de suppression Appelé par lodel/admin/index.php
void   _check_types_compatibility()  
void   _execute_Lodel_request()  
void   _find_record()   Trouve dans le mets un record à partir de son identifiant
int   _get_entity_type()   Cherche le type Lodel correspondant à un noeud mets
void   _get_file_location()   Trouve dans le mets (in fileSec) l'URL d'un fichier à partir de son identifiant (in structmap)
string   _get_lang()   Retourne le code langue ISO 639-1 (2 caractères) attendu par Lodel pour les champs de type mltext
int   _get_Lodel_class()   Trouve l'id d'un type (Lodel) à partir de son nom
array   _get_Lodel_dc_field()   Trouve le nom et le type du champ dans la base de Lodel qui correspond à l'équivalent dc de $dc_field
array   _get_Lodel_entity()   Cherche dans la table Lodel entities si un record a déjà été inséré L'identifiant METS est stocké dans le champ Lodel 'identifier'
string   _get_Lodel_field_value()   Trouve la valeur d'un champ dans la base de Lodel, pour une classe donnée
int   _get_Lodel_id()   Retourne l'id Lodel d'une entité à partir de l'identifiant mets
int   _get_Lodel_idparent()   Retourne l'id du parent d'une entité
int   _get_Lodel_idtype()   Trouve l'id d'un type (Lodel) à partir de son nom
string   _get_mets_id()   Retourne l'id mets d'une entité à partir de l'identifiant Lodel
void   _get_namespaces()   Détection des espaces de noms utilisés dans le XML : retourne normalement au moins mets + dc + dcterms
array   _get_revue_files()   Retourne la liste des fichiers XML d'une revue, en fonction du format xml demandé Chaque répertoire de revue doit contenir un répertoire par format.
string   _get_revue_mets()   Retourne dans une chaîne le contenu des fichiers XML-METS d'une revue
void   _init_Lodel_request()   Paramètres pour l'insertion d'une entité dans Lodel
bool   _init_record()   Pour un record mets, cherche les correspondances entre les éléments mets et les champs Lodel Initialise $this->record avec les infos trouvées
void   _insert_children()   Cherche la structure d'un record (<div> in structmap) = les entités enfants dans Lodel Pour chaque enfant : cherche infos dans les noeuds structmap et filesec du parent Insère ensuite ces enfants dans la base Lodel
bool   _insert_data()   Trouve les informations (dc ou dcterms) correspondant au record (=édition d'une entité dans Lodel) Construit la requête en récupérant les noms des champs du ME qui correspondent aux éléments dc Puis appelle _execute_Lodel_request pour l'insertion dans Lodel
void   _log_dberror()  
void   _log_error()  
array   _parse_structmap()   Cherche dans un <div> d'un structmap les informations à insérer dans Lodel, pour une entité

[ Top ]
Properties
mixed   $error_levels = array (FATAL => PEAR_LOG_ERR,
WARN => PEAR_LOG_WARNING,
INFO => PEAR_LOG_INFO)
[line 49]
API Tags:
Access:  private


[ Top ]
array   $partners = array() [line 57]

Tableau des noms des éléments racines (partenaires)

API Tags:
Access:  public


[ Top ]
array   $request = array() [line 70]

Tableau destiné à stocker la requête envoyée à Lodel pour insérer une entité dans la base (numéro ou article)

API Tags:
Access:  private


[ Top ]
array   $revue = array() [line 63]

Tableau qui stocke les informations de la revue en cours de traitement

API Tags:
Access:  private


[ Top ]
Methods
Constructor __construct  [line 76]

  mets_insert __construct( )

Constructeur



[ Top ]
get_partners  [line 723]

  array get_partners( )

Liste les partenaires : classe Lodel 'partner' (la seule dont les types peuvent être insérés à la racine) Les partenaires doivent être au préalable insérés via l'interface de Lodel, à la racine du site


API Tags:
Return:  liste des partenaires avec les infos contenues dans la base Lodel
Access:  public

Information Tags:
Todo:  utiliser une variable pour stocker le nom de la table (partner) OU considérer que c'est le seul type autorisé à la racine

[ Top ]
get_revues_dir  [line 756]

  array get_revues_dir( string $partner_dir  )

Liste les répertoires contenus dans le dossier du partenaire (un répertoire = une revue) Les répertoires doivent exister (un répertoire par revue)

Parameters:
string   $partner_dir:  chemin absolu du répertoire du partenaire

API Tags:
Return:  liste des répertoires accessibles en lecture s'il y en a
Access:  public


[ Top ]
parse_dc  [line 151]

  void parse_dc( )

Insère les données dublin core dans la base Lodel, pour une revue

Utile pour récupérer le dc des articles de Persée (pas dans le mets) Cette fonction met à jour les entités déjà présentes dans Lodel, mais n'en ajoute pas Appelé par index.php à la racine du site Ne sert que pour Persée (pour l'instant)


API Tags:
Access:  public


[ Top ]
parse_mets  [line 92]

  void parse_mets( array $revue  )

Insère les données issues du METS dans la base Lodel, pour une revue N.B : insertion et mise à jour des entités, mais PAS de suppression Appelé par lodel/admin/index.php

Parameters:
array   $revue:  initialisé dans lodel/admin/index.php

API Tags:
Access:  public


[ Top ]
_check_types_compatibility  [line 635]

  void _check_types_compatibility( $idtype, $idtypeparent  )

Parameters:
   $idtype: 
   $idtypeparent: 

API Tags:
Access:  private


[ Top ]
_execute_Lodel_request  [line 645]

  void _execute_Lodel_request( [ $request = array()]  )

Parameters:
   $request: 

API Tags:
Access:  private


[ Top ]
_find_record  [line 369]

  void _find_record( string $mets_id, string $type  )

Trouve dans le mets un record à partir de son identifiant

Parameters:
string   $mets_id:  identifiant du record (ex : cea_0008-0055_1960_num_1_2_3665)
string   $type:  type du record (ex : numero, article, serie)

API Tags:
Access:  private


[ Top ]
_get_entity_type  [line 628]

  int _get_entity_type( $div, string $identifier  )

Cherche le type Lodel correspondant à un noeud mets

Parameters:
string   $identifier:  valeur de l'identifiant mets
   $div: 

API Tags:
Return:  id Lodel si l'entité a déjà été créée, 0 sinon
Access:  private


[ Top ]
_get_file_location  [line 347]

  void _get_file_location( string $mets_idparent, string $mets_file_id  )

Trouve dans le mets (in fileSec) l'URL d'un fichier à partir de son identifiant (in structmap)

Parameters:
string   $mets_idparent:  identifiant mets du record (ex : cea_0008-0055_1960_num_1_2_3665)
string   $mets_file_id:  identifiant mets du fichier (ex : FID1)

API Tags:
Access:  private


[ Top ]
_get_lang  [line 465]

  string _get_lang( object $lang  )

Retourne le code langue ISO 639-1 (2 caractères) attendu par Lodel pour les champs de type mltext

Parameters:
object   $lang:  attribut xml:lang

API Tags:
Return:  code langue ISO 639-1
Access:  private


[ Top ]
_get_Lodel_class  [line 558]

  int _get_Lodel_class( string $idtype  )

Trouve l'id d'un type (Lodel) à partir de son nom

Parameters:
string   $idtype:  nom du type

API Tags:
Access:  private


[ Top ]
_get_Lodel_dc_field  [line 496]

  array _get_Lodel_dc_field( string $dc_field, [string $class = '']  )

Trouve le nom et le type du champ dans la base de Lodel qui correspond à l'équivalent dc de $dc_field

Parameters:
string   $dc_field:  nom de l'élément dc
string   $class:  nom de la classe (=la table) dans Lodel

API Tags:
Return:  s'il est trouvé, false sinon
Access:  private


[ Top ]
_get_Lodel_entity  [line 182]

  array _get_Lodel_entity( string $mets_id  )

Cherche dans la table Lodel entities si un record a déjà été inséré L'identifiant METS est stocké dans le champ Lodel 'identifier'

Parameters:
string   $mets_id:  identifiant mets

API Tags:
Return:  info concernant l'entité
Access:  private


[ Top ]
_get_Lodel_field_value  [line 524]

  string _get_Lodel_field_value( string $field, int $id, string $class  )

Trouve la valeur d'un champ dans la base de Lodel, pour une classe donnée

Parameters:
string   $field:  nom du champ
int   $id:  de l'entité
string   $class:  nom de la classe (=la table) dans Lodel

API Tags:
Return:  val. du champ si elle est trouvée, false sinon
Access:  private


[ Top ]
_get_Lodel_id  [line 574]

  int _get_Lodel_id( string $identifier, $class  )

Retourne l'id Lodel d'une entité à partir de l'identifiant mets

Parameters:
string   $identifier:  valeur de l'identifiant mets
   $class: 

API Tags:
Return:  id Lodel si l'entité a déjà été créée, 0 sinon
Access:  private


[ Top ]
_get_Lodel_idparent  [line 610]

  int _get_Lodel_idparent( int $Lodel_id  )

Retourne l'id du parent d'une entité

Parameters:
int   $Lodel_id:  valeur de l'id Lodel

API Tags:
Return:  id du parent
Access:  private


[ Top ]
_get_Lodel_idtype  [line 542]

  int _get_Lodel_idtype( string $type  )

Trouve l'id d'un type (Lodel) à partir de son nom

Parameters:
string   $type:  nom du type

API Tags:
Access:  private


[ Top ]
_get_mets_id  [line 592]

  string _get_mets_id( int $Lodel_id, $class  )

Retourne l'id mets d'une entité à partir de l'identifiant Lodel

Parameters:
int   $Lodel_id:  valeur de l'id Lodel
   $class: 

API Tags:
Return:  valeur de l'identifiant mets
Access:  private


[ Top ]
_get_namespaces  [line 698]

  void _get_namespaces( object $mets_file  )

Détection des espaces de noms utilisés dans le XML : retourne normalement au moins mets + dc + dcterms

ex : $ns = array ( 'mets' => 'http://www.loc.gov/METS/', 'dc' => 'http://purl.org/dc/elements/1.1/', 'dcterms' => 'http://purl.org/dc/terms/');

Parameters:
object   $mets_file:  le mets à analyser

API Tags:
Access:  private

Information Tags:
Todo:  vérifier que les 3 (mets, dc, dcterms) sont disponibles dans le fichier

[ Top ]
_get_revue_files  [line 786]

  array _get_revue_files( string $format  )

Retourne la liste des fichiers XML d'une revue, en fonction du format xml demandé Chaque répertoire de revue doit contenir un répertoire par format.

Les noms des répertoires sont renseignés dans Lodel (édition du partenaire), et identiques pour toutes les revues d'un même partenaire

Parameters:
string   $format:  format xml (mets, dc, etc.)

API Tags:
Return:  liste des fichiers xml accessibles en lecture
Access:  private


[ Top ]
_get_revue_mets  [line 821]

  string _get_revue_mets( [ $oai = true], string $revue_dir  )

Retourne dans une chaîne le contenu des fichiers XML-METS d'une revue

Parameters:
string   $revue_dir:  chemin du répertoire où sont stockés les fichiers xml
   $oai: 

API Tags:
Return:  Concaténation du contenu des fichiers
Access:  private


[ Top ]
_init_Lodel_request  [line 677]

  void _init_Lodel_request( )

Paramètres pour l'insertion d'une entité dans Lodel


API Tags:
Access:  private


[ Top ]
_init_record  [line 211]

  bool _init_record( object le $record, [bool $root = false]  )

Pour un record mets, cherche les correspondances entre les éléments mets et les champs Lodel Initialise $this->record avec les infos trouvées

On part du principe que des informations concernant le record ont déjà été insérées dans Lodel, parce qu'on a déjà parsé la structMap du parent Tout record qui n'est pas trouvé dans la base est ignoré (à part le premier, l'élément racine = la revue)

Parameters:
object le   $record:  record en question
bool   $root:  true s'il s'agit de la racine, false sinon

API Tags:
Return:  true si on a les infos nécessaires, false sinon
Access:  private

Information Tags:
Todo:  reconnaissance en fonction du partenaire (cleo=dc:type ; persee=mets TYPE="serie")

[ Top ]
_insert_children  [line 249]

  void _insert_children( $strucMap, $fileSec, [int $idparent = 0], [ $idtypeparent = ''], object $xml  )

Cherche la structure d'un record (<div> in structmap) = les entités enfants dans Lodel Pour chaque enfant : cherche infos dans les noeuds structmap et filesec du parent Insère ensuite ces enfants dans la base Lodel

Parameters:
object   $xml:  premier niveau de div dans le structmap
int   $idparent:  id Lodel de l'entité dont on cherche les enfants
   $strucMap: 
   $fileSec: 
   $idtypeparent: 

API Tags:
Access:  private


[ Top ]
_insert_data  [line 389]

  bool _insert_data( $record, $request, [ $root = false], [ $format = 'mets']  )

Trouve les informations (dc ou dcterms) correspondant au record (=édition d'une entité dans Lodel) Construit la requête en récupérant les noms des champs du ME qui correspondent aux éléments dc Puis appelle _execute_Lodel_request pour l'insertion dans Lodel

Parameters:
   $record: 
   $request: 
   $root: 
   $format: 

API Tags:
Return:  false si l'édition de l'entité a échoué, true sinon
Access:  private


[ Top ]
_log_dberror  [line 664]

  void _log_dberror( $from  )

Parameters:
   $from: 

API Tags:
Access:  private


[ Top ]
_log_error  [line 658]

  void _log_error( $txt, $level  )

Parameters:
   $txt: 
   $level: 

API Tags:
Access:  private


[ Top ]
_parse_structmap  [line 306]

  array _parse_structmap( object $xml  )

Cherche dans un <div> d'un structmap les informations à insérer dans Lodel, pour une entité

Parameters:
object   $xml:  le <div> à analyser

API Tags:
Access:  private


[ Top ]

Documentation generated on Thu, 17 Apr 2008 05:07:20 +0200 by phpDocumentor 1.4.0a2