繁体   English   中英

在Drupal 7中将字段内容注入html.tpl.php

[英]Injecting field content to html.tpl.php in Drupal 7

我正在尝试制作一种内容类型,该内容类型可以根据您所在的页面使用不同的样式来重用jQuery画廊。

因此,我在其中放置了一个名为field_CSS的字段。 但是出于性能原因(并且为了清理代码),我想将其放在HEAD部分中。

开头部分的内容显示在html.php.tpl-filde中,并且该字段位于特定节点的内容类型中。

我试过<?php print render($content['field_CSS']) ?> <?php print render($page['field_CSS']) ?> <?php print $node->field_CSS[0]['view']; ?> <?php print render($content['field_CSS']) ?> <?php print render($page['field_CSS']) ?> <?php print $node->field_CSS[0]['view']; ?>和许多其他变体。 有谁知道该怎么写才能显示在html.tpl.php文件中?

该字段仅包含现在以内联代码形式打印的纯CSS。

编辑:Clive发布工作完美。 只是不要忘了修复主题,因此不要在css部分中获得div。

该节点通常在html.tpl.php中不可用,因此您需要在预处理功能中手动获取字段内容。 在主题的模板文件中放入以下内容:

function MYTHEME_preprocess_html(&$vars) {
  $node = menu_get_object();

  if ($node && isset($node->nid)) {
    $node = node_load($node->nid);

    node_build_content($node);

    $vars['extra_css'] = render($node->content['field_CSS']);
  } 
}

然后,您将在html.tpl.php中拥有变量$extra_css ,其中将包含您呈现的字段。 一旦实现了预处理功能,就需要刷新缓存,并用主题名称替换MYTHEME

希望有所帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM