如何在第一段之后在节点内插入/添加区域

时间:2012-10-03 16:35:38

标签: drupal-7 drupal-theming

我正在尝试在节点内插入一个块。问题是我希望它在段落X后自动显示,最好是在第一段之后。

AdSense Injector模块(http://drupal.org/project/adsense_injector)非常有用,但它不是很灵活,因为您只能插入一个代码。由于我计划在不同的情况下插入不同的块,我想在第一段之后插入一个区域。

有一个教程(www.werockyourweb.com/drupal-insert-adsense-ads-into-middle-of-content)似乎对Drupal 7不起作用。

以下是视觉说明:

<h1>Title</h1>
<p>Some text here</p>
<div>BLOCK INSIDE OF THE NEW REGION</div>
<p>Some text here</p>

有人可以提供一些指导吗?

编辑:

以下是我正在使用的代码。

区号:

<h2>Is this working?</h2>

.info文件:

regions[testing] = 'Testing'

的template.php

function THEMENAME_preprocess_node(&$variables) {

//load your adblock
$testing = block_load('block', '1');
$output .= drupal_render(_block_get_renderable_array(_block_render_blocks(array($testing))));
$variables['ad'] = $output; 
}

Node.tpl.php

<?php
$array = explode("</p>", $body[0]['value']);
$array[1] = $ad. $array[1];
$content['body'] = implode("</p>", $array);
print render($content['body']);
?>

1 个答案:

答案 0 :(得分:1)

您链接中的代码是:

$array = explode("", $body[0]['value']);
$array[1] = $ad. $array[1];
$content['body'] = implode("", $array);
print render($content['body']);

看起来它应该可以工作,除了我无法弄清楚为什么它为explode()提供空白分隔符。如果您在第一个参数设置为"</p>"时运行爆炸和内爆怎么办?