• Note : ce qui suit risque de changer dans la prochaine bêta de Zenith. La méthode sera toujours valable, mais l'insertion de plusieurs scripts sera simplifiée.


    Pour intégrer un script ZeL sur votre site, vous devez en éditer le code HTML, et rajouter les éléments comme suit :

    1. rajouter un élément cliquable, en rajoutant l'attribut zel avec comme valeur "true". Exemple :
        <button zel="true">Label de votre bouton</button>
    2. rajouter un script renvoyant les instructions à l'extension via une fonction que vous appellerez getZelInstructions. Exemple :
        <script type="text/javascript">
             function getZelInstructions(){
                return {
                  "do":[
                     {"goTo":"a:first"},
                  ]
                };
             }
        </script>

    Attention : la méthode décrite ci-dessus n'est valable que si on propose un seul script ZeL pour chaque page. Si on veut proposer  plusieurs script ZeL, on peut utiliser cette méthode :

    <button zel="true" onclick="f1()">Script 1</button>
    <button zel="true" onclick="f2()">Script 2</button>
    <script type="text/javascript">
       var getZelInstructions;
       function f1(){
         getZelInstructions = function(){
             return {Instructions du premier bouton};
         };
      }
      function f2(){
         getZelInstructions = function(){
             return {Instructions du second bouton};
         };
      }

    </script>

    Ceci grâce au fait que l'évènement "click" est traité avant la récupération des instructions ;) .


    votre commentaire
  • Si vous voulez tester des scripts ZeL, vous pouvez utiliser l'éditeur mis à disposition ici :

    http://coldsun.free.fr/zenith/zel.html 

    Vous pouvez soit utiliser l'éditeur directement, soit effectuer un copier-coller de votre script vers l'éditeur (si l'éditeur ne vous convient pas), et lancer l'exécution du script à l'aide du bouton en bas de l'éditeur.

    Pour les tests, il est conseillé de mettre "debug" à true pour corriger les éventuelles incohérences.


    votre commentaire
  • Permet de jouer un son audio encodé au format ogg-vorbis et hébergé sur internet par vos soin. Vérifiez bien que le lien que vous donnez soit valide, et qu'il se termine par ".ogg".

    Cette instruction ne fonctionnera que sous Firefox 3.5 et ultérieur. Sous Firefox 3.0, elle sera automatiquement ignorée.

    Syntaxe :

    {"audio":"adresse vers le fichier audio ogg",
      "options":"les options ici",
      "do":[Instructions],
    },

    Liste des options facultatives

    • synchronous : lecture en synchrone, c'est à dire que les instructions suivantes commenceront avant sans attendre la fin de la lecture 

    Les instructions "do" (facultatif)

    Ces instructions s'exécutent pendant la lecture du fichier audio. Si l'option "synchronous" n'est pas spécifiée, seules les instructions de ce "do" seront exécutées simultanément avec la lecture de la musique.

     

    Exemples

    Exemple 1 : avec l'option synchrone :

    {
      "debug":true, // enables debug mode
      "url":"kazeo.com/gestion/admin.php?page=forum", // replace SOMELINK or delete it
      "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",
         "do":[
            {"for":"$topic",
            "in":".tclcon h3 a[href*='sr=viewforum']",
            "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"},
            ]},
        ]},
       
        {"audio":"http://www.votre_fabuleux.site.com/piste_demo.ogg",
         "options":"synchronous"},

        {"call":"parcourir"}
        {"goTo":"a:first"},
       
     ],
    }

     

    Exemple 2 : avec "do" :

    {
      "debug":true, // enables debug mode
      "url":"kazeo.com/gestion/admin.php?page=forum", // replace SOMELINK or delete it
      "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",
         "do":[
            {"for":"$topic",
            "in":".tclcon h3 a[href*='sr=viewforum']",
            "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"},
            ]},
        ]},
       
        {"audio":"http://www.votre_fabuleux.site.com/piste_demo.ogg",
         "do":[
    {"call":"parcourir"}]
         },

        {"goTo":"a:first"}, // sera appelé après la lecture du fichier audio
     ],
    }


    votre commentaire
  • 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 :

    • Les paramètres sont passés par valeur
    • Les paramètres doivent obligatoirement débuter par un "$" (exemple : "$param")
    • Le principe des paramètres est que toutes les occurrences des paramètres seront remplacées par ce qui est envoyé lors de l'appel. Exemple :
      {"function":"exemple",
            "params":["$param", "$inst2", "$val2"],
            "do":[
                     {"goTo":"$param"},
                     {"$inst2":"$val2"},
            ],
          },
          {"call":"exemple",
            "$param":"a:first",
            "$inst2":"click",
            "$val2":"l",
          }
      Équivaut à :
      {"goTo":"a:first"},
      {"click":"l"},
       

    Exemples complets :

    Exemple 1 :

    {
      "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",
        }
     ],
    }

    Exemple 2 :

    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
     ],
    }


    votre commentaire
  • L'instruction exit permet de mettre fin à toutes les séries d'instructions .

    Syntaxes :

    {"exit":false}

    ou :

    {"exit":"votre message"}

     

    Dans le premier cas, on termine sans afficher de message.

    Dans le deuxième cas, on termine en affichant "votre message".


    votre commentaire


    Suivre le flux RSS des articles de cette rubrique
    Suivre le flux RSS des commentaires de cette rubrique