🦄 2024 独立开发者训练营,一起创业!查看介绍 / 立即报名(剩余10个优惠名额) →

用 Drupal 创建更好的评分系统的具体步骤

用 Drupal 创建更好的评分系统的具体步骤

用 Drupal 创建更好的评分系统的具体步骤

在 “ 用 Drupal 创建更好的评分系统 ” 里说了可以使用 Drupal 创建更好的评分系统,不过没有说明具体步骤,这个文章里补上了。

为内容添加可以投票的小部件

  1. 安装 Rate 模块
  2. 结构 - Rate widgets
  3. 控件类型 选择 fivestar
  4. 输入标题,标签,值类型 选择 Percentage(百分比),节点类型选择你想添加投票功能的内容类型
  5. 保存

完成以后会在你选择的内容类型的下方出现一个五星投票的小部件,用不同的用户对内容进行投票。在设置五星类型的投票小部件时,你可以为每个星星指定对应的分数,默认如果用户选择五个星,相当于是 100 分,四个星是 75 分,三个星是 50 分,二个星是 25 分,一个星是 0 分。

为内容添加不同投票数的字段

下面我们要把不同投票数的投票人数,投票比例图示,附加到内容类型上,这一步我们要用到 Views 视图模块,还有 EVA 模块。用视图模块找出并计算出我们需要的数据,EVA 模块可以把视图附加到内容类型上 《 Drupal 7 字段 视图 关系  》这个课程里有关于视图和 EVA 模块的使用。

基本操作

  1. 创建视图
  2. 添加 EVA Field 类型的视图显示
  3. 修改 显示名称,比如 五星
  4. 在 Entity Content Settings 设置里
  5. 实体类型 选择 节点
  6. 捆绑 选择 你想把这个视图字段添加到的内容类型,也就是拥有投票功能的内容类型

这时打开视图附加到的内容类型,管理显示,你能看到一个类似:EVA: rate - 五星 这样的字段。rate 是我为视图起的名字,五星 是视图里的 EVA Field 类型的视图显示的名称。

动态过滤

为了让视图找到的结果与当前的内容相关,我们需要添加一个语境过滤器根据内容的 id 动态的过滤一下。

  1. 在视图显示的 高级 设置里
  2. 添加一个 语境过滤器,类型选择 内容:Nid
  3. 勾选 Provide default value(提供一个默认值),类型 选择 URL上的内容ID

添加关联

为了能在字段里添加与投票相关的字段,比如投票的人数,我们需要在视图中添加两个关联。

  1. 关联
  2. 添加关联,选择 内容: Votes
  3. 修改 标识符,改为 投票人 ,在 数据过滤 里,值类型 选择 百分比投票标签  选择 正常投票
  4. 再添加一个关联,选择 内容: Vote results
  5. 数据过滤 里,值类型 选择 百分比投票标签  选择 正常投票合计函数 选择 投票数

添加字段

我们要添加一个投票结果和投票的人这两个字段。

  1. 字段,添加,选择 投票结果: 值,字段里的 关联 选择 投票结果,默认应该就会选择这个关联。
  2. 字段,添加,选择 投票: 用户,字段里的 关联 选择 投票人,默认应该就会选择这个关联。

计算出个别票数的人数

前面添加的两个字段,一个可以显示当前内容的总票数,第二个可以显示所有投票人的 ID。这一步我们要算出个别票数的人数。

  1. 在视图的 其它 里,找到 Use aggregation ,选择 是。
  2. 点击 投票:用户 字段后面的 Aggregation settings
  3. 选择 次数
  4. 在视图的 过滤标准 里,添加,选择 投票: 值
  5. 关联 选择 投票人,操作符 选择 等于,值 输入 100 ,这样找到的结果是投五颗星的用户,因为五星的值是 100 分。

计算百分比

下面我们根据投票的总数与投个别票的人数来算出个别票的人数占总票数的百分比。

  1. 添加字段,选择 全局: 算术表示
  2. 在 表达 里,可以输入计算公式,在 替换匹配模式 里,可以找到代表投票总数与个别投票人数的占有位符,公式看起来像这样:([uid]/[value])*100

样式

根据得到的百分比,我们可以设计相应的样式,可以根据 bootstrap 的进度条来设计。在视图的 其它 里,你可以点击 主题 后面的 信息,来查看对应的主题信息。

Drupal

评论

加油!。。

又有新东西了。。。。。牛的!

皓哥,利用Views Dataviz Module这个模块可以创建更多形式的图表形式的列表。可以让评分系统显得更加专业。你可以把他加入你的教程试试

好来,非常感谢 :)

他就像excel里面的列表一样,对于不想和不会设计相应的样式的要轻松点

找WP的资料,无意中进了你的网站。。。相见恨晚的感觉涌上心头。懂设计的程序员才是最牛B的。行了,赞美的话我就不多说了。提一些意见。
1. 建议右边增加回到顶部的按钮。(不然真的不爽)
2. 建议增加个提问区。
3. 建议增加个留言板或者联系表单。
4. 不知道你会多少关于网页的东西,就当你什么都会吧。哈哈。
很期待出个【淘宝店铺装修的系列】— 不讲设计,讲技术上的东西(设计这玩意看个人的,技术是死的)
还有【移动客户端网站建设】— 就是手机、IPad什么的可访问网站 ,这以后是趋势,应该重点讲讲。
你用户体验做的这么好,不如出个【怎么让网站的用户体验更好】系列。— 通过案例讲解(比方说,一个优秀的企业网站的用户体验应该是什么样的,一个商城型网站用户体验又该是什么样的?或者一个生活服务类的网站又是什么样的等等)

*~最后问两个问题:
1. 我也是干设计的,没啥网站方面的基础,都没听说过Drupal,但是看了你的介绍,非常想学。我想做个像你现在这样的网站,我是说完全一样(当然用处不一样)。那么我现在开始订阅你的教程,然后认真学习,请问全看完后能做出来不?
2. 我最近打算用阿里云服务器,感觉你的网站速度很快。请问你用的是哪种型号的?

哇,布置了好多任务啊,呵呵。移动设备的网站以后会有课程。你可以做出跟宁皓网一样的网站。阿里云用的是自选配置,你可以先选个普遍的配置,不够用可以再升级。

王老师我想问一个关于drupal的问题,我用meta tags模块在首页查看源码不显示description与keywords描述,后来我查到是因为我在page-tpl.php里加一个判断,<?php if(!($is_front)) : ?>
<?php print render($page['content']); ?>
<?php endif; ?> 可是我又不想让内容直接显示在首页上。有什么好的方法没有。我看您这个站都已经实现了。

meta tags不显示,一般是由于你的drupal核心版本太低导致的,先升级你的drupal核心。然后如果还不现实,那么在你的page--front-tpl.php顶部加上这样一段代码:<?php print render($page['content']['metatags']); ?>

谢谢 浩哥!支持

如果有更多这样的小教程就太好啦!支持浩哥!^_^

网站的视频在windows phone下有问题。
具体表现:免费的试看视频可以直接播放,但是收费的视频却无法播放,希望可以浩哥能看下。
测试环境:wp8系统(lumia 820)

嘿嘿。要考虑的系统实在太多了。对了,你的 windows phone 可不可以安装一个 chrome 浏览器。

windows phone没有官方chrome,有一个第三方的浏览器挂着chrome的名字,但是据说不是chrome.....
其实,用wp自带的浏览器是可以读取到视频地址的,但是提示视频无法播放.....
奇怪的地方就是这里,因为每个教程中试看的视频是可以正常播放的,收费的视频同样可以找到视频地址但是提示视频无法播放(感觉像是解码的问题,试看和收费的视频编码不一样?)

皓哥,我最近看你drupal7主题那部分,我看到关于template.php的时候,不是很理解,你视频里也没有说,能简单的说一下吗?

好,以后出个视频专门讲这个。

微信好友

用微信扫描二维码,
加我好友。

微信公众号

用微信扫描二维码,
订阅宁皓网公众号。

240746680

用 QQ 扫描二维码,
加入宁皓网 QQ 群。

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点