【问题标题】:Set View Script in Plugin - Check if Exist?在插件中设置视图脚本 - 检查是否存在?
【发布时间】:2011-12-05 09:23:46
【问题描述】:

我正在开发一个多语言网站。

有些语言使用从右到左的布局,有些使用从左到右的布局。

所以我的一些视图脚本有另一个我想自动加载的 RTL 视图脚本。

我编写了一个插件来检查用户是否是 RTL,如果是,它会在文件的后缀中添加“.rtl”: Zend_Controller_Action_HelperBroker::getExistingHelper('ViewRenderer')->setViewSuffix('rtl.phtml');

问题是不是我所有的视图脚本都有一个 rtl 视图脚本,所以我想检查文件是否存在......

如果我在我的控制器 $this->render('someScript') 中这样做,那么我无法检查 .rtl 脚本是否存在......据我所知。

简而言之:是否有某种方式(事件)可以在动作完成之后但在渲染之前进行连接?

也许我应该写一个自定义视图渲染器?

谢谢。

【问题讨论】:

    标签: zend-framework zend-locale


    【解决方案1】:

    如果 RTL 检查只能在动作执行后进行,您可以创建一个动作助手,它使用 postDispatch 钩子通过 ViewRenderer 设置 viewSuffix 并检索视图脚本的路径。使用视图 scriptPath 和 viewRenderer getViewScript(),您可以创建文件的绝对路径。 不过,这并不是实现目标的一种特别漂亮的方式。

    创建两个 scriptPath 可能是一个想法,一个用于 LTR,另一个用于 RTL。当用户使用 RTL 语言时,您可以将 RTL scriptPath 添加到视图 scriptPath 堆栈中。这样,Zend_View 将首先检查 RTL 目录并使用 LTR 目录作为后备。

    【讨论】:

      猜你喜欢
      • 2014-06-08
      • 1970-01-01
      • 1970-01-01
      • 2013-12-07
      • 1970-01-01
      • 1970-01-01
      • 2014-04-13
      • 2023-01-20
      • 2020-03-02
      相关资源
      最近更新 更多