我正在尝试在节点内插入一个块。问题是我希望它在段落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']);
?>
答案 0 :(得分:1)
您链接中的代码是:
$array = explode("", $body[0]['value']);
$array[1] = $ad. $array[1];
$content['body'] = implode("", $array);
print render($content['body']);
看起来它应该可以工作,除了我无法弄清楚为什么它为explode()提供空白分隔符。如果您在第一个参数设置为"</p>"
时运行爆炸和内爆怎么办?