ContactExample.class.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <?php
  2. /**
  3. * Define a ContactExample
  4. * @author Valentin CARRUESCO
  5. * @category Plugin
  6. * @license MIT
  7. */
  8. class ContactExample extends Entity{
  9. public $id;
  10. public $label; //Libellé (Texte)
  11. public $phone; //Téléphone (Téléphone)
  12. public $birth; //Date de naissance (Date)
  13. public $hour; //Heure de naissance (Heure)
  14. public $firm; //Etablissement (Etablissement)
  15. public $manager; //Manager (Utilisateur)
  16. public $address; //Adresse (Adresse)
  17. public $properties; //Tags (Etiquettes)
  18. public $vehicle; //Véhicule (Liste configurable)
  19. public $storyshort; //Histoire résumée (Texte Long)
  20. public $story; //Histoire riche (Texte enrichi)
  21. public $password; //Mot de passe (Mot de passe)
  22. public $icon; //Icone préférée (Icône)
  23. public $available; //Disponible (Vrai ou Faux)
  24. public $cv; //CV (Fichier)
  25. public $avatar; //Avatar (Image)
  26. public $solvability; //Solvabilité (Liste classique)
  27. public $handicap; //Handicaps (Liste de cases à cocher)
  28. public $childs; //Nb. Enfants (Nombre Entier)
  29. public $size; //Taille (Décimal)
  30. public $color; //Couleur préférée (Couleur)
  31. public $salary; //Salaire brut (Prix)
  32. public $orientation; //Orientation (Choix)
  33. public $website; //Site perso (Adresse web)
  34. public $mail; //Email (E-mail)
  35. protected $TABLE_NAME = 'example_contact';
  36. public $entityLabel = 'Contact Example';
  37. public $fields = array(
  38. 'id' => array('type'=>'key', 'label' => 'Identifiant'),
  39. 'label' => array('type'=>'text', 'label' => 'Libellé'),
  40. 'phone' => array('type'=>'phone', 'label' => 'Téléphone'),
  41. 'birth' => array('type'=>'date', 'label' => 'Date de naissance'),
  42. 'hour' => array('type'=>'hour', 'label' => 'Heure de naissance'),
  43. 'firm' => array('type'=>'firm', 'label' => 'Etablissement','link'=>'class/Firm.class.php'),
  44. 'manager' => array('type'=>'user', 'label' => 'Manager'),
  45. 'address' => array('type'=>'address', 'label' => 'Adresse'),
  46. 'properties' => array('type'=>'tag', 'label' => 'Tags'),
  47. 'vehicle' => array('type'=>'dictionary', 'label' => 'Véhicule'),
  48. 'storyshort' => array('type'=>'textarea', 'label' => 'Histoire résumée'),
  49. 'story' => array('type'=>'wysiwyg', 'label' => 'Histoire riche'),
  50. 'password' => array('type'=>'password', 'label' => 'Mot de passe'),
  51. 'icon' => array('type'=>'icon', 'label' => 'Icone préférée'),
  52. 'available' => array('type'=>'boolean', 'label' => 'Disponible'),
  53. 'solvability' => array('type'=>'list', 'label' => 'Solvabilité'),
  54. 'handicap' => array('type'=>'checkbox-list', 'label' => 'Handicaps'),
  55. 'childs' => array('type'=>'integer', 'label' => 'Nb. Enfants'),
  56. 'size' => array('type'=>'decimal', 'label' => 'Taille'),
  57. 'color' => array('type'=>'color', 'label' => 'Couleur préférée'),
  58. 'salary' => array('type'=>'price', 'label' => 'Salaire brut'),
  59. 'orientation' => array('type'=>'choice', 'label' => 'Orientation'),
  60. 'website' => array('type'=>'url', 'label' => 'Site perso'),
  61. 'mail' => array('type'=>'mail', 'label' => 'Email')
  62. );
  63. //Colonnes indexées
  64. public $indexes = array();
  65. //liste des solvabilité possibles
  66. public static function solvabilities($key=null){
  67. $items = array(
  68. 'solvable' => array('label'=>'Solvable') ,
  69. 'unsolvable' => array('label'=>'Non solvable') ,
  70. 'tocheck' => array('label'=>'A verifier') ,
  71. );
  72. if(!isset($key)) return $items;
  73. return isset($items[$key]) ? $items[$key] : array('label'=>'Non défini');
  74. }
  75. //liste des orientations possibles
  76. public static function orientations($key=null){
  77. $items = array(
  78. 'machoman' => array('label'=>'macho convaincu'),
  79. 'almostgay' => array('label'=>'Metrosexuel'),
  80. 'binary' => array('label'=>'Ethero sexuel'),
  81. 'villagepeople' => array('label'=>'100% Gay'),
  82. 'chucknorris' => array('label'=>'Un peu de tout ça')
  83. );
  84. if(!isset($key)) return $items;
  85. return isset($items[$key]) ? $items[$key] : array('label'=>'Non défini');
  86. }
  87. public function dir(){
  88. return File::dir().'contact'.SLASH.$this->id.SLASH;
  89. }
  90. public function picture($returnPath = false){
  91. return 'action.php?action=example_contact_avatar&type=download&path='.base64_encode('example/contact/'.$this->id.'/avatar.*');
  92. }
  93. function documents(){
  94. $documents = array();
  95. foreach(glob(__ROOT__.FILE_PATH.'contact'.SLASH.'documents'.SLASH.$this->id.SLASH.'*.*') as $file){
  96. if(get_OS() === 'WIN') $file = utf8_encode($file);
  97. $documents[] = array(
  98. 'path' => 'contact'.SLASH.'documents'.SLASH.$this->id.SLASH.basename($file),
  99. 'url' => 'action.php?action=contact_download_document&path='.$this->id.SLASH.rawurlencode(basename($file)),
  100. 'name' => basename($file),
  101. 'icon' => getExtIcon(getExt($file))
  102. );
  103. }
  104. return $documents;
  105. }
  106. }
  107. ?>