Je démarre en php et j’essaye d’adapter un scénario pour ajouter une date dans un agenda avec du code php dans un scénario
Si j’écris dans le code:
$cmd=cmd::byString(’#[xxxxxx][Agenda][Ajouter une date]#’);
$cmd->execCmd($options=array(‹ title ›=>‹ xxxxxxxxx Vacances ›, ‹ message ›=> ‹ 2020-02-26:2020-03-04 ›), $cache=0);
l’agenda est mis à jour
Si j’écris dans le code:
$cmd=cmd::byString(’#[xxxxxx][Agenda][Ajouter une date]#’);
$CommandeArray="‹ title ›=>‹ xxxxxxxxx Vacances ›, ‹ message ›=> ‹ 2020-02-26:2020-03-04 ›";
$cmd->execCmd($options=array($CommandeArray), $cache=0);
L’agenda n’est pas mis à jour
Quelqu’un peut-il me corriger ou me dire où trouvez l’info?
Mes premières recherches (Jeedom et Google) n’ont rien donné. Certainement car elles sont mal dirigées.
Mais je manque d’expérience dans ce domaine.
Comment récupère-t-on le code d’erreur de la dernière ligne pour essayer de debuger
une commande du type $Result= $cmd->execCmd($options=array($CommandeArray), $cache=0);
suivi de ==> log::add($DebugLog,« Info »,« Après execcmd = $Result »);
Affiche ==> Après execcmd =
la proposition que tu as faite, à savoir ($CommandeArray = array (‘title’=>‘XXXXXXX Vacances’, ‘message’=> ‘2020-02-26:2020-03-04’); marche très bien. C’est ce que je dis dans la première phrase.
Le problème que je veux résoudre est le suivant :
Scénario avec des tag qui ajoute ou retire des dates dans des agendas différents.
Donc le chaine ‘title’=>‘XXXXXXX Vacances’, ‘message’=> ‘2020-02-26:2020-03-04’ doit être paramétrable avec le XXXXXX qui est le nom de l’agenda et la date qui est modifiable.
D’où les deux variables intermédiaires $CommandeEvenement qui contient le nom de l’agenda à modifier et $CommandeDate qui contient la date ou la plage de date à ajouter
Ces variables sont récupérées en amont et je crée une chaine différente que je mets dans $String que je passe en Array à la commande.
Si ce n’est pas le bon moyen pour atteindre le but, je reste à l’écoute de solution plus efficace.
D’avance merci
Tu peux tourner cela dans tous les sens mais tu dois utiliser la syntaxe ci-dessus.
Donc passe toute tes variables à ton scénario (via des tags): title, message, … et construit l’array dans le code.
en entrée du scénario, je mets les tags dans des variables pour les passer au code php
(puisque les tags ne sont pas disponibles dans un bloc de type code, cf document Jeedom)
je récupère ces variables dans le bloc code php
// Récupération de l'Agenda à modifier
$CommandeName = $scenario->getData(vCommandeName);
// Récupération de l'action à réaliser
$CommandeAction = $scenario->getData(vCommandeAction);
// Récupération de l'évenement à modifier
$CommandeEvenement = $scenario->getData(vCommandeEvenement);
$CommandeEvenement = $CommandeName." ".$CommandeEvenement;
// Récupération de la date à modifier
$CommandeDate = $scenario->getData(vCommandeDate);
Donc il me semble que j’utilise bien la syntaxe que tu proposes.
Le problème semble venir pour moi du passage d’une variable (ici = $String) en argument de l’instruction array.
et c’est là où je bloque
Merci