标签: zend-layout

如何在Zend Framework中设置多个布局.例如.公共/已登录/各种模块组合

我知道并使用了非常基本的Zend Framework的Layouts,我在整个站点中使用了1个布局.但现在我需要一个更中间/有组织的设置.

  • 公共站点布局将div#mainContent占用整个12列(使用960gs)
  • 登录的站点将div#mainContent占用9列+侧栏,3列
  • 在登录站点的侧边栏中,各种页面可能包含各种模块(不是Zend Framework的模块,更像是"box/widgets")
  • 他们也会有不同的导航菜单

我正在考虑使用1个基本布局,其中2个子布局将"扩展".基本布局将只包含<html>声明headScripts等,直到子<body>布局将包含对包装的定义divs div.grid_12, grid_9, grid_3.我怎样才能实现这种"扩展",基本上,我只想重用代码

还有什么是渲染侧边框/小部件的好方法

zend-framework zend-view zend-layout

2
推荐指数
1
解决办法
6239
查看次数

如何在zend框架中切换到其他布局?

如果我在我的应用程序中有2个布局,如何将我的默认布局更改为某些控制器或操作的其他布局?

zend-framework zend-layout

1
推荐指数
1
解决办法
1818
查看次数

Zend框架 - 在呈现布局之前执行的最后一个代码

在执行所有其他代码之后,我想在渲染布局之前执行一些代码.我会把那些代码放在哪里?

我特意尝试在布局使用之前修改headLink,headScript和inlineScript视图助手中引用的文件.

以下是我要采取的步骤:

  1. 循环遍历这些视图助手中的文件
  2. 列出本地文件
  3. 从视图助手中删除本地文件
  4. 将本地文件列表作为参数引用到服务器脚本,该脚本将它们组合为单个HTTP请求
  5. 将新的组合脚本引用添加到相应的视图助手

看起来Front Controller插件不会帮助我实现这个目标,原因如下:

  1. postDispatch() 在每个执行的控制器动作之后执行,我需要完整的样式表/ javascripts列表
  2. dispatchLoopShutdown() 在控制器动作循环之后执行,但此时已经呈现了布局

正如Rufinus建议的那样,我通过扩展View Helpers来解决这个问题. 从这个角度我的问题以及解决方案就在这里.

php zend-framework zend-view zend-layout

1
推荐指数
1
解决办法
2663
查看次数

zend paginator不包括CSS

我在我的应用程序中使用了zend paginator它的工作方式很好.但是当我点击任何链接时我的意思是任何分页它查询正确的信息但css没有应用于那里.最初当页面呈现所有的css正确应用但是当我刷新页面后点击任何分页css没有应用.我不知道wts正在进行?

这是做分页的动作

 public function controlpannelAction(){
      $data = Zend_Auth::getInstance()->getStorage()->read();  
      $user_id = $data->user_id;
      $registry = Zend_Registry::getInstance();  
      $DB = $registry['DB'];
      $sql = "SELECT * FROM `phone_service` WHERE user_id='".$user_id."'";
      $result = $DB->fetchAll($sql);
      $page=$this->_getParam('page',1);
      $paginator = Zend_Paginator::factory($result);
      $paginator->setItemCountPerPage(5);
      $paginator->setCurrentPageNumber($page);
      $this->view->paginator=$paginator;
   }
Run Code Online (Sandbox Code Playgroud)

这是我的视图名称controlpannel.phtml

<?php
include("header.phtml");
include("blue.phtml");
include("main1.phtml");
include("footer.phtml");
?>
Run Code Online (Sandbox Code Playgroud)

所有的CSS都在header.phtml.all中,css在header.phtml中,所以这里是header.phtml

  <link rel="stylesheet" href="../../../web_root/assets/scripts/jqueryui/jqueryui.css" type="text/css" media="screen" />
    <link rel="stylesheet" href="../../../web_root/assets/styles/style.css" type="text/css" media="screen" />
    <link rel="stylesheet" href="../../../web_root/assets/styles/global.css" type="text/css" media="screen" />
    <link rel="stylesheet" href="../../../web_root/assets/styles/config.css" type="text/css" media="screen" />
   .
   .
   .
   .
   and all other elements(body,divs)
Run Code Online (Sandbox Code Playgroud)

这是我的应用程序的结构,我的意思是路径

    appname
    ->application …
Run Code Online (Sandbox Code Playgroud)

zend-framework zend-paginator zend-layout

0
推荐指数
1
解决办法
454
查看次数