Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

public function dans bloc code.

Réservé à la création de scénarios dans JEEDOM
ManuJ71
Timide
Messages : 144
Inscription : 02 oct. 2016, 18:36

public function dans bloc code.

Message par ManuJ71 » 05 juil. 2019, 19:49

Bonjour, je suis en train de refaire tous mes scénario en code php, ce qui me permet de faire des copier/coller de code, des activations multiples en boucle ou en foreach etc .... Ca tourne pas mal ... mais je voudrais savoir si il est possible de créer dans un bloc code une fonction qui serait accessible dans un (ou des) autre scénario ?

En fait, créer un scénario qui contiendrait des 'outils' utilisables ailleurs ...

Exemple : dans scénario 1

Code : Tout sélectionner

function Date2Cron ($_date)
{
  $sortie = date('i', $_date) . ' ' . date('H', $_date) . ' ' . date('d', $_date) . ' ' . date('m', $_date) . ' *';
  return $sortie;
}
et utiliser dans un autre scénario :

Code : Tout sélectionner

$cejour = time();
$moncron = Date2Cron($cejour);
$scenario->setLog($moncron);
NB : J'ai bien trouvé via l'API "public static function convertDateToCron($_date)" dans les méthodes de cron.class.php ...

Code : Tout sélectionner

$cejour = time();
$moncron = cron::convertDateToCron($cejour);
$scenario->setLog($moncron);
... mais il rajoute l'année ... et puis c'est pour pouvoir utiliser mes propres fonctions de manière transversales dans mes scénarios ...

Merci d'avance ...
Manu

Avatar de l’utilisateur
loic
Administrateur
Messages : 14862
Inscription : 01 févr. 2014, 16:21

Re: public function dans bloc code.

Message par loic » 05 juil. 2019, 20:04

Bonjour,
Regarde dans la doc des scénarios de mémoire c'est dedans une partie sur les user fonction ça permet de créer des fonctions puis de les utilisater dans les scènario
Aide nous à t'aider : mets des logs, détaille ton soucis... Vous n'aurez aucune réponse de ma part si votre demande n'est pas détaillée (log, capture d'écran lisible...) ou si vous ne postez pas dans la bonne section

ManuJ71
Timide
Messages : 144
Inscription : 02 oct. 2016, 18:36

Re: public function dans bloc code.

Message par ManuJ71 » 05 juil. 2019, 23:56

Évidement c’est écrit ... je suis aveugle ...
Merci !

ManuJ71
Timide
Messages : 144
Inscription : 02 oct. 2016, 18:36

Re: public function dans bloc code.

Message par ManuJ71 » 06 juil. 2019, 16:32

Re bonjour ...

J'ai édité ... et ajouté ma fonction ... mais impossible de la récupérer dans les scénario ...

Code : Tout sélectionner

/* * ***************************Includes********************************* */
require_once dirname(__FILE__) . '/../../core/php/core.inc.php';

class userFunction {

	public static function plop($_arg1 = '') {
		return 'Argument 1 : ' . $_arg1;
	}
	
  	public function Date2Cron ($_date) {
  		return date('i', $_date) . ' ' . date('H', $_date) . ' ' . date('d', $_date) . ' ' . date('m', $_date) . ' *';
	}
  
}
mais il ne reconnais pas la class dans les scenario ...

aucune des solutions suivantes ne fonctionne :

Code : Tout sélectionner

userFunction->Date2Cron($x)
userFunction::Date2Cron($x)
J'ai essayé de l'appeler en créant un object :

Code : Tout sélectionner

$manu = new userFunction()
Ca ne fonctionne pas ... je sens que j'y suis presque, mais que manque-t-il ?

Merci

Avatar de l’utilisateur
loic
Administrateur
Messages : 14862
Inscription : 01 févr. 2014, 16:21

Re: public function dans bloc code.

Message par loic » 06 juil. 2019, 16:42

A oui en PHP code c'est pas possible.... A moins de rajouter un requiere en haut de ton bloc code vers le fichier...
Aide nous à t'aider : mets des logs, détaille ton soucis... Vous n'aurez aucune réponse de ma part si votre demande n'est pas détaillée (log, capture d'écran lisible...) ou si vous ne postez pas dans la bonne section

ManuJ71
Timide
Messages : 144
Inscription : 02 oct. 2016, 18:36

Re: public function dans bloc code.

Message par ManuJ71 » 06 juil. 2019, 17:25

Super, ca fonctionne ... sous cette forme pour d'autres qui chercheraient :

Code : Tout sélectionner

require_once dirname(__FILE__) . '/../../data/php/user.function.class.php';

$cejour = time();
$moncron = userFunction::Date2Cron($cejour);
$scenario->setLog($moncron);
Loic, encore une bête question ...
Pourquoi dans un scénario je peut lancer une méthode de cron (cron::xx) sans le requérir préalablement ? Elle est déclarée automatiquement avec les scénari ?

encore merci

Répondre

Revenir vers « Scénarios »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités