Cause.class.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?php
  2. /*
  3. @nom: Cause
  4. @auteur: Idleman (idleman@idleman.fr)
  5. @description: Représente une cause de scénario (combinées à d'autres causes ou seule, conduit à un ou plusieurs effets)
  6. */
  7. class Cause extends SQLiteEntity{
  8. public $id,$story,$sort,$type,$values,$operator,$union;
  9. protected $TABLE_NAME = 'plugin_story_cause';
  10. protected $CLASS_NAME = 'Cause';
  11. protected $object_fields =
  12. array(
  13. 'id'=>'key',
  14. 'story'=>'int',
  15. 'sort'=>'int',
  16. 'type'=>'string',
  17. 'values'=>'longstring',
  18. 'union'=>'string',
  19. 'operator'=>'string'
  20. );
  21. function __construct(){
  22. parent::__construct();
  23. }
  24. public static function types(){
  25. $types = array(
  26. 'time' => array(
  27. 'icon' => 'fa-clock-o',
  28. 'label' => 'Date / Heure',
  29. 'template' => '',
  30. 'description' => 'Déclenche le scénario en fonction du temps sélectionné'
  31. ),
  32. 'listen' => array(
  33. 'icon' => 'fa-microphone',
  34. 'label' => 'Phrase',
  35. 'template' => '<select data-field="operator" class="operator"><option>=</option><!--<option>!=</option>--></select> <input type="text" style="max-width:50%;width:50%;" data-field="value" placeholder="Ma phrase.." value="{value}">',
  36. 'description' => 'Déclenche le scénario en fonction de la phrase prononcée'
  37. ),
  38. 'pin' => array(
  39. 'icon' => 'fa-dot-circle-o',
  40. 'label' => 'GPIO',
  41. 'template' => 'numéro <select data-value="{pin}" data-field="pin"><option value="0">0</option><option value="1">1</option><option value="2">2</option><option value="3">3</option></select> en état <select data-value="{value}" data-field="value"><option value="1">Actif</option><option value="0">Inactif</option></select>',
  42. 'description' => 'Déclenche le scénario en fonction de l\'état du GPIO sélectionné en état actif (1) ou inactif(0)'
  43. ),
  44. 'readvar' => array(
  45. 'icon' => 'fa-dollar',
  46. 'label' => 'Variable',
  47. 'template' => '<input type="text" data-field="var" placeholder="Ma variable" value="{var}"> <select data-field="operator" class="operator"><option value="=">=</option></select> <input type="text" data-field="value" placeholder="Ma valeur" value="{value}">',
  48. 'description' => 'Déclenche le scénario si la variable déclarée existe et correpond à l\'égalité décrite, le test sur les variable est effectué toutes les minutes.'
  49. )/*,
  50. 'captor' => array(
  51. 'icon' => 'fa-tachometer',
  52. 'label' => 'Capteur',
  53. 'template' => ''
  54. ),*/
  55. );
  56. $types['listen']['template'] .= 'Confidence <input type="number" step="0.01" min="0.10" max="0.99" value="{confidence}" data-field="confidence"/>';
  57. $types['captor']['template'] .= 'Capteur <select data-field="captor" class="captor_selector" onchange="story_get_captor_action(this);">';
  58. $deviceManager = new Device();
  59. $roomManager = new Room();
  60. foreach($deviceManager->loadAll(array('type'=>Device::CAPTOR)) as $device){
  61. $room = $roomManager->getById($device->location);
  62. $types['captor']['template'] .= '<option value="'.$device->id.'"><i class="fa '.$device->icon.'"></i>'.$device->label.' ('.$room->name.')</option>';
  63. }
  64. $types['captor']['template'] .= '</select> Champ <select data-field="field" class="captor_field_selector"></select> <select data-field="operator" class="operator"><option>=</option><option>!=</option><option><</option><option>></option></select> <input data-field="value" type="text" placeholder="valeur" value="{value}">';
  65. $types['time']['template'] = '<select class="operator"><option>=</option><!--<option>!=</option>--></select>
  66. <select data-value="{minut}" data-field="minut">
  67. <option value="*">Toutes les minutes</option>';
  68. for($i=0;$i<60;$i++)
  69. $types['time']['template'] .= '<option value="'.$i.'">'.$i.'</option>';
  70. $types['time']['template'] .= '</select> <select data-value="{hour}" data-field="hour"><option value="*">Toutes les heures</option>';
  71. for($i=0;$i<24;$i++)
  72. $types['time']['template'] .= '<option value="'.$i.'">'.$i.'</option>';
  73. $types['time']['template'] .= '</select> <select data-value="{day}" data-field="day"><option value="*">Tous les jours</option>';
  74. for($i=1;$i<32;$i++)
  75. $types['time']['template'] .= '<option value="'.$i.'">'.$i.'</option>';
  76. $types['time']['template'] .= '</select> <select data-value="{month}" data-field="month"><option value="*">Toutes les mois</option>';
  77. for($i=1;$i<13;$i++)
  78. $types['time']['template'] .= '<option value="'.$i.'">'.$i.'</option>';
  79. $types['time']['template'] .= '</select> <select data-value="{year}" data-field="year">
  80. <option value="*">Tous les ans</option>';
  81. for($i=2000;$i<2200;$i++)
  82. $types['time']['template'] .= '<option value="'.$i.'">'.$i.'</option>';
  83. $types['time']['template'] .= '</select>';
  84. return $types;
  85. }
  86. function setValues($values){
  87. foreach($values as $key=>$value){
  88. $values[$key] = htmlspecialchars_decode(stripslashes($value));
  89. }
  90. $this->values = json_encode($values);
  91. }
  92. function getValues(){
  93. return json_decode($this->values);
  94. }
  95. }
  96. ?>