Ce qu'on appellera fonction sont plutôt ce qu'on appellerait procédure : à l'heure actuelle, les fonctions ne renvoient rien en ZeL.
Pour déclarer une fonction, on procède de la manière suivante :
{"function": "Nom de la fonction",
"params":[Liste des paramètres]
"do":[Instructions]
},
et pour appeler la fonction :
{"call":"parcourir",
"Parametres":"valeurs",
}
Notes :
{
"debug":true, // enables debug mode
"url":"kazeo.com/gestion/admin.php?page=forum", // replace SOMELINK or delete it
"do":[
{"function":"exemple",
"params":["$param", "$inst2", "$val2"],
"do":[
{"goTo":"$param"},
{"$inst2":"$val2"},
],
},
{"call":"exemple",
"$param":"a:first",
"$inst2":"click",
"$val2":"l",
}
],
}
Note : cet exemple montre une chose intéressante avec les fonctions : les fonctions récursives
Ici, on va parcourir toutes les catégories des forums grâce à la récursivité.
{
"debug":true, // enables debug mode
"url":"kazeo.com/gestion/admin.php?page=forum",
"do":[
{"ifnotexists":".tclcon",
"then":[
{"exit":"vous devez etre connecte"},
]},
{"ifnotexists":"#btn_close_tabs_bar",
"then":[
{"exit":"Pour tester ce script, il faut se connecter avec la version stable de Kazeo"},
]},
{"function":"parcourir", // déclaration de la fonction "parcourir"
"do":[
{"for":"$topic",
"in":".tclcon h3 a[href*='sr=viewforum']", // tant qu'il y a un lien vers une catégorie/sous-catégorie
"options":"reload",
"do":[
{"goTo":"$topic"},
{"click":"l"},
{"wait":"while loading"},
{"call":"parcourir"}, // fonction recursive
],
},
{"ifexists":".linkst a:last",
"then":[
{"goTo":".linkst a:last"},
{"click":"l"},
{"wait":"while loading"},
{"goTo":"#btn_close_tabs_bar"},
{"click":"l"},
]},
]},
{"call":"parcourir"}, // appel de la fonction parcourir
],
}