Drupal 7-检测render($ page ['content'])是否包含特定的内容类型

时间:2018-07-19 14:02:57

标签: php drupal

这里的Noob初中生很抱歉,如果这是基本操作并且无法完成。为了发展我的知识爱反馈,我会:)

让我们说我有一个基本页面:

1   <section>
2       <div class="container">
3           <?php print render($page['content']); ?>
4       </div>
5   </section>

在呈现的内容中,有一种名为“五十-五十”的内容类型,其输出:

<div class="fifty_fifty_banner">
    <div class="half">
        left
    </div>
    <div class="half">
        right
    </div>
</div>

我需要的是带有“五十五十”横幅的页面具有全宽度容器,而其他页面具有960px宽度容器。

在第一段代码中,我希望第2行包含if语句或一些检查,如果有的话,添加一个类,这可能吗?

编辑1:

在两页上尝试过if(array_key_exists())if(in_array()),一张带有和不带有五十五个横幅。

array_key_exists()在两个页面上都返回false。

if(in_array())在两个页面上均返回true

3 个答案:

答案 0 :(得分:0)

我想您可以在page.tpl.php文件中执行类似的操作,以为“灵活页面调查”内容类型添加一个类:

if ($variables['node']->type == 'content_type_machine_name' && isset($variables['node']->field_paragraph_name)) {
  ?>
  <div class="add-your-class-here">

  </div>
  <?php

}
?>

/ admin /结构/类型/管理/ content_type_machine_name /字段

这将是您的field_paragraph_name

enter image description here

答案 1 :(得分:0)

请勿在模板本身中进行任何条件工作。

hook_preprocess_page()的{​​{1}}中进行业务逻辑,如果内容类型具有您想要在即将呈现的渲染数组中使用的格式,则只需修改渲染块/ html的类

答案 2 :(得分:0)

最简单的方法是安装Context module。步骤如下:

1。)创建一个新上下文,并在“条件”下将节点类型设置为您的内容类型 enter image description here 2.)创建一个反应并将其设置为主题html,并给您的身体一个类 enter image description here 3.)根据body标签上所述类的样式来设置CSS。