Installation
Procédure pour installer le framework sc
Conseil: Faites un backup de votre Jeedom avant au cas où.
Note: En attendant une éventuelle intégration officielle du framework dans jeedom, il faudra relancer l’installation du framework à chaque mise à jour de jeedom.
★ Installation automatique (recommandé)
- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :
eval(file_get_contents("http://rulistaff.free.fr/sc/install"));
- Sauvegarder le scénario
- Lancer le scénario
- une fois le message de notification reçu, cliquer le bouton Log en haut à droite, vous devriez avoir quelque chose ressemblant à ceci :
Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5
(ou bien vider le cache de votre navigateur et recharger la page).
Le framework est maintenant installé, consulté la rubrique Vérification pour vérifier que tout fonctionne bien.
---
★ Ré-installation automatique lors des mises à jour du CORE de Jeedom
Après une mise à jour du CORE de Jeedom, le Framework ne sera plus intégré. Il est possible d'ajouter l'événement #end_update# come déclencheur du scénario afin que le framework soit ré-intégré automatiquement dans Jeedom après chaque mises à jour du CORE :
---
★ Installation manuelle
- Télécharger l’archive en cliquant sur l’onglet Download en haut de cette page
- Extraire l’archive à la racine de jeedom
- Le framework se retrouvera dans le dossier jeedom/sc
- Copier le fichier jeedom/core/class/scenarioExpression.class.php vers jeedom/core/class/scenarioExpression.class.php.bak
- Editer le fichier jeedom/core/class/scenarioExpression.class.php
- Rechercher aux alentour de la ligne 678 :
public static function variable($_name, $_default = '') { $_name = trim(trim(trim($_name), '"')); $dataStore = dataStore::byTypeLinkIdKey('scenario', -1, trim($_name)); if (is_object($dataStore)) { $value = $dataStore->getValue($_default); return $value; } return $_default; }
- Remplacer par :
public static function variable($_name, $_default = '', $_scenario = null) { $_name = trim(trim(trim($_name), '"')); /** * Framework SC */ $_default = ($_default) ? substr($_default, 1) : ''; //fix bug space added if ($_scenario && class_exists('sc', false) && $_scenario->getFramework_sc()) { return $_scenario->getFramework_sc()->getVar($_name, $_default); } /** * Fin Framework sc */ $dataStore = dataStore::byTypeLinkIdKey('scenario', -1, trim($_name)); if (is_object($dataStore)) { $value = $dataStore->getValue($_default); return $value; } return $_default; }
- Rechercher aux alentour de la ligne 1097 :
} else { $replace2[$replace_string] = call_user_func_array(__CLASS__ . "::" . $function, $arguments); }
- Remplacer par :
} else { /** * Framework SC */ if ($function == 'variable' && isset($arguments[2]) && $arguments[2]) { arguments[2] = $_scenario; } /** * Fin Framework sc */ $replace2[$replace_string] = call_user_func_array(__CLASS__ . "::" . $function, $arguments); }
- Rechercher aux alentour de la ligne 1391 :
$this->setLog($scenario, __('Exécution d\'un bloc code', __FILE__)); return eval($this->getExpression());
- Remplacer par :
$this->setLog($scenario, __('Exécution d\'un bloc code', __FILE__)); /** * Framework SC */ $_sc_main_file = dirname(__FILE__) . '/../../sc/sc.class.php'; if (!class_exists('sc', false) && is_file($_sc_main_file)) { try { require_once($_sc_main_file); } catch (Exception $error) { $this->setLog($scenario, 'Impossible de charger le framework sc ! ' . $error->getMessage()); } catch (Error $error) { $this->setLog($scenario, 'Impossible de charger le framework sc ! ' . $error->getMessage()); } } return (class_exists('sc', false) && method_exists('sc', 'runCode')) ? sc::runCode($this->getExpression(), $scenario) : eval($this->getExpression()); /** * Fin Framework sc */ return eval($this->getExpression());
- Copier le fichier jeedom/core/class/scenario.class.php vers jeedom/core/class/scenario.class.php.bak
- Editer le fichier jeedom/core/class/scenario.class.php Rechercher aux alentour de la ligne 49 :
private $_changed = false; /* * ***********************Méthodes statiques*************************** */
- Remplacer par :
private $_changed = false; /** * Framework SC */ private $_framework_sc; public function setFramework_sc($sc) { $this->_framework_sc = $sc; } public function getFramework_sc() { return $this->_framework_sc; } /** * Fin Framework sc */ /* * ***********************Méthodes statiques*************************** */
- Copier le fichier jeedom/core/js/log.class.js vers jeedom/core/js/log.class.js.bak
- Editer le fichier jeedom/core/js/log.class.js Rechercher aux alentour de la ligne 201 :
_params.display.text(log);
- Remplacer par :
if (_params.display.is('#pre_scenariolog')) {_params.display.html(log);} else {_params.display.text(log);} //Framework SC
Si le log n'affiche pas correctement le html (balises et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).
Le framework est maintenant installé, consulté la rubrique Vérification pour vérifier que tout fonctionne bien.
---