Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 11-10-2009 17:53:01

nicko
Membre
Lieu: Chambéry
Date d'inscription: 25-05-2009
Messages: 190

[1.9][Zend_ProgressBar] Existe t-il un tutoriel explicite ?

Bonjour,

Je suis en train de créer une bar de chargement pour le chargement des données d'une page qui doit afficher le contenu d'un dossier.

Je suis aller voir dans le doc de Zend et j'ai trouvé cette "unique" page d'explication : http://framework.zend.com/manual/fr/zen … ssbar.html

Je n'y arrive toujours pas malgré ça. Alors je me tourne vers vous pour avoir vos conseils (explication, tuto, ...).

Actuellement j'ai fait ceci avec la doc :

Code:

    public function indexAction()
    {       
        $this->_progressBar = new Zend_ProgressBar(new Zend_ProgressBar_Adapter_JsPush, 0, 100);
        
        $this->scanDirectory(BASE_PATH . S . 'Media');
        
        $this->_progressBar->finish();

        $this->view->structure = $xhtml;
    }
        
    private function scanDirectory($directory, $root = 'media')
    {
        $folder = opendir($directory);

        while ($entry = readdir($folder)) {
            if (is_dir($directory . S . $entry) && $entry != '.' && $entry != '..') {
                $this->_array[$root][0][] = $entry;
                $this->scanDirectory($directory . S . $entry, $entry);
            } elseif (is_file($directory . S . $entry)) {
                $this->_array[$root][1][] = $entry;
            }
            
            $this->_progressBar->update($this->_i++);
        }
    }

ensuite j'ai fais comme dans l'Exemple 41.1 de la doc de zend mais j'ai une grande quantité de ligne qui viennent d'afficher dans le code html (entre les balise body) :

Code:

<script type="text/javascript">parent.Zend_ProgressBar_Update({"current":0,"max":100,"percent":0,"timeTaken":0,"timeRemaining":null,"text":null});</script><br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
<script type="text/javascript">parent.Zend_ProgressBar_Update({"current":0,"max":100,"percent":0,"timeTaken":0,"timeRemaining":null,"text":null});</script><br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
<script type="text/javascript">parent.Zend_ProgressBar_Update({"current":1,"max":100,"percent":1,"timeTaken":0,"timeRemaining":0,"text":null});</script><br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
<script type="text/javascript">parent.Zend_ProgressBar_Update({"current":2,"max":100,"percent":2,"timeTaken":0,"timeRemaining":0,"text":null});</script><br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
<script type="text/javascript">parent.Zend_ProgressBar_Update({"current":3,"max":100,"percent":3,"timeTaken":0,"timeRemaining":0,"text":null});</script><br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
<script type="text/javascript">parent.Zend_ProgressBar_Update({"current":4,"max":100,"percent":4,"timeTaken":0,"timeRemaining":0,"text":null});</script><br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
<script type="text/javascript">parent.Zend_ProgressBar_Update({"current":5,"max":100,"percent":5,"timeTaken":0,"timeRemaining":0,"text":null});</script><br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
<script type="text/javascript">parent.Zend_ProgressBar_Update({"current":6,"max":100,"percent":6,"timeTaken":0,"timeRemaining":0,"text":null});</script><br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
<script type="text/javascript">parent.Zend_ProgressBar_Update({"current":7,"max":100,"percent":7,"timeTaken":0,"timeRemaining":0,"text":null});</script><br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  

<script type="text/javascript">parent.Zend_ProgressBar_Update({"current":8,"max":100,"percent":8,"timeTaken":0,"timeRemaining":0,"text":null});</script><br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
<script type="text/javascript">parent.Zend_ProgressBar_Update({"current":9,"max":100,"percent":9,"timeTaken":0,"timeRemaining":0,"text":null});</script><br />  
........

Et j'en passe.

Pouvez-vous me donnée un petit coup de pousse ?

merci beaucoup d'avance.

PS : Même un retour d'expérience me serais utile wink

Dernière modification par nicko (11-10-2009 17:54:35)

Hors ligne

 

#2 12-10-2009 09:37:38

ami
Membre
Lieu: Nantes
Date d'inscription: 28-03-2007
Messages: 45
Site web

Re: [1.9][Zend_ProgressBar] Existe t-il un tutoriel explicite ?

regarde surtout le lien : http://www.z-f.fr/forum/viewtopic.php?id=2487

------------

De mémoire, je fais les appels ajax avec jquery. je place le résultat  dans un iframe caché : $("idDeMonIframe).html(resultatAjax). Le code javascript est alors exécuté et il cherche une fonction ( dans parent de ton iframe ) nommé Zend_ProgressBar_Update !

Tu dois alors créer toi même ta fonction javascript Zend_ProgressBar_Update() et récupérer les données et mettre a jour ton progressbar.

exemple

Code:

function Zend_ProgressBar_Update(data)
{
    $('#percent').html( data.percent );
    $('#time_taken').html(data.timeTaken);
    $('#time_remaining').html(data.timeRemaining);
}

Ami

Dernière modification par ami (12-10-2009 09:51:35)

Hors ligne

 

#3 28-10-2010 17:40:42

sankokai
Nouveau membre
Date d'inscription: 28-10-2010
Messages: 1

Re: [1.9][Zend_ProgressBar] Existe t-il un tutoriel explicite ?

Bonjour,

j'avais le même problème et j'ai suivi http://www.z-f.fr/forum/viewtopic.php?id=2487 puis http://electron-libre.fassnet.net/barre … upload.php pour comprendre finalement qu'il fallait donner un nom à l'iframe et le mettre en target dans le formulaire.

ex :
dans la vue :

Code:

<div id="zend-progressbar-container">
    <span class="progressBar" id="pb1" style="display:none;">0%</span>
</div>
<iframe id="long-running-process" name="tfrm" style="display:none;"></iframe>

Formulaire dans le même fichier vue :

Code:

<form method="post" action="" target="tfrm">

fichier javascript (j'utilise le progressbar jquery dont le lien est dans la doc http://framework.zend.com/manual/fr/zen … ction.html) :

Code:

function Zend_ProgressBar_Update(data)
{
    $("#pb1").css("display", "block");
    $("#pb1").progressBar(data.percent);
    
}

Dans le contrôleur ou librairie quelconque :

Code:

$progressbar = new Zend_ProgressBar(new Zend_ProgressBar_Adapter_JsPush(), 0, 100);

dans la boucle :

Code:

$progressbar->update(($ma_valeur*100)/$mon_total);

Note : J'ai du modifier le source de jquery.progressbar.js pour mettre les chemins des images en dur...

Dernière modification par sankokai (28-10-2010 17:44:12)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages