我已经编写了自定义智能函数来使用Zend框架,现在我希望将它们重写为zend结构,PLZ建议我该怎么做?感谢名单。以下是相同的示例代码......
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 :(得分:0)
Smarty插件的类比是Zend View Helpers。您可以编写Zend View Helpers来完成与Smarty插件类似的工作。 Zend View Helpers是一个派生自Zend_View_Helper_Abstract抽象类的类。 View对象已经可以通过视图公共类成员访问。不需要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)?>