2011-03-22 2 views
0

J'ai écrit des fonctions smarty personnalisées pour travailler avec le framework Zend et maintenant je voudrais les réécrire en zend structure, comment je peux le faire? merci. Voici l'exemple de code pour le même ...Comment convertir les fonctions smarty en fonctions zend

function smarty_function_render_table($params, &$smarty) 
{ 
    extract($params); 

    $sSortTableBy = $smarty->get_template_vars("sortTableBy"); 
    $bSortTableOrderAsc = (boolean) (strlen($smarty->get_template_vars("sortTableOrder")) > 0 ? strtolower($smarty->get_template_vars("sortTableOrder")) == 'asc' : true); 
    $iSortTablePage = $smarty->get_template_vars("page"); 

    Adx_Sort::getInstance()->multiSort($data, $sSortTableBy, $bSortTableOrderAsc); 

    $columnSettings = $smarty->get_config_vars($id); 

Répondre

0

Les analogues des plugins Smarty sont des assistants Zend View. Vous pouvez écrire Zend View Helpers pour faire un travail similaire à celui des plugins Smarty. Zend View Helpers est une classe dérivée de la classe abstraite Zend_View_Helper_Abstract. L'objet View est déjà accessible par l'intermédiaire du membre public view. get_template_vars n'est pas nécessaire - vous pouvez simplement afficher les variables personnalisées directement depuis l'objet View.

<?php 
class Zend_View_Helper_Table extends Zend_View_Helper_Abstract { 

    public function table($params) { 
     extract($params); 
     $sSortTableBy = $this->view->sortTableBy; 
     $bSortTableOrderAsc = (boolean) (strlen($this->view->sortTableOrder) > 0 ? strtolower($this->view->sortTableOrder) == 'asc' : true); 
     $iSortTablePage = $this->view->page; 
     return Adx_Sort::getInstance()->multiSort($data, $sSortTableBy, $bSortTableOrderAsc); 
    } 

} 

Une fois que vous aviez créé l'aide de vue, vous pouvez l'utiliser directement dans chaque script de vue via des appels directs:

<?=$this->table($params)?> 
+0

parfait, il a travaillé ... mec Thanx – Lakshman

+0

que dois-je remplacer par la smarty-> get_config_vars ($ id), $ smarty -> _ get_plugin_filepath ($ sSmartyPluginType, $ sPluginName) – Lakshman

+0

Vous voyez, ZF Views est complètement différent de Smarty. Il n'est donc pas nécessaire d'avoir un analogue direct pour certaines fonctions de Smarty. Comme je le sais, il n'y a pas de configuration ZF View spéciale, donc pas d'analogue pour la méthode get_config_vars. Vous devez repenser votre plugin et votre code. Demandez-vous, ce que vous essayez de faire avec de telles méthodes et il sera alors beaucoup plus facile de trouver une solution appropriée avec ZF Views. – Ololo

Questions connexes