gpt4 book ai didi

php - Drupal 五星级模块,根据变量值动态更改 star.gif 图像

转载 作者:行者123 更新时间:2023-11-28 18:33:38 26 4
gpt4 key购买 nike

我们希望在我们的冲浪报告中包含为冲浪条件提供 5 星评级的功能(使用 http://drupal.org/project/fivestar 模块)。我们遇到的问题是风力条件可能不利,因此尽管报告给了 5 颗星,但如果风向错误,我们需要能够说明这一点。我们想添加名为“Wind Rating”的节点字段,其值为 A 或 B。如果风向良好,我们将值设置为 A 并坚持使用当前的 star.gif 文件。如果风力条件不利,我们会将值设置为 B 并希望将 star.gif 切换为 starb.gif(这将是一个褪色版本)。

使用 Drupal 7 和五星级模块实现这一目标的最佳方法是什么?

5 star surf reports

最佳答案

嗯,这是一个艰难的过程。让我试试。

首先:要创建您自己的小部件,您可以按照 http://www.drupalace.com/drupal_tutorial_make_custom_fivestar_graphics 中的步骤操作.从标题 Make me a star! 开始阅读

现在您已经知道如何创建自定义小部件,让我们专注于如何使其动态化。使用哪个星图由widgets文件夹下的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 中破解模块是一种亵渎,所以正确的步骤是

  1. 将函数 fivestar_element_info 复制到您的自定义模块并适当命名。
  2. 换行'#process' => array('fivestar_expand') , 至 '#process' => array('fivestar_expand_custom'),
  3. 将 fivestar_expand_custom 复制到您的自定义模块并进行前面提到的更改。

在 Drupal 中以正确的方式进行操作有时会非常困难。但是我没有找到更好的解决方案。我希望有一个。

关于php - Drupal 五星级模块,根据变量值动态更改 star.gif 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13520926/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com