好的,所以我的在线订购,它是一个我称之为'olo'的模块。我现在需要的是建立一个我们网站的移动版本,完全不同的布局和设计。
现在,我如何利用MVC的力量,这是我开始时卖掉的?
我想使用我已经在OLO模块中创建的所有不同的控制器类。
现在我已经开始开发我们的移动网站,它被放置为另一个名为“移动”的模块。它是用jQuery Mobile构建的,我已经完成了很多工作;信息页面,联系表格等。
所有移动设备目前都已domain.tld/m
重定向至{{1}}。如果链接到移动版本,则可以支持完整网站视图。
答案 0 :(得分:4)
使用 Zend Framework 1.11 ,zend引入了基于wurfl adapter的Zend_Http_UserAgent。
它允许您检测移动设备并引导不同的布局。 2010年12月的zend时事通讯附带的YouTube上有一个怎么样:http://www.youtube.com/watch?v=_A8yg73tqOY
您不必使用不同的模块!只是不同的布局文件!
答案 1 :(得分:3)
就个人而言,我会使用前端控制器插件。在我关注的过程中,在引导程序中执行此操作是一个过早的步骤。
编写一个挂接preDispatch()的插件,并使用Zend_Http_UserAgent查找是否通过移动设备访问应用程序。然后你可以set view script path到另一个目录。例如,假设默认是您当前的视图目录,移动是您的新视图目录。你只是克隆结构并修改文件,它应该做的诀窍:)
application/
modules/
olo/
controllers/
modules/
views/
scripts/
default/
mobile/
答案 2 :(得分:3)
与ArtWorkAD一样,您可以在Zend Framework 1.11中使用wurfl适配器,它允许您检测用户代理并切换布局,但这意味着每个人都需要“通用”。到目前为止,我从未如此“普遍”地看待。
您可以使用的是View的ContextSwitch http://framework.zend.com/manual/en/zend.controller.actionhelpers.html#zend.controller.actionhelpers.contextswitch
它允许您创建不同的上下文,通常用于创建csv / xml文件。 假设你有一个名为Index的控制器,其中有一个名为FooAction()的动作,我假设你已经有了一个视图脚本/ index / foo.phtml
您可以创建一个名为“mobile”的上下文,它允许您为该上下文创建一个视图,如scripts / index / foo.mobile.phtml。 这就像更改布局,但对于视图和前一个wurfl适配器,您可以更改布局,自动切换上下文。