主题Drupal分组了多个领域

时间:2010-11-17 13:45:02

标签: drupal drupal-6 drupal-views

我的内容类型包含4张图片。

在我的视图中,它们被分组(组多个值)。

我想将每张图片放在一个单独的li中,例如:

<ul class="list">                                    
<li><img src="/images/image1.jpg"/></li>
<li><img src="/images/image2.jpg"/></li>
<li><img src="/images/image3.jpg"/></li>
<li><img src="/images/image4.jpg"/></li>
</ul>

我如何实现这一目标?我假设我需要使用foreach循环来设置字段模板文件,但我无法弄清楚我应该做什么。

谢谢:)

4 个答案:

答案 0 :(得分:1)

发布的链接Ran似乎是如何查找视图模板的精彩演练。主观视图与其他任何内容没有多大区别,唯一棘手的部分是确定要覆盖哪个模板以及调用它。此信息可在主题信息下的视图UI中找到。

无论如何,一旦你开始(记得清除缓存以使Drupal使用你的新模板),很难找出你可用的变量等,以便按照你想要的方式自定义视图。这随着时间的推移变得更容易,但我通常使用的策略是devel模块以及dpm()。这样可以为您打印变量,并且可以更轻松地查看需要更改的内容/方式以获得所需的标记。还记得准备好视图模板中的注释,它有很好的文档说明它可以为你提供哪些变量。

答案 1 :(得分:0)

使用查看主题来做到这一点。这将是非常容易的事情,但它需要你一点点编码(不是那么多)。

这是一个很好的入门指南:http://www.appnovation.com/theming-views-drupal-6-simple-way

答案 2 :(得分:0)

伙计们,感谢你们的帮助,你们把我推向了正确的方向。

我通过覆盖我的template.php中名为theme_content_view_multiple_field的函数来解决这个问题。

function MYTHEME_content_view_multiple_field($items, $field, $values) {
  $output = '';
  $i = 0;
  foreach ($items as $item) {
    if (!empty($item) || $item == '0') {
      $output .= '<li class="test field-item field-item-'. $i .'">'. $item .'</li>';
      $i++;
    }
  }
  return $output;
}

最终我会对其进行编辑,使其仅影响此特定字段(例如http://drupal.org/node/556232

干杯:)

答案 3 :(得分:0)

谢谢汤姆!这就像Drupal 6的魅力一样。这里有一些额外的行保留默认标记(DIV)并更改为特定字段的LI,其中FIELDNAME是CCK字段的计算机名称。

function MYTHEMENAME_content_view_multiple_field($items, $field, $values)
{
  $tag = 'div';
  if($field['field_name']=='FIELDNAME')
  {
    $tag = 'li';
  }
    $i = 0;
    foreach ($items as $item)
    {
      if(!empty($item) || $item == '0')
        {
          $output .= '<'.$tag.' class="item_'. $i .'">'. $item .'</'.$tag.'>';
          $i++;
        }
    }
    return $output;
}