Moi dans ce genre de plugin, je pense qu’il ne faut pas prévoir plein de cas, ca va devenir compliqué à gérer: certain veulent 1h car c’est assez, d’autres 5min pour le debug etc
Selon moi, garde un cron minute avec ce genre de code:
public static function cron() {
foreach (eqLogic::byType(__CLASS__, true) as $eqLogic) {
$autorefresh = $eqLogic->getConfiguration('autorefresh', '');
if ($autorefresh == '') continue;
try {
$cron = new Cron\CronExpression($autorefresh, new Cron\FieldFactory);
if ($cron->isDue()) {
$eqLogic->refresh();
}
} catch (Exception $e) {
log::add(__CLASS__, 'error', __('Expression cron non valide pour ', __FILE__) . $eqLogic->getHumanName() . ' : ' . $autorefresh);
}
}
}
et dans la config de l’équipement:
<div class="form-group">
<label class="col-sm-3 control-label">{{Auto-actualisation (cron)}}</label>
<div class="col-sm-3">
<div class="input-group">
<input type="text" class="eqLogicAttr form-control" data-l1key="configuration" data-l2key="autorefresh" placeholder="{{Auto-actualisation (cron)}}"/>
<span class="input-group-btn">
<a class="btn btn-default cursor jeeHelper" data-helper="cron">
<i class="fas fa-question-circle"></i>
</a>
</span>
</div>
</div>
</div>
tu peux éventuellement mettre une valeur par défaut lors du preinsert
Ainsi chacun est libre de mettre le cron qu’il veut 