source: pmb4.2/trunk/fuentes/pmb/classes/vedette/vedette_element.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: 2.8 KB
Line 
1<?php
2// +-------------------------------------------------+
3// | 2002-2007 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: vedette_element.class.php,v 1.5 2014-10-07 10:34:17 arenou Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");
8
9require_once($class_path."/vedette/vedette_cache.class.php");
10
11/**
12 * class vedette_element
13 * un élément d'une vedette composee : une instance d'une autorité ou d'une notice
14 */
15abstract class vedette_element {
16
17        /**
18         * Type de l'élément
19         * @var unknown_type
20         */
21        protected $type;
22       
23        /**
24         * Identifiant de l'élément (URI dans le cas d'un concept)
25         * @var int or string
26         */
27        protected $id;
28       
29        /**
30         * Libellé à afficher
31         * @var unknown_type
32         */
33        protected $isbd;
34       
35        /**
36         * Instance de la classe PMB de l'autorité ou de la notice
37         * @access private
38         */
39        protected $element;
40       
41        /**
42         * Identifiant de l'élément dans la base
43         * @var int
44         */
45        protected $db_id;
46       
47        /**
48         * Construit un element de la vedette
49         *
50         * @param int type Type d'élément : auteur, titre uniforme, concept, notice, etc.
51         * @param int id Identifiant de l'élément (id d'autorité ou de notice)
52         *
53         * @return void
54         * @access public
55         */
56        public function __construct($type, $id, $isbd = ""){
57                $this->type = $type;
58                $this->id=$id;
59                $this->isbd = $isbd;
60                $this->fetch_datas_cache();
61        }
62       
63        /**
64         * Methode permettant de construire l'objet element dans la classe
65         * A ré-implémenter pour faire un new concept ou une new notice ...
66         */
67        public abstract function set_vedette_element_from_database();
68       
69        /**
70         * Retourne l'identifiant de l'élément. Pas nécessairement un entier (une URI pour un concept).
71         * @return unknown_type
72         */
73        public function get_id(){
74                return $this->id;
75        }
76       
77        /**
78         * Retourne l'identifiant en base de l'élément
79         * @return int
80         */
81        public function get_db_id(){
82                if (!$this->db_id) {
83                        $this->db_id = $this->id;
84                }
85                return $this->db_id;
86        }
87       
88        public function get_type(){
89                return $this->type;
90        }
91       
92        public function get_isbd(){
93                return $this->isbd;
94        }
95       
96        public function get_element(){
97                return $this->element;
98        }
99       
100        public static function search_vedette_element_ui_class_name($vedette_element_class_name){
101                if(class_exists($vedette_element_class_name.'_ui')){
102                        return $vedette_element_class_name.'_ui';
103                }else{
104                        return 'vedette_element_ui';
105                }
106        }
107       
108        protected function fetch_datas_cache(){
109                $tmp=vedette_cache::get_at_vedette_cache($this);
110                if($tmp){
111                        $this->restore($tmp);
112                }else{
113                        $this->set_vedette_element_from_database();
114                        vedette_cache::set_at_vedette_cache($this);
115                }
116        }
117       
118        protected function restore($vedette_object){
119                foreach(get_object_vars($vedette_object) as $propertieName=>$propertieValue){
120                        $this->{$propertieName}=$propertieValue;
121                }
122        }
123       
124}
Note: See TracBrowser for help on using the repository browser.