Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
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
<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
<?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é :
<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
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); ?>
Hors ligne
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 :
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
Il faut que ta classe s'appelle Zend_View_Helper_TableTool, par exemple :
Fichier : /application/views/helpers/ProfileLink.php
<?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)
Hors ligne
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
Hors ligne
J'ai l'impression d'être perdu,
dsl pour mon manque de compréhension, c'est assez nouveau pour moi les helper
<?= $this->tableTool('1','country'); ?>
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
Nan, mais la, c'est du niveau PHP, pas de Helper, ou Zend..
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)
Hors ligne
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
Je un peu tapé n'importe quoi
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)
Hors ligne
ça marche nikel, merci beaucoup
++
Hors ligne
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
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
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
Hors ligne
Pages: 1