使用 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)并分配到正确的页面。
我有一个 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)并分配到正确的页面。