在Joomla的文章编辑器(TinyMCE)中添加自定义按钮

12

我正在尝试在Joomla的文章编辑器中插入一个额外的按钮。它使用默认的TinyMCE插件扩展模式。就像你已经知道的那样,编辑器下面有4个按钮(文章、图像、分页和阅读更多)。我想做的是插入第五个按钮。(我附加了一个图片按钮,但是由于需要至少10个声望点,所以SO说我不能发布。)

我尝试复制“Page Break Button”插件并将其重命名等,然后重新安装为新插件,但所有这些都会导致TinyMCE错误,没有按钮出现。

问题:如何插入按钮?


你能发布你的代码吗?我理解插件已经安装在正确的位置并启用了。 - Elin
嗨,Elin,我考虑过发布代码,但这并没有帮助,因为它是默认Joomla安装中已经可用的“分页”按钮的代码。该插件已启用,并位于其他编辑器扩展插件的相同位置。 - ᴍᴀᴛᴛ ʙᴀᴋᴇʀ
如果只是完全复制,您很可能未能更改名称必须与xml中的某个内容匹配的地方之一。 - Elin
2个回答

9
我已经进行了广泛的搜索,并找到一份关于如何在Joomla 1.5文章编辑器中添加额外按钮的指南。教程可在以下网址找到:http://tushev.org/articles/programming/18-how-to-create-an-editor-button-editors-xtd-plugin-for-joomla
由于XML清单标准略有改变,因此这个方法原版无法直接使用于Joomla 2.5和Joomla 3.0。请按照教程中的步骤使用这个XML清单代替原版。
<?xml version="1.0" encoding="utf-8"?>
<extension version="2.5" type="plugin" method="upgrade" group="editors-xtd">
        <name>test</name>
        <author>Name</author>
        <creationDate>Month 2013</creationDate>
        <copyright>Month Name. All rights reserved.</copyright>
        <license>GPL</license>
        <authorEmail>Email</authorEmail>
        <authorUrl>Your URL</authorUrl>
        <version>1.0.0</version>
        <description>
            "adds the button 'test' to the editor"
        </description>
        <files>
            <filename plugin="test">test.php</filename>
        </files>
</extension>

教程 PHP 是正确的,具体如下:

<?php

 // no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

jimport( 'joomla.plugin.plugin' );

class plgButtonTest extends JPlugin {

    function plgButtonTest(& $subject, $config)
    {
        parent::__construct($subject, $config);
    }
    function onDisplay($name)
    {
        $js =  "                      
         function buttonTestClick(editor) {
                             txt = prompt('Please enter something','123');
                             if(!txt) return;
                               jInsertEditorText('{test '+txt+'}', editor);
        }";
        $css = ".button2-left .testButton {
                    background: transparent url(/plugins/editors-xtd/test.png) no-repeat 100% 0px;
                }";
        $doc = & JFactory::getDocument();
        $doc->addScriptDeclaration($js);
        $doc->addStyleDeclaration($css);
        $button = new JObject();
        $button->set('modal', false);
        $button->set('onclick', 'buttonTestClick(\''.$name.'\');return false;');
        $button->set('text', JText::_('Test'));
        $button->set('name', 'testButton');
        $button->set('link', '#');
        return $button;
    }
}
?>

感谢大家的帮助。如果您有任何更好的方法,我将不胜感激。

3
感谢您在此处放置代码,因为教程链接目前无法使用。 - Mat Kay

4
如果您的插件成功安装,那么您需要在tinymce插件的高级参数设置中的Custom plugin和Custom button中输入您的插件名称。并确保您已安装的插件已发布。例如,请参考下面的示例图像。
这是我启用的自定义插件。请查看此图像: enter image description here 然后,在tinymce插件中进入高级参数,查看最后一项的自定义字段选项。请查看此图像: enter image description here 输入插件名称和按钮名称,并将按钮定位在文章管理器编辑器中。

1
这仅适用于您想要添加一个tinymce按钮,而不是想要添加一个下面的按钮,该按钮将是一个editor-xtd插件。 - Elin
感谢Tornado。这非常适合将自定义图标按钮添加到工具栏,但我希望有一个像“阅读更多”按钮那样大的按钮。感谢您使用图形,这非常有帮助!支持使用图片。 - ᴍᴀᴛᴛ ʙᴀᴋᴇʀ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接