2011-03-22 2 views
0

Zend Framework에서 작동하도록 사용자 정의 smarty 함수를 작성했습니다. 이제 구조를 zend로 다시 작성하고 싶습니다. 어떻게하면됩니까? 고맙습니다. 다음은 동일한 코드 예제 코드입니다.smarty 함수를 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); 

답변

0

Smarty 플러그인의 아날로그는 Zend View 도우미입니다. Smarty 플러그인처럼 Zend View Helpers를 작성하여 비슷한 작업을 할 수 있습니다. Zend View Helpers는 Zend_View_Helper_Abstract 추상 클래스에서 파생 된 클래스입니다. 뷰 객체는 이미 뷰 public 클래스 멤버를 통해 액세스 할 수 있습니다. get_template_vars는 필요하지 않습니다. 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); 
    } 

} 

, 당신이 직접 전화를 통해 모든보기 스크립트에서 직접 사용할 수 있습니다

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

완벽한, 일했다 ... 나는을 위해 교체해야하는지 고맙습니다 친구 – Lakshman

+0

을 $ smarty-> get_config_vars ($ id), $ smarty -> _ get_plugin_filepath ($ sSmartyPluginType, $ sPluginName) – Lakshman

+0

ZF Views는 Smarty와 완전히 다르다. 따라서 일부 Smarty 기능에는 직접 아날로그가 필요하지 않습니다. 아시다시피, 특별한 ZF View 설정이 없으므로 get_config_vars 메소드에 아날로그가 없습니다. 플러그인과 코드를 재고해야합니다. 그런 방법으로 무엇을하려고하는지 자문 해보십시오. 그런 다음 ZF Views로 적절한 솔루션을 찾는 것이 훨씬 쉬울 것입니다. – Ololo

관련 문제