【问题标题】:How do I create a simple joomla plugin?如何创建一个简单的 joomla 插件?
【发布时间】:2011-03-16 03:20:13
【问题描述】:

我遇到了一个真正的问题,无法理解创建和使用 joomla 插件可能非常容易的东西。

这是我到目前为止所做的。

我使用文件夹内的以下两个文件创建了一个示例 joomla 插件,并将它们命名为相同。

我在下面列出了它们的内容。

插件通过管理面板正确安装

然后我通过插件管理器启用它

好的。一切准备就绪。

启用插件后如何在文章中使用该插件?

ZIP 文件夹:MakePlugIn 文件夹:MakePlugIn

MakePlugIn.php -

<?php 
// No direct access allowed to this file
defined( '_JEXEC' ) or die( 'Restricted access' );

// Import Joomla! Plugin library file
jimport('joomla.plugin.plugin');

//The Content plugin MakePlugIn
class plgContentMakePlugIn extends JPlugin
{
    function plgContentMakePlugIn (&$subject)
    {
        parent::__construct ($subject);
    }
    function onPrepareContent (&$article, &$params, $page=0)
    {
        print "I am a happy plugin";
    }
}
?>

MakePlugIn.xml -

<?xml version="1.0" encoding="utf-8"?>
<install version="1.5" type="plugin" group="content">
    <name>Make-Plug-In</name>
    <author>Make-Plug-In</author>
    <creationDate>03/15/2011</creationDate>
    <copyright>Copyright (C) 2011 Holder. All rights reserved.</copyright>
    <license>GNU General Public License</license>
    <authorEmail>authoremail@website.com</authorEmail>
    <authorUrl>www.authorwebsite.com</authorUrl>
    <version>1.0</version>
    <description>Make-Plug-In test</description>
    <files>
        <filename plugin="MakePlugIn">MakePlugIn.php</filename>
    </files>
</install> 

【问题讨论】:

    标签: plugins joomla


    【解决方案1】:

    您不应该在插件中使用echoing 或printing 信息。

    该方法是接收文章引用作为参数,修改它就可以了。您可以使用var_dump 快速识别正确的对象类型和属性。

    这里是Joomla tutorial on creating Content Plug-in。


    2011 年 3 月 17 日更新

    这是对第一条评论的回应。 为了修改文章修改引用对象&amp;$article的值。 请参见下面的示例:

    function onPrepareContent( &$article, &$params, $limitstart )
    {
        //   Include you file with ajax code
        JHTML::_('script', 'ajax-file.js', 'media/path/to/js/dir/');
    
        //   Create ajax div
        $ajaxDiv = '<div id="ajax-div"></div>';
    
        // Modify article text by adding the div for ajax at the top
        $article->text = $ajaxDiv . PHP_EOL . $article->text;
    
        return true;
    }
    

    Adding external JS to the head of the document.

    【讨论】:

    • 我正在研究文档。也许我会以错误的方式解决这个问题。如果我想在某个类别的每个文章文本上方添加
      ,然后使用 ajax 加载 div,我更有可能构建插件或模块还是...。我已经在站点中使用 ajax,但我必须通过模板管理器编辑模板以包含 lib。我希望通过制作一个包含我需要的所有内容的简单可上传包来避免这种情况。我从小处着手,所以...欢迎任何方向的想法。
    • 我更新了答案,添加了如何使用文章对象的示例
    猜你喜欢
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 2015-06-19
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多