Drupal 7 开发内部培训资料, 分头诗人

是decision模块,theme_decisions_bar()怎样更换class成id?

赞成!
0
否决!
<div class="poll">
<div class="text">ipad</div>
<div class="bar">
<div class="percent">67% (2 votes)</div>
<div class="text">apple</div>
<div class="bar">
<div class="percent">67% (2 votes)</div>
<div class="text">galaxy</div>
</div>

要怎样加id给text class,如text-1,text-2, text3
 

<div class="poll">
<div id="text-1">ipad</div>
<div class="bar">
<div class="percent">67% (2 votes)</div>
<div id="text-2">apple</div>
<div class="bar">
<div id="percent">67% (2 votes)</div>
<div id="text-3">galaxy</div>
</div>

 

/**
 * Theme stub for a decisions bar.
 */
function theme_decisions_bar($title, $vote, $total_votes, $max_votes) {
  $output = '<div class="text">'. $title .'</div>';
  $output .= '<div class="bar"><div style="width: '. round(100 * $vote / $max_votes, 0) .'%;" class="foreground"></div></div>';
  $output .= '<div class="percent">'. round(100 * $vote / $total_votes, 0) .'% ('. format_plural($vote, '1 vote', '@count votes') .')</div>';
  return $output;
}

如果直接更改<div class="text">成<div id="text">,就会全部是id=text,
要怎样变成根据次序成为text-1,text-2,text-3?

4 个回答

赞成!
0
否决!

大哥,问题能详细点吗?没头没尾的,起码也得让人知道,你这段代码,是什么模块生成的啊。。。

如果是代码生成的,看看他是否提供重写机制,如果没有,就直接在模块下面全文搜索,然后直接修改,只能这样。但修改后,就不能更新此模块了。所以要知道,这个模块是否有必要要改他的div结构。

赞成!
0
否决!

是decision模块,

/**
 * Theme stub for a decisions bar.
 */
function theme_decisions_bar($title, $vote, $total_votes, $max_votes) {
  $output = '<div class="text">'. $title .'</div>';
  $output .= '<div class="bar"><div style="width: '. round(100 * $vote / $max_votes, 0) .'%;" class="foreground"></div></div>';
  $output .= '<div class="percent">'. round(100 * $vote / $total_votes, 0) .'% ('. format_plural($vote, '1 vote', '@count votes') .')</div>';
  return $output;
}


如果直接更改<div class="text">成<div id="text">,就会全部是id=text,
要怎样变成根据次序成为text-1,text-2,text-3?

赞成!
0
否决!

修正了你的问题内容。

theme_ 开头的函数,是可以复写的。

换句话说,你不需要改模块,只需要把theme_decisions_bar函数放到你当前模板下的template.php 文件里面,并且改名为yourthemename_decisions_bar()

但你这函数,没有一个 递增的变量,比较难去增加一个id

类似$output = '<div class="text-'.$yid.'">'. $title .'</div>';

我的话可能重写这个模块,增加一个custom function进去

赞成!
0
否决!

谢谢。