Bonjour,
je cherche a traiter une commande info autres venant du plugin iCalendar par une fonction php directement dans le champs info autres d’un virtuel : le champs calcul est celui-ci, parseICS etant une fonction php custom :
parseICS(#[Calendrier][TIBI - outlook][Collectes Tibi]#)
@Salviaff avait repondu a ce post : « le plugin virtuel permet d’effectuer différentes fonction php directement dans le champs calcul d’une commande info dont un substr par exemple. »
c’est exactement ce que je cherche a faire,
Quelles sont les fonctions php autorisées (la reponse de salviaff semble indiquer que seules certaines fonction php fonctionneraient) ?
la fonction PHP custom parseICS definie dans user.class.php traite un string et retourne le resultat formaté, marche tres bien en test avec un string defini dans le fichier user.class.php, mais quand je passe en parametre la commande info autres de mon plugin iCalendar, cela ne fonctionne pas.
par exemple :
-
si je decommente la seconde ligne return strlen ($str), la reponse est toujours 7, quelque soit le paramètre passé.
-
si je decommente la première ligne $str=…, la reponse recue est celle attendue, donc avec in string localement defini la fonction fonctionne
que manque t’il ?
Merci
public static function parseICS($str, $delimiter1 = '||', $delimiter2 = ';', $default='Aucun' ) {
$result = '';
// $str = "00:00;23:59;;gris, vert;040000008200E00074C5B7101A82E0080000000030F4D0558A30D90100000000000000001000000076077D987B4EC04581034A62B3DD9240;;0;"
// return = strlen($str);
if (!(strpos($str,$default) !== false ) && (strpos($str,$default)==0) ) { // not the $default content returned when no active event
$events = explode($delimiter1,$str);
$firstLoop = true;
foreach ($events as $event) {
$fields = explode($delimiter2, $event);
if (!$firstLoop) {$result = $result . ' | '; }
$firstLoop = false;
if ((strpos($fields[0],"00:00")===false) || (strpos($fields[1],"23:59")===false)) { $result = $result . "[" . $fields[0] . "-" . $fields[1] . "] "; }
$result = $result . $fields[3];
if (strlen($fields[7])>1 ) {$result = $result . " (" . $fields[7] . ")"; }
//$result=$fields[0] . "_" . strlen(fields[0]);
}
}
return $result;
}