在 3 6 比 9 个节点之后渲染一个块

Render a block after 3 6 than 9 nodes

我正在使用 Drupal 7 网站。我在其中有一个页面 "Client stories",该页面是使用显示节点预告视图的视图模块创建的。

现在的要求是我必须在这个页面上多次显示一个块。第一个在 3 个节点之后,然后在 6 个节点之后,然后在 9 个节点之后,依此类推。我想了很多逻辑但失败了。

任何人都知道我怎样才能做到这一点?我也看过 google 但结果是空的。

认为最简单的方法是覆盖视图 tpl(样式之一),并在那里添加逻辑,而不是滚动渲染所有 "rows",而是在每 3 个节点后输出块。

未经测试,但这似乎是您要查找的内容: https://github.com/pedroposada/custom_views_nthrow 这是一个用于视图的 Drupal 7 模块,完全可以满足您的需求。

如果你想自己做,这里有一步一步的解决方法,真的很简单! http://www.jasom.net/how-to-add-custom-code-adsense-after-first-row-in-drupal-7-and-drupal-8-views-one-line-solution

为您的视图创建自定义 .tpl 并使用此代码:

    <?php if (!empty($title)): ?>
  <h3><?php print $title; ?></h3>
<?php endif; ?>
<?php foreach ($rows as $id => $row): ?>
  <div<?php if ($classes_array[$id]) { print ' class="' . $classes_array[$id] .'"';  } ?>>
    <?php print $row; ?>
  </div>
  <?php if ($id == 0 || $id == 5): ?>My custom code after first and sixth row in Drupal views<?php endif; ?>
<?php endforeach; ?>

将 $id 数字更改为 2,5 和 8。