更改Fivestar模块中的一些文本

时间:2012-10-10 15:19:49

标签: drupal drupal-6 drupal-modules

我正在使用Drupal 6中的Fivestar模块...... http://drupal.org/project/fivestar

而且,我想更改文字:

来自:Average: *****

To This:Rate this Article: *****

我宁愿不破解使用字符串覆盖的模块,我希望在template.php文件中使用hook_form_alter函数或类似的东西。

以下是HTML的样子:

<form action="/fall-foliage"  accept-charset="UTF-8" method="post" id="fivestar-form-node-232" class="fivestar-widget"><div>
<div class="fivestar-form-vote-232 clear-block"><input type="hidden" name="content_type" id="edit-content-type" value="node"  />
<input type="hidden" name="content_id" id="edit-content-id" value="232"  /><div class="fivestar-form-item  fivestar-average-stars fivestar-labels-hover">
<div class="form-item" id="edit-vote-wrapper">
<label for="edit-vote">Average: </label>
...etc...

fivestar.module中的代码如下所示:

function theme_fivestar_summary($user_rating, $average_rating, $votes, $stars = 5, $feedback = TRUE) {
  $output = '';
  $div_class = '';
  if (isset($user_rating)) {
    $div_class = isset($votes) ? 'user-count' : 'user';
    $user_stars = round(($user_rating * $stars) / 100, 1);
    $output .= '<span class="user-rating">'. t('Your rating: <span>!stars</span>', array('!stars' => $user_rating ? $user_stars : t('None'))) .'</span>';
  }
  if (isset($user_rating) && isset($average_rating)) {
    $output .= ' ';
  }
  if (isset($average_rating)) {
    $div_class = isset($votes) ? 'average-count' : 'average';
    $average_stars = round(($average_rating * $stars) / 100, 1);
    $output .= '<span class="average-rating">'. t('Average: <span>!stars</span>', array('!stars' => $average_stars)) .'</span>';
  }

1 个答案:

答案 0 :(得分:0)

在fivestar.module文件中搜索“Average”而不是“average”并且可以根据您的明智情况进行更改,但不建议更改核心模块文件(每当您更新模块时,更改都会恢复)。

请创建自定义模块并实施hook_form_alter

实施例: 函数 YourModuleName _form_alter(&amp; $ form,$ form_state,$ form_id)

打印$表格并搜索“平均”

将$ form [xyz] [xyz] ='Average'更改为$ form [xyz] [xyz] ='评价此文章'

如果不是表单,请使用hook_nodeapi