使用 php 在给定 php 字符串的特定段落上插入自定义 html/javascript 代码

Insert custom html/javascript code on specific paragraph from a given php string using php

我有一个 Joomla!网站,我需要制作文章 default.php 文件以在特定标签(例如:第二个

或第三)文章html代码.

简而言之,我有标准的 php 文章文本调用:

<div itemprop="articleBody">
    <?php echo $this->item->text; ?>
</div>

我想使用 make 一个变量,我们称它为 $basic_article,它将填充 $this->item->text;

我想创建一个函数来计算 $basic_article 中的段落数并插入呈现的 Joomla!模块位置甚至自定义 html 代码在字符串的第二、第三或 x 段之前或之后,然后重新包装字符串并打印或回显它。

请帮帮我!任何建议都欢迎。

我通过在设置的段落之间输入模块位置来完成广告块。然后您可以指定哪些页面上是否有自定义代码(即在模块中)。您可以使用它并根据您的需要进行定制。

这里是将模块放在第 1 段和第 2 段之间的示例。您将用此

替换您的代码

<div itemprop="articleBody">
<?php
  $needle = "</p>";
  $length = strlen($needle);

  $this_article = $this->item->text;
  $pos1 = strpos($this_article, $needle);
  $pos2 = ($pos1!== 0 && strpos($this_article, $needle, $pos1 + $length)) ? strpos($this_article, $needle, $pos1 + $length): 0;

 $first_para = substr($this_article,0,$pos2);
 $rest_para = substr($this_article,$pos2 + $length); 
    echo $first_para;
    echo JHtml::_('content.prepare', '{loadposition inline-zone}'); 
    echo $rest_para;
?>  
</div>

您想在 /templates/MY_TEMPLATE_NAME/html/com_content/article/default.php 中的模板覆盖中执行此操作

或自定义文章布局并将其放入 /components/com_content/views/article/tmpl/ 中。例如,我复制了default.php和default.xml,将它们重命名为inline.php和inline.xml并在自定义后上传。

确保你将您想要插入的模块分配到该位置名称(例如 inline-zone)并分配到正确的页面。