我们希望我们的冲浪报告能够为冲浪条件提供5星评级(使用http://drupal.org/project/fivestar模块)。我们遇到的问题是风力条件可能不是很有利,因此虽然报告给出了5颗星,但如果风是错误的方式,我们需要能够说明这一点。我们想要添加名为" Wind Rating"的节点字段。它的值为A或B.如果风是有利的,我们将值设置为A并坚持使用当前的star.gif文件。如果它不是有利的风条件,我们将值设置为B并想要将star.gif切换为starb.gif(这将是一个褪色版本)。
使用Drupal 7和Five Star模块实现此目的的最佳方法是什么?
答案 0 :(得分:1)
那是一个艰难的。让我试试。
首先:要创建自己的小部件,您可以按照http://www.drupalace.com/drupal_tutorial_make_custom_fivestar_graphics中的步骤操作。从标题Make me a star!
现在您已经知道如何创建自定义窗口小部件,让我们专注于如何使其动态化。要使用的星形图像由窗口小部件文件夹中css文件中的样式规则决定。因此,为了获得动态图像,我们需要根据条件为输出添加一个额外的类。
当我检查代码以查看添加类的位置时,我发现在line 582
fivestar.module
fivestar_expand
上添加了特定于小部件的类
$class[] = 'fivestar-' . $element['#widget']['name'];
在此行之后,您可以添加
if (my_condition_is_met) {
$class[] = 'fivestar-' . $element['#widget']['name'] . 'special-case';
}
现在,您可以编辑css文件,为您要显示的图像添加此特殊情况的规则(不要忘记添加自定义图像),您就完成了。
持有: 它在Drupal中亵渎一个模块,所以正确的步骤将是
'#process' => array('fivestar_expand')
更改为'#process' => array('fivestar_expand_custom'),
在Drupal中以正确的方式执行此操作有时可能非常困难。但我没有找到更好的解决方案。我希望有一个。