【问题标题】:How to insert/add region inside of a node after first paragraph如何在第一段之后在节点内插入/添加区域
【发布时间】:2023-03-04 16:30:01
【问题描述】:

我正在尝试在节点内插入一个块。问题是我希望它在第 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'

模板.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']);
?>

【问题讨论】:

  • 您是否使用教程中标记为在 drupal 7 中工作的代码?如果是这样,当你使用它时会发生什么? “不起作用”对于故障排除不是很有帮助。
  • 解析错误:语法错误,第 31 行的 ...template.php 中出现意外 $end。我可能将其余代码插入错误。

标签: drupal-7 drupal-theming


【解决方案1】:

链接中的代码是:

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

看起来它应该可以工作,但我不明白为什么它为 explode() 提供空白分隔符。如果你在第一个参数设置为"&lt;/p&gt;" 的情况下运行explode 和implode 会怎样?

【讨论】:

  • 感谢您的回答。我应该如何插入它?我在 .info 文件中添加了该区域,它可以工作。您添加的这段代码应该嵌入到函数 THEMENAME_preprocess_node 中?你能写出确切的sn-p吗? “如果您在第一个参数设置为“”的情况下运行爆炸和内爆会怎样?”
  • $adblock 是区域名称吗?因为我已将“adblock”更改为我的新区域的名称。
  • 我直接从您提供的链接中复制了该代码,因此您应该尝试完全按照它所说的去做。我建议的唯一更改是,您应该使用 implode("&lt;/p&gt;", $array),而不是 implode("", $array)(这甚至不是有效的语法并产生错误),并且对于 explode() 也是如此。
  • 我已根据您的建议更新了代码。现在没有任何错误,但仍然没有输出。你能检查我在问题中的代码吗?我已经用所有代码更新了它。
  • 它试图在您的节点文本中的第一个 &lt;/p&gt; 链接之后插入广告文本。看起来您正在使用的节点文本没有任何 &lt;/p&gt; 链接,这可能是导致问题的原因。尝试输入一些真实的示例文本。
猜你喜欢
  • 1970-01-01
  • 2021-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多