【问题标题】:Drupal 7 Views - How to access unformatted $row variable in a custom template?Drupal 7 Views - 如何在自定义模板中访问未格式化的 $row 变量?
【发布时间】:2011-03-15 04:04:14
【问题描述】:

我刚刚为 Drupal 7 安装了 Views 模块,正在尝试了解如何自定义它。

到目前为止,我做了以下事情。

  1. 创建了内容类型指定的视图并将其命名为“videotest”。
  2. 创建了一个自定义主题为“views-view-list--videotest.tpl.php”
  3. 页面正常运行。

这是我使用的自定义模板代码(这是 Views 的默认模板):

<?php print $wrapper_prefix; ?>
  <?php if (!empty($title)) : ?>
    <h3><?php print $title; ?></h3>
  <?php endif; ?>
  <?php print $list_type_prefix; ?>
    <?php foreach ($rows as $id => $row): ?>
      <li class="<?php print $classes_array[$id]; ?>"><?php print $row; ?></li>
    <?php endforeach; ?>
  <?php print $list_type_suffix; ?>
<?php print $wrapper_suffix; ?>

如何防止视图为我格式化 $row? 我喜欢自己使用 foreach 格式化节点中的每个值。

我尝试使用未格式化的自定义模板将视图样式设置为“未格式化”,但它也为我设置了每个值的样式。

【问题讨论】:

    标签: drupal templates views


    【解决方案1】:

    您应该使用字段模板,而不是“显示”、“样式”或“行”。

    或者您可以在“行”模板中使用这两个字段。例如:

    print $fields['you_field_value']->raw;
    

    “you_field_value”的名称显示为视图显示字段列表中链接的一部分。

    【讨论】:

    • // 它有效,但这并不是我想要的。所以..看起来views.view-list.tpl.php正在使用views-view-fields.tpl.php来显示每个节点。是否可以在不使用 views-view-fields.tpl.php 的情况下从 views.view-list.tpl.php 访问原始值?
    • 嗯...我认为您可以使用 hook_preprocessor_views_view__MY_FIRST_VIEW(&$vars) 在drupal.org/node/303586阅读有关此内容
    【解决方案2】:

    或者获取字段的值:

    print $fields['field_pretitle_front']->content;
    

    【讨论】:

    • 我发现 $fields 未定义!我正在使用 drupal 7
    【解决方案3】:
    print $fields['your_field_value']->raw;
    

    对我不起作用,但以下对我来说是这样。

    $row->field_YOUR_FIELD[0]['rendered']['#markup'];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-25
      • 1970-01-01
      • 2016-08-22
      相关资源
      最近更新 更多