source: pmb4.2/trunk/fuentes/pmb/classes/notice_authority_serie.class.php @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 3.8 KB
Line 
1<?php
2// +-------------------------------------------------+
3// © 2002-2011 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: notice_authority_serie.class.php,v 1.5 2013-03-21 10:28:55 mbertin Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");
8
9require_once($class_path."/i_2709.class.php");
10require_once($class_path."/notice_authority_generic.class.php");
11require_once($class_path."/collection.class.php");
12require_once($class_path."/subcollection.class.php");
13require_once($class_path."/serie.class.php");
14
15/*
16 * Classe pour les autorité classiques...
17 */
18class notice_authority_serie extends iso2709_notices implements notice_authority_generic{
19        var $is_utf8;
20        var $type;
21        var $common_data;
22        var $specifics_data;
23        var $rejected_forms;
24        var $associated_forms;
25        var $parallel_forms;
26        var $use_rejected;
27        var $use_associated;
28        var $use_parallel;
29        var $import_subcoll;
30
31        public function __construct($data="",$type="UNI",$file_charset="iso-8859-1",$import_subcoll=false){
32                if($file_charset == "utf-8"){
33                        $this->is_utf8 = true;
34                }
35                $this->import_subcoll=$import_subcoll;
36                parent::iso2709($data,$type);
37                $this->get_type();
38        }
39
40        public function get_type(){
41                if($this->guide_infos['bl'] == "s" && $this->fields['110']){
42                        $code = substr($this->fields['110'][0]['a'][0],0,1);
43                        if($code == "b"){
44                                if($this->fields['410']){
45                                        $this->type = "subcollection"; 
46                                }else{
47                                        $this->type = "collection";
48                                }
49                        }
50                }/*elseif($this->fields['200'][0]['f']){
51                        $this->type = "serie";
52                }*/else{
53                        $this->type = "";
54                }
55        }
56
57        /*
58         * Pour avoir le numéro d'autorité
59         */
60        public function format_authority_number($authority_number){
61                global $pmb_import_modele_authorities;
62                //appel à la méthode statique de la classe d'import...
63                if($pmb_import_modele_authorities!= 0){
64                        return call_user_func(array($pmb_import_modele_authorities,"format_authority_number"),$authority_number,20);
65                }else{
66                        return $authority_number;
67                }
68        }       
69
70        public function get_informations($use_rejected = true, $use_associated = true, $use_parallel = false){
71                $this->use_rejected = $use_rejected;
72                $this->use_associated = $use_associated;
73                $this->use_parallel = $use_parallel;
74                if(!$this->error){
75                        $this->get_common_informations();
76                        $this->get_specifics_informations();
77                        $this->get_rejected_forms();
78                        $this->get_associated_forms();
79                        $this->get_parallel_forms();
80                }
81        }
82
83        public function get_common_informations(){
84                $this->common_data = array();
85                $this->common_data['authority_number'] = $this->format_authority_number($this->fields['001'][0]['value']);
86                $this->common_data['lang'] = $this->fields[101][0]['a'][0];
87                $this->common_data['source']=array(
88                        'country' => $this->fields[801][0]['a'][0],
89                        'origin' => $this->fields[801][0]['b'][0],
90                        'date' => $this->fields[801][0]['c'][0]
91                );
92        }
93
94        public function get_specifics_informations(){
95                $this->specifics_data = array();
96                switch($this->type){
97                        case "collection" :
98                                $this->specifics_data = collection::get_informations_from_unimarc($this->fields,false,$this->import_subcoll);
99                                break;
100                        case "subcollection" :
101                                $this->specifics_data = subcollection::get_informations_from_unimarc($this->fields);
102                                break;
103                        case "serie" :
104                                //$this->specifics_data = serie::get_informations_from_unimarc($this->fields);
105                                break;
106                        default : 
107                                break;
108                }
109        }
110
111        public function get_rejected_forms(){
112                //n'existe pas sur ces types d'autorités
113        }
114
115        public function get_associated_forms(){
116                $this->associated_forms = array();
117        }
118
119        public function get_parallel_forms(){
120                //non géré dans PMB
121        }
122
123        public function check_if_exists($data){
124                switch($data['type_authority']){
125                        case "collection" :
126                                $id = collection::check_if_exists($data);
127                                break;
128                        case "subcollection" :
129                                $id = subcollection::check_if_exists($data);
130                                break;
131                }
132                return $id;
133        }
134}
Note: See TracBrowser for help on using the repository browser.