【问题标题】:Drupal 7 : Themeing nodes when using node_load_mulltipleDrupal 7:使用节点加载多个时的主题节点
【发布时间】:2023-03-20 16:34:01
【问题描述】:

我正在加载 10 个不同内容类型的节点,我需要为每个节点设置不同的样式。

当前的html输出:

<article id="node-2293" class="node node-postit node-promoted contextual-links-region      
node-even clearfix" typeof="sioc:Item foaf:Document" about="/en/number-6-jan-22">
<header class="node-header">
<div class="node-content content"> </div>
<footer class="node-footer">
</article>

问题是 node_load_multiple() 或 node_view_multiple() 根据每个节点的 nid 给每个节点的文章一个 id。我想将每个节点分配或封装在我自己的 div 和我自己的 id 中,以便我可以为它们中的每一个设置样式。

我的模块代码:

if ($nodes = node_load_multiple($customvishalnodestoshow)) {
$build['nodes'] = node_view_multiple($nodes, 'full');
}

我该如何实现?

干杯, 维沙尔

【问题讨论】:

  • 您尝试以什么逻辑为它们设置主题? IE,您是否有多种节点类型并试图以不同的方式对每种类型进行主题化?你是在随意添加不同的主题吗?

标签: drupal drupal-7 drupal-modules


【解决方案1】:

如果您只是想以不同的方式为不同的节点类型设置主题,这就是主题文件夹中的 node.tpl.php 的用途。您可以复制现有的 node.tpl.php 并为每种节点类型创建一个并在那里编写自定义 HTML。

例如,如果您有名为“book”、“story”和“blog”的节点类型,请创建以下模板文件:

  • node--book.tpl.php
  • node--story.tpl.php
  • 节点--blog.tpl.php

【讨论】:

  • 嗨,我在同一页面上加载了 10 个不同类型的节点。不是每个节点都在单独的页面上。所以 node-book.tpl.php 不起作用。
  • 每页渲染一个还是多个都没有关系。如果您在此处跟踪 API (api.drupal.org/api/drupal/modules--node--node.module/function/…),您将看到 node_view_multiple 调用 node_view,它与 node.tpl.php 系统挂钩。都是一样的过程。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多