•  

      Zenith  

    Zenith est une extension  pour Mozilla Firefox qui sera censée vous simplifier encore plus la vie pour ajouter du contenu à votre blog.

    Note to English People and to developpers :
    A documentation is available there : http://doc.zenith.free.fr 

     

    Table des matières :

     

    Sortie(s)

    Le lundi 27 Juillet est sorti la version 0.2 beta 1 de Zenith. Le concept a radicalement changé, même si la philosophie de base reste la même : simplifier la vie ;) .

    Ainsi, la version 0.2 proposera de faire bouger la souris.

    _____

    Aujourd'hui, pour clôturer 2008, je vous annonce qu'une version (beta) vient de sortir. Vu son faible nombre de fonctionnalités, j'ai plutôt attribué comme numéro de version 0.1 beta.

    Note : d'autres versions sont sorties depuis. Actuellement, la version 0.1.1 pre 1 est la plus récente.

     

    Fonctionnalités rajoutées

    Actuellement (version 0.1.1 pre 1) , ces fonctionnalités sont :

    • La possibilité de faire bouger la souris via un langage de programmation (le ZeL). Vous trouverez des exemples de possibilités sur http://coldsun.free.fr/zenith/zel.html (en cliquant sur l'un des boutons en bas)
    • L'ajout de vidéos, de musiques, et d'images déjà hébergées simplifié lors de l'édition d'un article, par simple glisser-déposer d'onglet
    • Sauvegarde de vos articles : lorsque vous publiez un article et que Zenith est actif, une copie est sauvegardée dans votre dossier personnel. Pour plus de détails, consultez le mode d'emploi.

    (si tout ce jargon ne vous dit rien, je vous laisse vous en référer au mode d'emploi, car c'est tout simple).

     

    Pourquoi est-ce pour le moment en version beta ou pre?

         simplement parce que j'estime que l'extension comporte encore quelques bugs mineurs, mais que le grand public peut toutefois l'utiliser.

     

    Licence

    Cette extension est distribuée sous licence GNU/GPL.
    Pour plus d'infos sur la licence GPL : http://fr.wikipedia.org/wiki/Licence_publique_g%C3%A9n%C3%A9rale_GNU

     

    Bugs :

    Actuellement, les bugs connus par l'auteur sont :

    • Bugs avec les lecteurs exportables de Jiwa => attente de réponse de la part du site
    • Non affichage des medias de type flash (musiques et video) dans l'éditeur (corrigé : 31.12.08)
    • Gestion d'activation/désactivation a améliorer (lors de l'ajout d'un onglet (fichier -> nouvel onglet) ) (fait : version 0.1-beta3)
    • dépendance de l'extension avec l'extension tabmixplus : gênant (corrigé : 03.12.2008 : version 0.1-beta2)
    • Sauvegarde de contenu ne marche pas sous Windows (corrigé (?) version 0.1-beta3)
    • Alerte d'erreur "this.off:TypeError: bouton is null" quand on change d'onglet(corrigé (?) version 0.1-beta3)
    • Alerte d'erreur "this.off:TypeError: bouton is null" quand on modifie l'édito (corrigé (?) )
    • Sauvegarde pour Edito à faire. (fait : version 0.1 pre)
    • Problème de glisser-déposer des éléments dans l'éditeur (pour éviter ce désagrément, désactivez Zenith) (corrigé (?) : version 0.1-beta3)
    • Bug lors de la sauvegarde des articles (corrigé : version pre 1)

    Les (?) signifient que le bug correspondant est apparemment résolu chez moi, mais que je reste toutefois prudent avant de me prononcer catégoriquement.

     

    Télécharger :

     


  • 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



    Suivre le flux RSS des articles
    Suivre le flux RSS des commentaires