我使用onContentPrepare事件将此[test]更改为其他文本o prinf html,如wordpress短码但没有任何变化。
有什么问题?
这是shortcodejd.xml
<?xml version="1.0" encoding="utf-8"?>
<extension version="3.1" type="plugin" group="search">
<name>shortcodejd</name>
<author>Joomla! Project</author>
<creationDate>November 2005</creationDate>
<copyright>Copyright (C) 2005 - 2013 Open Source Matters. All rights reserved.</copyright>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<authorEmail>admin@joomla.org</authorEmail>
<authorUrl>www.joomla.org</authorUrl>
<version>3.1.0</version>
<description>SHORTCODEJD</description>
<files>
<filename plugin="shortcodejd">shortcodejd.php</filename>
<filename>index.html</filename>
</files>
<languages>
<language tag="en-GB">en-GB.shortcodejd.ini</language>
<language tag="en-GB">en-GB.shortcodejd.sys.ini</language>
</languages>
<config>
</config>
</extension>
和这个shortcodejd.php
defined('_JEXEC') or die;
class PlgContentShortcodejd extends JPlugin
{
protected $autoloadLanguage = true;
public function onContentPrepare($context, &$article, &$params, $limitstart)
{
$article->text = str_replace("[test]","<h1>Hi</h1>",$row->article);
return true;
}
}
答案 0 :(得分:4)
在此功能中
public function onContentPrepare($context, &$article, &$params, $limitstart)
{
$article->text = str_replace("[test]","<h1>Hi</h1>",$row->article);
return true;
}
你从哪里得到这个$ row。而只需使用$ article-&gt;文本。你的功能应该是
public function onContentPrepare($context, &$article, &$params, $limitstart)
{
$article->text = str_replace("[test]","<h1>Hi</h1>",$article->text);
return true;
}
同样,@ Yoleth指出你需要有一个内容插件而不是一个搜索插件,因为你要替换内容。
答案 1 :(得分:1)
您的插件是在群组搜索中而非内容,请更改
<VirtualHost *:80>
DocumentRoot "/Library/WebServer/Documents/typo3knjiga/"
ServerName typo3knjiga.test
<Directory "/Library/WebServer/Documents/typo3knjiga">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
你确定你的插件已启用吗?