Framework sc
  • Accueil
  • Démarrage
  • Todo
  • Download
v0.993e

Accueil

  • Démarrage
  • Documentation

Rubriques

  • Présentation
  • Jeedom
  • Installation
  • Vérification
  • Utilisation
  • Fonctions
  • Astuces
  • Exemples
  • MAJ
  • Désinstallation

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 :
CODE::SELECT ALL
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 :

Image du log du scénario

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 :

Image dé l'événement #end_update#

---

★ 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 :
CODE::SELECT ALL
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 :
CODE::SELECT ALL
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 :
CODE::SELECT ALL
} else {
  $replace2[$replace_string] = call_user_func_array(__CLASS__ . "::" . $function, $arguments);
}
  • Remplacer par :
CODE::SELECT ALL
} 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 :
CODE::SELECT ALL
$this->setLog($scenario, __('Exécution d\'un bloc code', __FILE__));
return eval($this->getExpression());
  • Remplacer par :
CODE::SELECT ALL
$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 :
CODE::SELECT ALL
private $_changed = false;

/*     * ***********************Méthodes statiques*************************** */
  • Remplacer par :
CODE::SELECT ALL
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 :
CODE::SELECT ALL
_params.display.text(log);
  • Remplacer par :
CODE::SELECT ALL
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.

---

Package: Démarrage
Author: dJuL
Located at doc.php
Framework sc API documentation generated by ApiGen - dJuL