跳转到主要内容
子曰 提交于 18 April 2014

ping_mu_kuai_zhao_2014-04-18_shang_wu_11.43.59.png

 

所需要模块:OG,page manager,views,views content panes

比如我们要做一个视频教学网站

我们的思路是:og小组作为一套视频;og小组内容作为一个视频。

1.创建一个课程内容类型

ping_mu_kuai_zhao_2014-04-18_shang_wu_11.52.17.png

 

这里需要注意的是小组设置里设置成“组”

 

2.创建视频内容类型

ping_mu_kuai_zhao_2014-04-18_shang_wu_11.55.58.png

 

注意小组这里选择“group content”也就是小组内容,Target bundles为空不选择

 

ping_mu_kuai_zhao_2014-04-18_shang_wu_11.58.05.png

 

视频播放字段可以选择jw player 这个模块在实用过程中有点问题,需要自行改动模块才能正常播放,我这里也遇到一些问题还没有解决,或者你可以创建一个长文本,长文本可以填写优酷或者一些视频云的代码,来播放。

 

3.自行创建一个课程和几个视频内容作为测试用

4.创建views视频列表:

OG CONENT PANE 用content pane 创建列表

ping_mu_kuai_zhao_2014-04-18_xia_wu_12.06.12.png

 

RELATIONSHIPS 里添加OG membership: OG membership from 节点

CONTEXTUAL FILTERS 里添加(OG membership from node) OG membership: 群组ID

注意设置

 

ping_mu_kuai_zhao_2014-04-18_xia_wu_12.09.39.png

 

字段和筛选可以参考上面的图进行选择,这样一个views 就创建好了

 

5.创建page manager,我们来自定义课程,和视频两个内容类型页面

在admin/structure/pages地址里有个/node/%node的一行,选择启用编辑

创建Add variant把标题定为course panel 我们来自定义课程这个内容类型页面

ping_mu_kuai_zhao_2014-04-18_xia_wu_12.19.31.png

Selection rules这一步添加“OG: Node is an OG group”;Node: type选择课程

ping_mu_kuai_zhao_2014-04-18_xia_wu_12.20.10.png

 

这里的String: URL path可以不用管他,这个是我的另外一个需求,比如学习小组的成员。(og有很高的扩展性,只要你的一个点子,你都可以加到小组里,我们只要把基础的弄懂,你都可以举一反3)

下一步

Contexts

ping_mu_kuai_zhao_2014-04-18_xia_wu_12.25.47.png

 

RELATIONSHIPS 添加 OG group from node

下一步

Layout:选择一个

ping_mu_kuai_zhao_2014-04-18_xia_wu_12.23.34.png

我这里用的是omega的,你可以选择 默认panels的布局 也有类似的

 

下一步内容

ping_mu_kuai_zhao_2014-04-18_xia_wu_12.27.20.png

 

主要是添加你之前创建的views列表,也就是视频播放列表,顶部 我们可以做封面sildeshow

然后保存

 

6.重新定义视频页面

我们把标题写成video panel

ping_mu_kuai_zhao_2014-04-18_xia_wu_12.30.41.png

 

Selection rules

ping_mu_kuai_zhao_2014-04-18_xia_wu_12.31.43.png

 

CONTEXTS 不需要添加

Layout选择同样的

下一步内容

ping_mu_kuai_zhao_2014-04-18_xia_wu_12.33.27.png

除了左边的视频列表,就是添加一些视频的其他字段,比如顶部的播放字段,右边的相关字段。

 

这样我们的视频列表也就创建完成了

og 自身有查看权限的设定

admin/config/group/permissions/node/course

设置字段不是成员页能查看

 

 

7.conent access 设定播放权限

我们可以设定两个用户组,1普通用户组 2vip用户组

vip可以查看所有的视频,而普通用户组只能查看指定的视频

admin/structure/types/manage/video/access

在内容类型里设置

ping_mu_kuai_zhao_2014-04-18_xia_wu_12.38.52.png

 

勾选 Enable per content node access control settings 这个选项的意思是每个内容都可以设定权限查看

然后打开你之前创建的视频文章 选择其中一个编辑权限

ping_mu_kuai_zhao_2014-04-18_xia_wu_12.40.31.png

 

这样就只有vip 用户才能查看

 

但是这里有个问题 没有权限查看的文章 views 也不能输出

所以我们要在views 里做一些设定

views 右下角找到 Query settings 

ping_mu_kuai_zhao_2014-04-18_xia_wu_12.43.32.png

 

勾选 Disable SQL rewriting

这样所以内容都可以输出

8.把没有权限的内容跳转到另外一个页面

我们利用views 页面定制的功能

定制视频列表页

这里我们需要做一个判断,能查看文章的正常打开内容页面,不能查看的用户跳转到另外一个页面

views里有个Theme:Information

ping_mu_kuai_zhao_2014-04-18_xia_wu_12.47.59.png

 

这里的views-view-field--OG-content-pane--panel-pane-35--title.tpl.php是加粗的

说明这个tpl是被实用的 我这里是已经创建好了,

你可以创建你自己的那个tpl,到你的模版下

screen_shot_2014-04-18_at_xia_wu_12.52.16.png

 

代码如下

?> <?php  //print var_dump($row->nid); $node = node_load($row->nid); if (node_access('view', $node)): ?> <?php print $output; ?> <?php else: ?> <a href="/自定义页面.htm"><?php print $row->{$view->field['title']->field_alias};?></a> <?php endif; ?>

这样我们的视频列表就及所有功能就全部完成了 

展示页:http://www.caame.com/video/22356

视频真正拍摄中,上面的视频只是测试用的

 

感谢:宁浩网(ninghao.net)王皓,猪跑啦(drupalla.com)分头诗人,水滴之声(drupalnews.cn)希望之翼 的帮助

 

Drupal 版本