source: pmb4.2/trunk/fuentes/pmb/classes/nomenclature/nomenclature_family.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: 4.5 KB
Line 
1<?php
2// +-------------------------------------------------+
3// © 2002-2014 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: nomenclature_family.class.php,v 1.7 2015-04-03 11:16:23 jpermanne Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");
8
9/**
10 * class nomenclature_family
11 * Représente une famille dans une nomenclature
12 */
13class nomenclature_family{
14
15        /** Aggregations: */
16
17        /** Compositions: */
18
19         /*** Attributes: ***/
20
21        /**
22         * Nom de la famille
23         * @access protected
24         */
25        protected $name;
26
27        /**
28         *
29         * @access protected
30         */
31        protected $musicstands;
32
33        /**
34         * Booléen qui indique si la famille est valide
35         * @access protected
36         */
37        protected $valid = false;
38
39        /**
40         * Nomenclature de la famille abrégée
41         * @access protected
42         */
43        protected $abbreviation;
44
45        /**
46         * Constructeur
47         *
48         * @param string name Nom de la famille
49         
50         * @return void
51         * @access public
52         */
53        public function __construct($id=0) {
54                if($id){
55                        $this->id = $id*1;
56                       
57                }
58                $this->fetch_datas();
59        } // end of member function __construct
60
61        public function fetch_datas(){
62                global $dbh;
63                if($this->id){
64                        //le nom de la famille
65                        $query = "select family_name from nomenclature_families where id_family = ".$this->id;
66                        $result = pmb_mysql_query($query,$dbh);
67                        if(pmb_mysql_num_rows($result)){
68                                while($row = pmb_mysql_fetch_object($result)){
69                                        $this->set_name($row->family_name);
70                                }
71                                //récupération des pupitres
72                                $query = "select id_musicstand from nomenclature_musicstands where musicstand_famille_num = ".$this->id." order by musicstand_order asc";
73                                $result = pmb_mysql_query($query,$dbh);
74                                if(pmb_mysql_num_rows($result)){
75                                        while($row = pmb_mysql_fetch_object($result)){
76                                                $this->add_musicstand(new nomenclature_musicstand($row->id_musicstand));
77                                        }
78                                }
79                        }
80                }else{
81                        $this->musicstands =array();
82                        $this->name = "";
83                }
84        }
85       
86        /**
87         * Méthode d'ajout d'un pupitre de la liste
88         *
89         * @param nomenclature_musicstand musicstand Pupitre à  ajouter à  la liste des pupitres
90       
91         * @return void
92         * @access public
93         */
94        public function add_musicstand( $musicstand ) {
95                $musicstand->set_family($this);
96                $this->musicstands[] = $musicstand;
97               
98        } // end of member function add_musicstand
99       
100        /**
101         * Méthode qui indique si la famille est complète et cohérente
102         *
103         * @return bool
104         * @access public
105         */
106        public function check( ) {
107                return $this->valid;
108        } // end of member function check
109       
110        /**
111         * Getter
112         *
113         * @return string
114         * @access public
115         */
116        public function get_name( ) {
117                return $this->name;
118        } // end of member function get_name
119
120        /**
121         * Setter
122         *
123         * @param string name Nom de la famille
124
125         * @return void
126         * @access public
127         */
128        public function set_name( $name ) {
129                $this->name = $name;
130        } // end of member function set_name
131
132        /**
133         * Getter
134         *
135         * @return nomenclature_musicstand
136         * @access public
137         */
138        public function get_musicstands( ) {
139                return $this->musicstands;
140        } // end of member function get_musicstands
141
142        /**
143         * Setter
144         *
145         * @param nomenclature_musicstand musicstands Tableau des pupitre
146
147         * @return void
148         * @access public
149         */
150        public function set_musicstands( $musicstands ) {
151                $this->musicstands = $musicstands;
152        } // end of member function set_musicstands
153       
154        public function get_musicstand($indice){
155                return $this->musicstands[$indice];
156        }
157       
158        public function get_id(){
159                return $this->id;
160        }
161
162        /**
163         * Setter
164         *
165         * @param string abbreviation Nomenclature abrégée
166       
167         * @return void
168         * @access public
169         */
170        public function set_abbreviation( $abbreviation ) {
171                $this->abbreviation = pmb_preg_replace('/\s+/', '', $abbreviation);
172        } // end of member function set_abbreviation
173       
174        /**
175         * Getter
176         *
177         * @return string
178         * @access public
179         */
180        public function get_abbreviation( ) {
181                return  pmb_preg_replace('/\s+/', '', $this->abbreviation);
182        } // end of member function get_abbreviation
183       
184        /**
185         * Calcule et affecte la nomenclature abrégée à  partir de l'arbre
186         *
187         * @return void
188         * @access public
189         */
190        public function calc_abbreviation( ) {
191                $tmusicstands = array();
192                if(is_array($this->musicstands)) {
193                        foreach ($this->musicstands as $musicstand) {
194                                $nomenclature_musicstand = new nomenclature_musicstand($musicstand->get_id());
195                                $nomenclature_musicstand->calc_abbreviation();
196                                $tmusicstands[] = $nomenclature_musicstand->get_abbreviation();
197                        }
198                }
199                $this->set_abbreviation(implode(".", $tmusicstands));
200        } // end of member function calc_abbreviation
201       
202} // end of nomenclature_family
Note: See TracBrowser for help on using the repository browser.