source: cpc/trunk/project/lib/model/doctrine/Parlementaire.class.php @ 1317

Last change on this file since 1317 was 1317, checked in by teymour, 10 years ago

Presentation des résultats de recherche solr

File size: 16.4 KB
Line 
1<?php
2
3/**
4 * This class has been auto-generated by the Doctrine ORM Framework
5 */
6class Parlementaire extends BaseParlementaire
7{
8
9  public function getTitre() {
10    return $this->getNom();
11  }
12
13  public function __tostring() {
14    return $this->getNom();
15  }
16
17  /*  public function save() {
18    Doctrine::getTable('Personnalite')->hasChanged();
19    return parent::save($conn);
20    }*/
21
22  public function setCirconscription($str) {
23    if (preg_match('/(.*)\((\d+)/', $str, $match)) {
24      $this->nom_circo = trim($match[1]);
25      $this->num_circo = $match[2];
26    }
27  }
28
29  public function getNumCircoString($list = 0) {
30    if ($this->num_circo == 1) $string = $this->num_circo.'ère circonscription';
31    else $string = $this->num_circo.'ème circonscription';
32    if ($list == 1 && $this->num_circo < 10) {
33      $string = "&nbsp;".$string."&nbsp;";
34      if ($this->num_circo == 1) $string .= "&nbsp;";
35    }
36    return $string;
37  }
38
39  public function getNomPrenom() {
40    $weird = array('é' => 'e', 'è' => 'e', 'ë' => 'e', 'Le ' => 'Le', 'La ' => 'La', '\'' => '^ ');
41    $beg_name = " ".substr($this->nom_de_famille, 0, 3);
42    $ct = strpos($this->nom, $beg_name);
43    if (!$ct) foreach ($weird as $good => $bad)
44        if ($ct = strpos($this->nom, preg_replace("/".$bad."/", $good, $beg_name)))
45           break;
46    $nom = substr($this->nom, $ct+1);
47    $prenom = substr($this->nom, 0, strpos($this->nom, $nom));
48    return $nom.", ".preg_replace('/\s$/', '', $prenom);
49  }
50
51  public function getStatut($link = 0) {
52    if ($this->type == 'depute') {
53        if ($this->sexe == 'F') $type = 'députée';
54        else $type = 'député';
55    } else {
56        if ($this->sexe == 'F') $type = 'sénatrice';
57        else $type = 'sénateur';
58    }
59    $statut = "";
60    if ($this->fin_mandat != null) {
61      if ($this->sexe == 'F') $statut = 'ancienne ';
62      else $statut = 'ancien ';
63    }
64    $groupe = "";
65    if ($this->groupe_acronyme != "") {
66      if ($link == 1)
67        $groupe = " ".link_to($this->groupe_acronyme, '@list_parlementaires_groupe?acro='.$this->groupe_acronyme);
68      else $groupe = " ".$this->groupe_acronyme;
69    }
70    return $statut.$type.$groupe;
71  }
72 
73  public function getLongStatut($link = 0) {
74    $circo = $this->nom_circo;
75    if ($link == 1) {
76      $circo = link_to($this->nom_circo, '@list_parlementaires_departement?departement='.$circo);
77    }
78    return $this->getStatut($link).' de la '.$this->getNumCircoString().' '.$this->getPrefixeCirconscription().$circo;
79  }
80
81  public function setDebutMandat($str) {
82    if (preg_match('/(\d{2})\/(\d{2})\/(\d{4})/', $str, $m)) {
83      $this->_set('debut_mandat', $m[3].'-'.$m[2].'-'.$m[1]);
84    }
85  }
86  public function setFinMandat($str) {
87    if (preg_match('/(\d{2})\/(\d{2})\/(\d{4})/', $str, $m)) {
88      $this->_set('fin_mandat', $m[3].'-'.$m[2].'-'.$m[1]);
89    }
90    if (!$str) {
91      $this->_set('fin_mandat', NULL);
92    }
93  }
94  public function setFonctions($array) {
95    return $this->setPOrganisme('parlementaire', $array);
96  }
97  public function setExtras($array) {
98    return $this->setPOrganisme('extra', $array);
99  }
100  public function setGroupe($array) {
101    return $this->setPOrganisme('groupe', $array);
102  }
103
104  public function setPOrganisme($type, $array) {
105    if (!$array)
106      return;
107    $orgas = $this->getParlementaireOrganismes();
108    foreach($orgas->getKeys() as $key) {
109      $o = $orgas->get($key);
110      if ($o->type == $type)
111        $orgas->remove($key);
112    }
113    foreach ($array as $args) {
114      $orga = Doctrine::getTable('Organisme')->findOneByNomOrCreateIt($args[0], $type);
115      if ($type == 'groupe')
116        $this->groupe_acronyme = $orga->getSmallNomGroupe();
117      $po = new ParlementaireOrganisme();
118      $po->setParlementaire($this);
119      $po->setOrganisme($orga);
120      $fonction = preg_replace("/\(/","",$args[1]);
121      $po->setFonction($fonction);
122      $importance = ParlementaireOrganisme::defImportance($fonction);
123      $po->setImportance($importance);
124  /*      if (isset($args[2])) {
125        $po->setDebutFonction($args[2]);
126        }*/
127      $orgas->add($po);
128    }
129    $this->_set('ParlementaireOrganismes', $orgas);
130  }
131
132  private function getPOFromJoinIf($field, $value) {
133    $p = $this->toArray();
134    if (isset($p['ParlementaireOrganisme'])) {
135      $i = 0;
136      while (isset($p['ParlementaireOrganisme'][$i])) {
137        if ($p['ParlementaireOrganisme'][$i]['Organisme'][$field] == $value) {
138          $po = new ParlementaireOrganisme();
139          $o = new Organisme();
140          $o->fromArray($p['ParlementaireOrganisme'][$i]['Organisme']);
141          $po->setFonction($p['ParlementaireOrganisme'][$i]['fonction']);
142          $po->setParlementaire($this);
143          $po->setOrganisme($o);
144          return $po;
145        }
146        $i++;
147      }
148      return NULL;
149    }
150  }
151
152  public function getPOrganisme($str) {
153    if($po = $this->getPOFromJoinIf('nom', $str))
154      return $po;
155    foreach($this->getParlementaireOrganismes() as $po) {
156      if ($po['Organisme']->nom == $str)
157        return $po;
158    }
159  }
160  public function setAutresMandats($array) {
161    $this->_set('autres_mandats', serialize($array));
162  }
163  public function setMails($array) {
164    $this->_set('mails', serialize($array));
165  }
166  public function setAdresses($array) {
167    $this->_set('adresses', serialize($array));
168  }
169  public function getGroupe() {
170    if($po = $this->getPOFromJoinIf('type', 'groupe'))
171      return $po;
172    foreach($this->getParlementaireOrganismes() as $po) {
173      if ($po->type === 'groupe') 
174        return $po;
175    }
176  }
177  public function getExtras() {
178    $res = array();
179    foreach($this->getParlementaireOrganismes() as $po) {
180      if ($po->type == 'extra') 
181        array_push($res, $po);
182    }
183    return $res;
184  }
185  public function getResponsabilites() {
186    $res = array();
187    foreach($this->getParlementaireOrganismes() as $po) {
188      if ($po->type == 'parlementaire') 
189        $res[sprintf('%04d',abs(100-$po->importance)).$po->nom]=$po;
190    }
191    ksort($res);
192    return array_values($res);
193  }
194
195  public function hasPhoto() 
196  {
197    $photo = $this->_get('photo');
198    return (strlen($photo) > 0) ;
199  }
200  public function setPhoto($s) {
201    if (preg_match('/http/', $s)) {
202      $len = strlen($this->_get('photo'));
203      if ($len < 5200) {
204        $s = file_get_contents($s);
205      }else
206        return true;
207      if (!$s)
208        return false;
209    }
210    $this->_set('photo', $s);
211  }
212  public function getPageLink() {
213    return '@parlementaire?slug='.$this->slug;
214  }
215
216  public function getNomNumCirco() {
217    $shortcirco = trim(strtolower($this->_get('nom_circo')));
218    $shortcirco = preg_replace('/\s+/','-', $shortcirco);
219    return $this->_get('nom_circo')." (".$this->getNumeroDepartement($shortcirco).")";
220  }
221
222  public function getNumDepartement() {
223    $shortcirco = trim(strtolower($this->_get('nom_circo')));
224    $shortcirco = preg_replace('/\s+/','-', $shortcirco);
225    return $this->getNumeroDepartement($shortcirco);
226  }
227
228   static $dptmt_pref = array(
229     "Ain" => "de l'",
230     "Aisne" => "de l'",
231     "Allier" => "de l'",
232     "Alpes-de-Haute-Provence" => "des",
233     "Alpes-Maritimes" => "des",
234     "Ardèche" => "de l'",
235     "Ardennes" => "des",
236     "Ariège" => "d'",
237     "Aube" => "de l'",
238     "Aude" => "de l'",
239     "Aveyron" => "de l'",
240     "Bas-Rhin" => "du",
241     "Bouches-du-Rhône" => "des",
242     "Calvados" => "du",
243     "Cantal" => "du",
244     "Charente" => "de",
245     "Charente-Maritime" => "de",
246     "Cher" => "du",
247     "Corrèze" => "de",
248     "Corse-du-Sud" => "de",
249     "Côte-d'Or" => "de",
250     "Côtes-d'Armor" => "des",
251     "Creuse" => "de la",
252     "Deux-Sèvres" => "des",
253     "Dordogne" => "de la",
254     "Doubs" => "du",
255     "Drôme" => "de la",
256     "Essonne" => "de l'",
257     "Eure" => "de l'",
258     "Eure-et-Loir" => "d'",
259     "Finistère" => "du",
260     "Gard" => "du",
261     "Gers" => "du",
262     "Gironde" => "de la",
263     "Guadeloupe" => "de",
264     "Guyane" => "de",
265     "Haut-Rhin" => "du",
266     "Haute-Corse" => "de",
267     "Haute-Garonne" => "de la",
268     "Haute-Loire" => "de la",
269     "Haute-Marne" => "de la",
270     "Haute-Saône" => "de la",
271     "Haute-Savoie" => "de",
272     "Haute-Vienne" => "de la",
273     "Hautes-Alpes" => "des",
274     "Hautes-Pyrénées" => "des",
275     "Hauts-de-Seine" => "des",
276     "Hérault" => "de l'",
277     "Ille-et-Vilaine" => "d'",
278     "Indre" => "de l'",
279     "Indre-et-Loire" => "de l'",
280     "Isère" => "de l'",
281     "Jura" => "du",
282     "Landes" => "des",
283     "Loir-et-Cher" => "du",
284     "Loire" => "de la",
285     "Loire-Atlantique" => "de",
286     "Loiret" => "du",
287     "Lot" => "du",
288     "Lot-et-Garonne" => "du",
289     "Lozère" => "de la",
290     "Maine-et-Loire" => "du",
291     "Manche" => "de la",
292     "Marne" => "de la",
293     "Martinique" => "de",
294     "Mayenne" => "de la",
295     "Mayotte" => "de",
296     "Meurthe-et-Moselle" => "de",
297     "Meuse" => "de la",
298     "Morbihan" => "du",
299     "Moselle" => "de la",
300     "Nièvre" => "de la",
301     "Nord" => "du",
302     "Nouvelle-Calédonie" => "de la",
303     "Oise" => "de l'",
304     "Orne" => "de l'",
305     "Paris" => "de",
306     "Pas-de-Calais" => "du",
307     "Polynésie Française" => "de la",
308     "Puy-de-Dôme" => "du",
309     "Pyrénées-Atlantiques" => "des",
310     "Pyrénées-Orientales" => "des",
311     "Réunion" => "de la",
312     "Rhône" => "du",
313     "Saint-Pierre-et-Miquelon" => "de",
314     "Saône-et-Loire" => "de",
315     "Sarthe" => "de la",
316     "Savoie" => "de",
317     "Seine-et-Marne" => "de",
318     "Seine-Maritime" => "de",
319     "Seine-Saint-Denis" => "de",
320     "Somme" => "de la",
321     "Tarn" => "du",
322     "Tarn-et-Garonne" => "du",
323     "Territoire-de-Belfort" => "du",
324     "Val-d'Oise" => "du",
325     "Val-de-Marne" => "du",
326     "Var" => "du",
327     "Vaucluse" => "du",
328     "Vendée" => "de",
329     "Vienne" => "de la",
330     "Vosges" => "des",
331     "Wallis-et-Futuna" => "de",
332     "Yonne" => "de l'",
333     "Yvelines" => "des"
334    );
335 public function getPrefixeCirconscription() {
336     $prefixe = self::$dptmt_pref[trim($this->nom_circo)];
337    if (! preg_match("/'/", $prefixe)) $prefixe = $prefixe.' ';
338    return $prefixe;
339  }
340
341 public static $dptmt_nom = array(
342      "1" => "Ain",
343      "2" => "Aisne",
344      "3" => "Allier",
345      "4" => "Alpes-de-Haute-Provence",
346      "5" => "Hautes-Alpes",
347      "6" => "Alpes-Maritimes",
348      "7" => "Ardèche",
349      "8" => "Ardennes",
350      "9" => "Ariège",
351      "10" => "Aube",
352      "11" => "Aude",
353      "12" => "Aveyron",
354      "13" => "Bouches-du-Rhône",
355      "14" => "Calvados",
356      "15" => "Cantal",
357      "16" => "Charente",
358      "17" => "Charente-Maritime",
359      "18" => "Cher",
360      "19" => "Corrèze",
361      "2a" => "Corse-du-Sud",
362      "2b" => "Haute-Corse",
363      "21" => "Côte-d'Or",
364      "22" => "Côtes-d'Armor",
365      "23" => "Creuse",
366      "24" => "Dordogne",
367      "25" => "Doubs",
368      "26" => "Drôme",
369      "27" => "Eure",
370      "28" => "Eure-et-Loir",
371      "29" => "Finistère",
372      "30" => "Gard",
373      "31" => "Haute-Garonne",
374      "32" => "Gers",
375      "33" => "Gironde",
376      "34" => "Hérault",
377      "35" => "Ille-et-Vilaine",
378      "36" => "Indre",
379      "37" => "Indre-et-Loire",
380      "38" => "Isère",
381      "39" => "Jura",
382      "40" => "Landes",
383      "41" => "Loir-et-Cher",
384      "42" => "Loire",
385      "43" => "Haute-Loire",
386      "44" => "Loire-Atlantique",
387      "45" => "Loiret",
388      "46" => "Lot",
389      "47" => "Lot-et-Garonne",
390      "48" => "Lozère",
391      "49" => "Maine-et-Loire",
392      "50" => "Manche",
393      "51" => "Marne",
394      "52" => "Haute-Marne",
395      "53" => "Mayenne",
396      "54" => "Meurthe-et-Moselle",
397      "55" => "Meuse",
398      "56" => "Morbihan",
399      "57" => "Moselle",
400      "58" => "Nièvre",
401      "59" => "Nord",
402      "60" => "Oise",
403      "61" => "Orne",
404      "62" => "Pas-de-Calais",
405      "63" => "Puy-de-Dôme",
406      "64" => "Pyrénées-Atlantiques",
407      "65" => "Hautes-Pyrénées",
408      "66" => "Pyrénées-Orientales",
409      "67" => "Bas-Rhin",
410      "68" => "Haut-Rhin",
411      "69" => "Rhône",
412      "70" => "Haute-Saône",
413      "71" => "Saône-et-Loire",
414      "72" => "Sarthe",
415      "73" => "Savoie",
416      "74" => "Haute-Savoie",
417      "75" => "Paris",
418      "76" => "Seine-Maritime",
419      "77" => "Seine-et-Marne",
420      "78" => "Yvelines",
421      "79" => "Deux-Sèvres",
422      "80" => "Somme",
423      "81" => "Tarn",
424      "82" => "Tarn-et-Garonne",
425      "83" => "Var",
426      "84" => "Vaucluse",
427      "85" => "Vendée",
428      "86" => "Vienne",
429      "87" => "Haute-Vienne",
430      "88" => "Vosges",
431      "89" => "Yonne",
432      "90" => "Territoire-de-Belfort",
433      "91" => "Essonne",
434      "92" => "Hauts-de-Seine",
435      "93" => "Seine-Saint-Denis",
436      "94" => "Val-de-Marne",
437      "95" => "Val-d'Oise",
438      "971" => "Guadeloupe",
439      "972" => "Martinique",
440      "973" => "Guyane",
441      "974" => "Réunion",
442      "975" => "Saint-Pierre-et-Miquelon",
443      "976" => "Mayotte",
444    //  "977" => "Saint-Barthélémy",
445    //  "978" => "Saint-Martin",
446      "986" => "Wallis-et-Futuna",
447      "987" => "Polynésie Française",
448      "988" => "Nouvelle-Calédonie");
449  public static function getNomDepartement($numero) {
450    $numero = strtolower($numero);
451    if ( isset(self::$dptmt_nom["$numero"]) ) return $nom = self::$dptmt_nom["$numero"];
452    else return false;
453  }
454
455    static $nom_dptmt = array(
456      "ain" => "01",
457      "aisne" => "02",
458      "allier" => "03",
459      "alpes-de-haute-provence" => "04",
460      "hautes-alpes" => "05",
461      "alpes-maritimes" => "06",
462      "ardèche" => "07",
463      "ardennes" => "08",
464      "ariège" => "09",
465      "aube" => "10",
466      "aude" => "11",
467      "aveyron" => "12",
468      "bouches-du-rhône" => "13",
469      "calvados" => "14",
470      "cantal" => "15",
471      "charente" => "16",
472      "charente-maritime" => "17",
473      "cher" => "18",
474      "corrèze" => "19",
475      "corse-du-sud" => "2A",
476      "haute-corse" => "2B",
477      "côte-d'or" => "21",
478      "côtes-d'armor" => "22",
479      "creuse" => "23",
480      "dordogne" => "24",
481      "doubs" => "25",
482      "drôme" => "26",
483      "eure" => "27",
484      "eure-et-loir" => "28",
485      "finistère" => "29",
486      "gard" => "30",
487      "haute-garonne" => "31",
488      "gers" => "32",
489      "gironde" => "33",
490      "hérault" => "34",
491      "ille-et-vilaine" => "35",
492      "indre" => "36",
493      "indre-et-loire" => "37",
494      "isère" => "38",
495      "jura" => "39",
496      "landes" => "40",
497      "loir-et-cher" => "41",
498      "loire" => "42",
499      "haute-loire" => "43",
500      "loire-atlantique" => "44",
501      "loiret" => "45",
502      "lot" => "46",
503      "lot-et-garonne" => "47",
504      "lozère" => "48",
505      "maine-et-loire" => "49",
506      "manche" => "50",
507      "marne" => "51",
508      "haute-marne" => "52",
509      "mayenne" => "53",
510      "meurthe-et-moselle" => "54",
511      "meuse" => "55",
512      "morbihan" => "56",
513      "moselle" => "57",
514      "nièvre" => "58",
515      "nord" => "59",
516      "oise" => "60",
517      "orne" => "61",
518      "pas-de-calais" => "62",
519      "puy-de-dôme" => "63",
520      "pyrénées-atlantiques" => "64",
521      "hautes-pyrénées" => "65",
522      "pyrénées-orientales" => "66",
523      "bas-rhin" => "67",
524      "haut-rhin" => "68",
525      "rhône" => "69",
526      "haute-saône" => "70",
527      "saône-et-loire" => "71",
528      "sarthe" => "72",
529      "savoie" => "73",
530      "haute-savoie" => "74",
531      "paris" => "75",
532      "seine-maritime" => "76",
533      "seine-et-marne" => "77",
534      "yvelines" => "78",
535      "deux-sèvres" => "79",
536      "somme" => "80",
537      "tarn" => "81",
538      "tarn-et-garonne" => "82",
539      "var" => "83",
540      "vaucluse" => "84",
541      "vendée" => "85",
542      "vienne" => "86",
543      "haute-vienne" => "87",
544      "vosges" => "88",
545      "yonne" => "89",
546      "territoire-de-belfort" => "90",
547      "essonne" => "91",
548      "hauts-de-seine" => "92",
549      "seine-saint-denis" => "93",
550      "val-de-marne" => "94",
551      "val-d'oise" => "95",
552      "guadeloupe" => "971",
553      "martinique" => "972",
554      "guyane" => "973",
555      "réunion" => "974",
556      "saint-pierre-et-miquelon" => "975",
557      "mayotte" => "976",
558      "saint-barthélémy" => "977",
559      "saint-martin" => "978",
560      "wallis-et-futuna" => "986",
561      "polynésie française" => "987",
562      "nouvelle-calédonie" => "988");
563  public static function getNumeroDepartement($nom) {
564    $nom = strtolower($nom);
565    if (isset(self::$nom_dptmt[$nom])) return $numero = self::$nom_dptmt[$nom];
566    else return 0;
567  }
568
569  public function getTop() {
570    //A supprimer lorsque les top seront unifiés (cf. parlementaire action)
571    $s = preg_replace('/s:20:"hemicycle_invectives/', 's:31:"hemicycle_interventions_courtes', $this->_get('top'));
572    return unserialize($s);
573  }
574
575}
Note: See TracBrowser for help on using the repository browser.