public function export() { $return = ''; if ($this->getType() == 'element') { $element = scenarioElement::byId($this->getExpression()); if (is_object($element)) { $exports = explode("\n", $element->export()); foreach ($exports as $export) { $return .= " " . $export . "\n"; } } return rtrim($return); } $options = $this->getOptions(); if ($this->getType() == 'action') { if ($this->getExpression() == 'icon') { return ''; } else { if ($this->getExpression() == 'sleep') { return '(sleep) Pause de : ' . $options['duration']; } else { if ($this->getExpression() == 'stop') { return '(stop) Arret du scenario'; } else { if ($this->getExpression() == 'scenario') { $actionScenario = scenario::byId($this->getOptions('scenario_id')); if (is_object($actionScenario)) { return '(scenario) ' . $this->getOptions('action') . ' de ' . $actionScenario->getHumanName(); } } else { if ($this->getExpression() == 'variable') { return '(variable) Affectation de la variable : ' . $this->getOptions('name') . ' à ' . $this->getOptions('value'); } else { $return = jeedom::toHumanReadable($this->getExpression()); if (is_array($options) && count($options) != 0) { $return .= ' - Options : ' . print_r(jeedom::toHumanReadable($options), true); } return $return; } } } } } } else { if ($this->getType() == 'condition') { return jeedom::toHumanReadable($this->getExpression()); } } if ($this->getType() == 'code') { } }
public function getElement() { if (count($this->_elements) > 0) { return $this->_elements; } $return = array(); $elements = $this->getScenarioElement(); if (is_array($elements)) { foreach ($this->getScenarioElement() as $element_id) { $element = scenarioElement::byId($element_id); if (is_object($element)) { $return[] = $element; } } $this->_elements = $return; return $return; } if ($elements != '') { $element = scenarioElement::byId($element_id); if (is_object($element)) { $return[] = $element; $this->_elements = $return; return $return; } } return array(); }
public static function saveAjaxElement($element_ajax) { if (isset($element_ajax['id']) && $element_ajax['id'] != '') { $element_db = scenarioElement::byId($element_ajax['id']); } else { $element_db = new scenarioElement(); } if (!isset($element_db) || !is_object($element_db)) { throw new Exception(__('Elément inconnu - Vérifiez l\'id : ', __FILE__) . $element_ajax['id']); } utils::a2o($element_db, $element_ajax); $element_db->save(); $subElement_order = 0; $subElement_list = $element_db->getSubElement(); $enable_subElement = array(); foreach ($element_ajax['subElements'] as $subElement_ajax) { if (isset($subElement_ajax['id']) && $subElement_ajax['id'] != '') { $subElement_db = scenarioSubElement::byId($subElement_ajax['id']); } else { $subElement_db = new scenarioSubElement(); } if (!isset($subElement_db) || !is_object($subElement_db)) { throw new Exception(__('Elément inconnu vérifier l\'id : ', __FILE__) . $subElement_ajax['id']); } utils::a2o($subElement_db, $subElement_ajax); $subElement_db->setScenarioElement_id($element_db->getId()); $subElement_db->setOrder($subElement_order); $subElement_db->save(); $subElement_order++; $enable_subElement[$subElement_db->getId()] = true; $expression_list = $subElement_db->getExpression(); $expression_order = 0; $enable_expression = array(); foreach ($subElement_ajax['expressions'] as &$expression_ajax) { if (isset($expression_ajax['scenarioSubElement_id']) && $expression_ajax['scenarioSubElement_id'] != $subElement_db->getId() && isset($expression_ajax['id']) && $expression_ajax['id'] != '') { $expression_ajax['id'] = ''; } if (isset($expression_ajax['id']) && $expression_ajax['id'] != '') { $expression_db = scenarioExpression::byId($expression_ajax['id']); } else { $expression_db = new scenarioExpression(); } if (!isset($expression_db) || !is_object($expression_db)) { throw new Exception(__('Expression inconnue vérifié l\'id : ', __FILE__) . $expression_ajax['id']); } $expression_db->emptyOptions(); utils::a2o($expression_db, $expression_ajax); $expression_db->setScenarioSubElement_id($subElement_db->getId()); if ($expression_db->getType() == 'element') { $expression_db->setExpression(self::saveAjaxElement($expression_ajax['element'])); } $expression_db->setOrder($expression_order); $expression_db->save(); $expression_order++; $enable_expression[$expression_db->getId()] = true; } foreach ($expression_list as $expresssion) { if (!isset($enable_expression[$expresssion->getId()])) { $expresssion->remove(); } } } foreach ($subElement_list as $subElement) { if (!isset($enable_subElement[$subElement->getId()])) { $subElement->remove(); } } return $element_db->getId(); }
public function getElement() { return scenarioElement::byId($this->getScenarioElement_id()); }