我是 drupal 的新手,我正在尝试弄清楚如何主题 View 。我目前有一个名为“类别”的内容类型,其中包含以下字段:标题、图像和正文。我为上述内容类型创建了一个 View ,以便列出我创建的所有类别的 View 。 为了自定义主题 View ,我在主题文件夹中创建了一个名为 views 的文件夹,并创建了以下 View 文件:
- views-view-fields--plugin-categories.tpl.php
- views-view--plugin-categories.tpl.php
- views-view-unformatted--plugin-categories.tpl.php
这是我当前在第一个文件中的内容:
<div class="<?php print $classes; ?>">
<?php if ($rows): ?>
<div class="view-content">
<?php print $rows; ?>
</div>
<?php elseif ($empty): ?>
<div class="view-empty">
<?php print $empty; ?>
</div>
<?php endif; ?>
<?php if ($more): ?>
<?php print $more; ?>
<?php endif; ?>
</div><?php /* class view */ ?>
我厌倦了使用 print $field['image'] 和 print $field['body'] 而不是 $rows,但这种方法似乎确实有效。您能否建议我如何主题化类别内的三个字段,并使用 View 显示?
最佳答案
你应该这样命名你的模板
views-view-fields--<machine-name-of-your-view>.tpl.php
所以我从上面假设您的 View 称为“插件类别”。一种简单的检查方法是在编辑页面上编辑 View 并查看 URL。它的格式应为 /admin/struct/views/view/YOUR-VIEW'S-MACHINE-NAME/edit,以便您可以从那里获取它。
一旦您确定其名称正确,请清除缓存以确保 Drupal 能够选择您的新模板。您只需要上面的一个,而不是全部三个来修改相关三个字段的输出。
清除缓存后,Drupal 应该会选取新模板。您没有具体提到什么不起作用,只是说它不起作用,所以我想介绍命名和缓存,以防万一。现在,要在此 View 模板中输出特定字段,请像这样调用它们:
$fields['your-field-machine-name']
所以 $fields['body'] (我认为你缺少一个 's')
此模板中不应包含有关 $rows 的任何内容!如果您有任何有关 $rows 的信息,则说明您没有从正确的 View 模板中复制并粘贴。只需按照您希望它们出现在您的 View 中的方式输出字段,按照您想要的任何顺序使用上面的语法,然后放入您想要的任何 css 类等。
请告诉我们这是否有效!
关于themes - 如何在 Drupal 7 中手动设置 View 主题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15498918/