我的内容类型包含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循环来设置字段模板文件,但我无法弄清楚我应该做什么。
谢谢:)
答案 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;
}