创建简单的短代码插件Joomla

时间:2017-01-12 21:49:18

标签: joomla joomla3.0 joomla-extensions

我使用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;
    }
}

2 个答案:

答案 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>

你确定你的插件已启用吗?