source: pmb4.2/trunk/fuentes/pmb/classes/onto/common/onto_common_datatype.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.7 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: onto_common_datatype.class.php,v 1.15 2014-08-08 13:29:24 apetithomme Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");
8
9/**
10 * class onto_common_datatype
11 *
12 */
13abstract class onto_common_datatype {
14
15        /** Aggregations: */
16
17        /** Compositions: */
18
19         /*** Attributes: ***/
20
21        /**
22         * Indice de la valeur si ordonnée, 0 sinon
23         * @access public
24         */
25        public $order = 0;
26       
27        /**
28         *
29         * @access protected
30         */
31        protected $value;
32       
33        /**
34         *
35         * @access protected
36         */
37        protected $value_type;
38       
39        /**
40         * Propriétés de la valeur (type, langue, ...)
41         * @access protected
42         */
43        protected $value_properties;
44       
45        /**
46         * Le nom de la class UI à utiliser
47         *
48         * @var string
49         */
50        protected $datatype_ui_class_name;
51       
52        /**
53         *
54         *
55         * @param  value valeur associé
56
57         * @param bool multiple
58
59         * @return void
60         * @access public
61         */
62        public function __construct($value, $value_type, $value_properties,$datatype_ui_class_name='') {
63                $this->value = $value;
64                $this->value_type = $value_type;
65                $this->value_properties = $value_properties;
66                $this->set_datatype_ui_class_name($datatype_ui_class_name);
67        } // end of member function __construct
68
69
70        public abstract function check_value();
71       
72        public function get_value() {
73                return $this->value;
74        }
75       
76        public function get_formated_value() {
77                return $this->value;
78        }
79       
80        public function get_raw_value() {
81                return $this->value;
82        }
83       
84        public function get_lang() {
85                if (isset($this->value_properties["lang"])) return $this->value_properties["lang"];
86                return false;
87        }
88       
89        public function set_order($order) {
90                $this->order = $order;
91        }
92       
93        public function get_order() {
94                return $this->order;
95        }
96       
97        public function get_value_type() {
98                return $this->value_type;
99        }
100       
101        public function get_value_properties() {
102                return $this->value_properties;
103        }
104               
105        public function offsetget_value_property($offset) {
106                return $this->value_properties[$offset];
107        }
108       
109        /**
110         *
111         * Rempli la variable datatype_ui_class_name
112         *
113         * @param string $ui_class_name
114         */
115        public function set_datatype_ui_class_name($datatype_ui_class_name='', $restriction = NULL){
116                if($datatype_ui_class_name && $this->datatype_ui_class_name != $datatype_ui_class_name && class_exists($datatype_ui_class_name)){
117                        //on peut vouloir le forcer ...
118                        $this->datatype_ui_class_name=$datatype_ui_class_name;
119                }       
120        }
121       
122        /**
123         *
124         * Renvoi le nom de la class ui datatype_ui_class_name à utiliser pour le datatype
125         *
126         * @return string
127         */
128        public function get_datatype_ui_class_name(){
129                return $this->datatype_ui_class_name;
130        }
131       
132       
133        /**
134         *
135         * @param $instance_name string
136         * @param $property onto_common_property
137         * @return boolean
138         */
139        public static function get_values_from_form($instance_name, $property, $uri_item) {
140                $datatypes = array();
141                $var_name = $instance_name."_".$property->pmb_name;
142               
143                global $$var_name;
144                if ($$var_name && count($$var_name)) {
145                        foreach ($$var_name as $order => $data) {
146                                $data=stripslashes_array($data);
147                                if ($data["value"]) {
148                                        $data_properties = array();
149                                        if ($data["lang"]) {
150                                                $data_properties["lang"] = $data["lang"];
151                                        }
152                                        if ($data["type"] == "http://www.w3.org/2000/01/rdf-schema#Literal") {
153                                                $data_properties["type"] = "literal";
154                                        } else {
155                                                $data_properties["type"] = "uri";
156                                        }
157                                        if ($data["display_label"]) {
158                                                $data_properties["display_label"] = $data["display_label"];
159                                        }
160                                        $class_name = get_called_class();
161                                        $datatypes[$property->uri][] = new $class_name($data["value"], $data["type"], $data_properties);
162                                }
163                        }
164                }
165                return $datatypes;
166        }
167} // end of onto_common_datatype
Note: See TracBrowser for help on using the repository browser.