You are here

panels的问题

xmxiaxmxia 的头像
Submitted by xmxiaxmxia on 星期日, 2013-01-13 11:55

您好:

又有一个问题要打扰您:

看您写的书的第2集中的第196页中上的页面,有以下疑问想请您指导一下:

一,在第1步中,您说把plugins[panels][layouts] = layouts前的注释去掉了,在第二步中,添加一个叫

“layouts”的子目录。那么,这个的第1步中等号右边的“layouts”与添加一个叫“layouts”的子目录

,这个的“layouts”是对应该关系吗?

二,把这里的plugins[panels][layouts] = layouts前的注释去掉了后,bookstore上面的regions

[header]         = Header这些区块注册的语句要注释掉吗?info文件中注册的区块与inc中的区块他们

是什么关系?

三,完成了上面的工作后。在第196页第6步中的inc文件中的'title' => t('Front'),是不是就是第200页

中下面图那个选择分类columns:2中的布局叫“front”名称的布局?还是这里的文件夹的名称是一个布局

,就是说一个文件夹一个布局?还是说在一个文件夹中定义多个inc文件,就是多个布局,和所在的文件夹

没关系,drupal系统会遍历这个templates目录下,把所有的inc文件看做一个Panels布局?
四,最后还是具体的开发流程,看看我理解的对不:比如一个项目中有两个栏目,一个叫公司新闻(定义

为news1),一个叫员工新闻(定义为news2),这两个栏目页面的布局与样式是不一样的。那是不是在

panels中先建两个页面,分别为news1和news2。然后分别定义这两个栏目页面的模板,模板文件是'theme'

=> 'panels_front',这个inc里的语句定义,自己写这两个模板就行。对于这两个栏目页面中的新闻列表再

覆写views模块的模板。如果这两个栏目的内容页面的样式不一样,那就分别定义node--news1.tpl.php和

node--news2.tpl.php。是这样吗?
五,在第196页第6步中的 'top' => t('Top'),这个top区块,其实就是个名称吧?还不是top就是一定在上

边吧?比如第四个问题中,我在这个公司新闻的栏目页的布局中定义一个叫newsList的区块,在views模板

中做一个公司新闻的列表的区块放到这个叫newsList的区块中。是这样吗?如果我在那个员工新闻的页面

的布局再定义一个叫newsList的区块,有冲突吗?
谢谢了。我做到了第200页面,但是怎么都看不到自己定义的layout。好奇怪。

论坛:

Drupal版本:

g089h515r806 的头像

1,两者是对应关系

2,Panels本质上只负责content部分的输出,在实际的Drupal项目中,我经常把左边栏、内容、右边栏,交给Panels管理,Drupal核心的主题系统管理上中下三个区域。所以这里的
regions[header] = Header
不需要注释掉。
Drupal核心有区域这个概念,Panels本身也有区域这个概念,两者是不同的。Panels里面的所有内容,都是通过Drupal核心content区域输出的。Panels本身的区域,这种方式,比Drupal核心主题的区域,要灵活很多。两者之间,既有共同的地方,也有不同的地方。

3,'title' => t('Front'), 和后面的front布局,存在对应关系。Panels的layouts下面,一个文件夹,对应一个布局,里面包含一个inc文件。至于是否能够一个文件夹下面,包含多个inc文件,我没有测试过。Panels应该会变量layouts下面的所有文件夹,从里面寻找inc文件。

4,你的理解大部分都是对的,“如果这两个栏目的内容页面的样式不一样,那就分别定义node--news1.tpl.php和node--news2.tpl.php。”这里的模板建议的名字可能不对,具体情况,使用对应的模板文件进行覆写。

5,就是一个名字,不一定放在上面。是这样的,没有冲突。

6,Panels布局不起作用的话,可以多次清除缓存。最好拿一个现成的Panels布局进行修改。