Drupal Block Title跨越每个单词

时间:2015-03-11 16:01:56

标签: php html css drupal

希望在块标题中的每个单词周围添加span标记。我需要在标题中最后两个单词是一个更大的字体,也是一个不同的颜色。

2 个答案:

答案 0 :(得分:1)

function MYTHEME_preprocess_block(&$variables) {
  $block = $variables['block'];
  if ($block->subject) {
    $words = explode(' ', $block->subject);
      $words[0] = '<span>' . $words[0] . '</span>';
      $words[0] = '<span>' . $words[0] . '</span>';
      $words[1] = '<span>' . $words[1] . '</span>';
      $words[2] = '<span>' . $words[2] . '</span>';
      $words[3] = '<span>' . $words[3] . '</span>';
      $words[4] = '<span>' . $words[4] . '</span>';
    $block->subject = implode(' ', $words);
  }
}

在我的问题中在template.php中找到它,但是使用循环可能有一个更漂亮的实现。

答案 1 :(得分:1)

使用循环获取ThroneDigital的答案:

$newWords = array();
foreach(explode(' ', $block->subject) as $word) {
    $newWords[] = '<span>' . $word . '</span>';
}
$block->subject = implode(' ', $newWords);

您也可以使用array_map()函数,但这需要您创建一个新函数,对于这么少的文本,它是不值得的。