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

Drupal 7 如何在第一段后的节点内插入/添加区域,drupal-7,drupal-theming,Drupal 7,Drupal Theming,我试图在节点内部插入一个块。问题是我希望它自动出现在第X段之后,最好是在第一段之后 AdSense注入模块(http://drupal.org/project/adsense_injector)非常有用,但它不是很灵活,因为您只能插入一个代码。因为我计划在不同的情况下插入不同的块,所以我想在第一段之后插入一个区域 有一个教程(www.werockyourweb.com/drupal在内容中间插入adsense广告)似乎对Drupal7不起作用 以下是视觉解释: <h1>Title&l

我试图在节点内部插入一个块。问题是我希望它自动出现在第X段之后,最好是在第一段之后

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

有一个教程(www.werockyourweb.com/drupal在内容中间插入adsense广告)似乎对Drupal7不起作用

以下是视觉解释:

<h1>Title</h1>
<p>Some text here</p>
<div>BLOCK INSIDE OF THE NEW REGION</div>
<p>Some text here</p>
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']);
?>

链接中的代码是:

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

看起来它应该可以工作,但我不明白为什么它为explode()提供了一个空白分隔符。如果在第一个参数设置为

”的情况下运行explode and Inclode会怎么样?

您是否使用了教程中标记为在drupal 7中工作的代码?如果是这样,当你使用它时会发生什么?解析错误:语法错误,第31行的…template.php中出现意外的$end。我可能把剩下的代码插错了。谢谢你的回答。我应该如何插入它?我在.info文件中添加了区域,它可以工作。您添加的代码应该嵌入函数THEMENAME_preprocess_节点中?你能写出确切的片段吗?您所说的“如果在第一个参数设置为“

”的情况下运行explode And Inclode会怎么样?”是什么意思?“$adblock是该区域的名称吗?”?因为我已经将“adblock”改为我的新区域的名称。我直接从您提供的链接复制了该代码,所以您应该完全按照它所说的去做。我建议的唯一更改是,您应该使用
内爆(

“,$array)
,而不是使用
内爆(“,$array)
,而不是使用
内爆(

”,$array)
,对于explode(),我已经根据您的建议更新了代码。现在没有任何错误,但仍然没有输出。你能在问题中查一下我的密码吗?我已经用所有代码更新了它。它正在尝试在节点文本中的第一个

链接之后插入广告文本。您正在使用的节点文本似乎没有任何链接,这可能是导致问题的原因。尝试输入一些真实的示例文本。
<?php
$array = explode("</p>", $body[0]['value']);
$array[1] = $ad. $array[1];
$content['body'] = implode("</p>", $array);
print render($content['body']);
?>
$array = explode("", $body[0]['value']);
$array[1] = $ad. $array[1];
$content['body'] = implode("", $array);
print render($content['body']);