Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 18-02-2010 15:13:32

maryooman
Membre
Date d'inscription: 15-02-2010
Messages: 106

[Résolu]utilisation d'un helper pour afficher une partie d'un tableau

Bonjour,

je suis en plein dans ZF!

J'ai différentes pages qui affichent un tableau, mais il y a une partie commune qui reviens.

Normalement je créerai une procédure dans un fichier à part pour qu'elle soit appelé à chaque fois, mais ici j'aimerai faire comme zend je conseil : utiliser un helper

Code:

<table>
<tr>
  <th>…</th>
</tr>
<tr>
  <td> 
            <a href="<?php echo $this->url(array('controller'=>$controlleur,
                    'action'=>'get', 'id'=>$id));?>">Zoom</a>

            <a href="<?php echo $this->url(array('controller'=>$controlleur,
                    'action'=>'update', 'id'=>$id));?>">Update</a>

            <a href="<?php echo $this->url(array('controller'=>$controlleur,
                    'action'=>'delete', 'id'=>$id));?>">Delete</a>
  </td>
</th>
</table>

C’est la partie qui revient toujours.


Maintenant j’ai fait un helper que j’ai mis dans :
application\views\helpers\TableTool.php

Code:

<?php

class View_Helper_TableTool {
    
    public function  __construct($id,$controlleur) {
           
        ?><td> 
            <a href="<?php echo $this->url(array('controller'=>$controlleur,
                    'action'=>'get', 'id'=>$id));?>">Zoom</a>

            <a href="<?php echo $this->url(array('controller'=>$controlleur,
                    'action'=>'update', 'id'=>$id));?>">Update</a>

            <a href="<?php echo $this->url(array('controller'=>$controlleur,
                    'action'=>'delete', 'id'=>$id));?>">Delete</a>
        </td><?php
    }

}

Et pour l’appelé :

Code:

<tr>
  <?php echo new View_Helper_TableTool($items->item_id,'item'); ?>
  <td>…</td>
</tr>

Résultat j’ai juste le titre des colonnes dans une page blanche

Utiliserai-je mal les helper ?

Dernière modification par maryooman (21-04-2010 13:38:20)

Hors ligne

 

#2 18-02-2010 16:30:15

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Résolu]utilisation d'un helper pour afficher une partie d'un tableau

Oui tu utilises mal

déclare une fonction public du même nom que ton helper qui fait un retourne de code
De plus, un helpeur n'est construit qu'une seule fois, donc ton "espèce" de echo dans le construct n'est pas valable

Ensuite, <?= $this->tableTool($machin); ?>


----
Gruiiik !

Hors ligne

 

#3 19-02-2010 09:24:32

maryooman
Membre
Date d'inscription: 15-02-2010
Messages: 106

Re: [Résolu]utilisation d'un helper pour afficher une partie d'un tableau

bonjour,

j'ai encore un erreur

"Plugin by name 'TableTool' was not found in the registry"

Il m'indique le bon dosser : application/views\helpers/

dans ce dossier j'ai bien TableTool.php
qui contient :

Code:

class View_Helper_TableTool {    
    public function TableTool($id,$controlleur) {           
        ?><td> 
            <a href="<?php $this->url(array('controller'=>$controlleur,
                    'action'=>'get', 'id'=>$id));?>">Zoom</a>

            <a href="<?php $this->url(array('controller'=>$controlleur,
                    'action'=>'update', 'id'=>$id));?>">Update</a>

            <a href="<?php $this->url(array('controller'=>$controlleur,
                    'action'=>'delete', 'id'=>$id));?>">Delete</a>
        </td><?php
    }
}

et je l'appelle comme tu m'a indiqué : <?php $this->TableTool($machin,$truc); ?>

au fait tu a écrit "<?=", j'ai remplacé le '=' par 'php' car ça donnais un affichage étrange

Hors ligne

 

#4 19-02-2010 09:39:52

Willmore
Membre
Lieu: Savigny Le Temple
Date d'inscription: 25-05-2009
Messages: 31

Re: [Résolu]utilisation d'un helper pour afficher une partie d'un tableau

Il faut que ta classe s'appelle Zend_View_Helper_TableTool, par exemple :
Fichier : /application/views/helpers/ProfileLink.php

Code:

<?php
class Zend_View_Helper_ProfileLink extends Zend_View_Helper_Abstract
{
    public function profileLink()
    {}
....
}

Dernière modification par Willmore (19-02-2010 09:40:21)


Amicalement,

Will

Hors ligne

 

#5 19-02-2010 10:04:42

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Résolu]utilisation d'un helper pour afficher une partie d'un tableau

maryooman a écrit:

et je l'appelle comme tu m'a indiqué : <?php $this->TableTool($machin,$truc); ?>

au fait tu a écrit "<?=", j'ai remplacé le '=' par 'php' car ça donnais un affichage étrange

la fonction public doit bien s'appelé du même non que la classe, mais en changeant la première lettre en minuscule

le <?= ca remplace <?php echo

C'est pour cela que je te dis que ton code doit faire un retourne et pas un echo


----
Gruiiik !

Hors ligne

 

#6 19-02-2010 10:37:04

maryooman
Membre
Date d'inscription: 15-02-2010
Messages: 106

Re: [Résolu]utilisation d'un helper pour afficher une partie d'un tableau

J'ai l'impression d'être perdu,

dsl pour mon manque de compréhension, c'est assez nouveau pour moi les helper


Code:

<?= $this->tableTool('1','country'); ?>

Code:

class Zend_View_Helper_TableTool {    
    public function tableTool($id,$controlleur) {           
        return ?><td>
            <a href="<?php $this->url(array('controller'=>$controlleur,
                    'action'=>'get', 'id'=>$id));?>">Zoom</a>
            <a href="<?php $this->url(array('controller'=>$controlleur,
                    'action'=>'update', 'id'=>$id));?>">Update</a>
            <a href="<?php $this->url(array('controller'=>$controlleur,
                    'action'=>'delete', 'id'=>$id));?>">Delete</a>
        </td><?php
    }
}

merci

Hors ligne

 

#7 19-02-2010 12:13:32

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Résolu]utilisation d'un helper pour afficher une partie d'un tableau

Nan, mais la, c'est du niveau PHP, pas de Helper, ou Zend..

Code:

class Zend_View_Helper_TableTool {    
    public function tableTool($id,$controlleur) {      
        $html = <<<HTMLDOC
<td>
    <a href=\"".$this->url(array('controller'=>$controlleur, 'action'=>'get', 'id'=>$id))."\">Zoom</a>
    <a href=\"".$this->url(array('controller'=>$controlleur, 'action'=>'update', 'id'=>$id))."\">Update</a>
    <a href=\"".$this->url(array('controller'=>$controlleur, 'action'=>'delete', 'id'=>$id))."\"">Delete</a>
</td>
HTMLDOC;

        return $html;
    }
}

Dernière modification par nORKy (19-02-2010 12:15:11)


----
Gruiiik !

Hors ligne

 

#8 19-02-2010 16:34:10

maryooman
Membre
Date d'inscription: 15-02-2010
Messages: 106

Re: [Résolu]utilisation d'un helper pour afficher une partie d'un tableau

je ne connaissais pas le HTMLDOC, très intéréssant


mais celà ne fonctionne pas, il problème dans les liens en faite ...


voila une des erreurs au dessus du tableau :

Notice: Undefined property: Zend_View_Helper_TableTool::$url in C:\wamp\www\NetApp_IT_Tool\application\views\helpers\TableTool.php on line 10


et une autre dans une cellule du tableau


country, 'action'=>'get', 'id'=>1))."\">Zoom country, 'action'=>'update', 'id'=>1))."\">Update country, 'action'=>'delete', 'id'=>1))."\"">Delete

Dernière modification par maryooman (19-02-2010 16:35:51)

Hors ligne

 

#9 19-02-2010 16:49:04

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Résolu]utilisation d'un helper pour afficher une partie d'un tableau

Je un peu tapé n'importe quoi smile

Code:

class Zend_View_Helper_TableTool extends Zend_View_Helper_Abstract {    
    public function tableTool($id,$controlleur) {      
        $html = <<<HTMLDOC
<td>
    <a href="{$this->view->url(array('controller'=>$controlleur, 'action'=>'get', 'id'=>$id))}">Zoom</a>
    <a href="{$this->view->url(array('controller'=>$controlleur, 'action'=>'update', 'id'=>$id))}">Update</a>
    <a href="{$this->view->url(array('controller'=>$controlleur, 'action'=>'delete', 'id'=>$id))}">Delete</a>
</td>
HTMLDOC;

        return $html;
    }
}

Dernière modification par nORKy (19-02-2010 16:49:38)


----
Gruiiik !

Hors ligne

 

#10 22-02-2010 11:39:11

maryooman
Membre
Date d'inscription: 15-02-2010
Messages: 106

Re: [Résolu]utilisation d'un helper pour afficher une partie d'un tableau

ça marche nikel, merci beaucoup
++

Hors ligne

 

#11 23-02-2010 09:22:45

Fierfeu
Nouveau membre
Date d'inscription: 04-02-2010
Messages: 7

Re: [Résolu]utilisation d'un helper pour afficher une partie d'un tableau

Salut,

juste une question en passant ... Pourquoi crées tu un Helper alors qu'un partial (Helper de Zend_view) aurait fait l'affaire ?

Sauf erreur de ma part (et c'est tjs possible), je n'ai rien vu qu'un partial ne ferait.

Fierfeu

Hors ligne

 

#12 24-02-2010 09:56:08

maryooman
Membre
Date d'inscription: 15-02-2010
Messages: 106

Re: [Résolu]utilisation d'un helper pour afficher une partie d'un tableau

Fierfeu, honnetement, je ne sais pas comment faire le partal helper.

Je peux chercher, mais je suis préssé par le temps. Donc je laisserais ça pour les optimisations éventuelles.

Merci

Hors ligne

 

#13 24-02-2010 16:28:18

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Résolu]utilisation d'un helper pour afficher une partie d'un tableau

maryooman a écrit:

Fierfeu, honnetement, je ne sais pas comment faire le partal helper.

Je peux chercher, mais je suis préssé par le temps. Donc je laisserais ça pour les optimisations éventuelles.

Merci

beh, c'est plus simple un partialLoop à mon avis.. mais c'est toi qui code smile


----
Gruiiik !

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