Comment exporter tous mes scenarios bloc code?

Bonjour,
J’ai une cinquantaine de scenarios (écrits en bloc code PHP) et j’aimerai les sauvegarder ailleurs que dans une sauvegarde Jeedom, c’est beaucoup de temps et d’énergies pour développer ces codes ! :smile: :smile:
Pour ne pas exporter les scenarios manuellement un par un, il existe une fonction export (merci Export Scénario) mais:

  • le log est trop petit pour recueillir tous les scenarios (en mode texte)
  • les indentations (tabulations) ne sont pas respectées dans le log :frowning:
    Une idée peut-être ?
    cdt

Bonjour,

Pourquoi? de toute façon ils sont inutilisable en dehors de votre sauvegarde.

Posséder une version texte bien formatée est un gage de sécurité et puis c’est bien d’avoir les différentes versions d’un scenario. Le copier/coller fonctionne dans l’éditeur de texte en mode bloc code.
Je cherche une fonction/méthode dans la classe scenario qui pourrait écrire dans un fichier par exemple.

cdt

OK j’ai trouvé une solution: utiliser l’argument ‹ text › dans la fonction export () et stocker les différents exports dans un seul fichier (mode append). La place du fichier choisie ici est le répertoire data. Ce qui donne ce petit code:

// Exporter tous les scenarios dans un fichier /var/www/html/data/TousLesScenarios.txt
file_put_contents ("/var/www/html/data/TousLesScenarios.txt","EXPORT DE TOUS LES SCENARIOS " . date("j-M-Y H:i") . "\n\n");
$scenars = scenario::all();
foreach ($scenars as $scenar) {
  $export = $scenar->export('text');
  file_put_contents ("/var/www/html/data/TousLesScenarios.txt",$export,FILE_APPEND);
}

Il ne reste plus qu’à faire un download du fichier TousLesScenarios.txt vers un autre emplacement.
Encore merci :slight_smile:
cdt

1 « J'aime »

Bonjour,
Il y a ça aussi sur le forum pour les exporter en json dans le répertoire html/exportSenario
et les importer avec la fonction template. :grinning:

`foreach(scenario::all() as $sc) {
  	exportScenario($sc->getHumanName(),'/var/www/html/exportScenario/'.$sc->getName());
}

function exportScenario($scName,$exportPath) {
  	$sc=scenario::byString('#' . $scName . '#');
	$jsonScenario=json_encode($sc->export('array'));	
	file_put_contents($exportPath.'.json',$jsonScenario);
}`
1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.