无法将文本插入 Joomla 5 Editors XTD 按钮插件中的编辑器

问题描述 投票:0回答:1

我想在 Joomla 5 WYSIWYG 文章编辑器中添加一个按钮。功能比较简单。我想将 Pinterest Feed 添加到文章来源,而不是在光标位置的编辑器的普通文本内,如下所示... 单击按钮后,将显示输入板 URL 的提示,如上例所示。

我还想将来自官方 Pinterest 的以下 JS 添加到源中以显示提要。我还想检查它是否仅添加一次,以便在插入多个板时不会在代码中一次又一次重复。

说实话,我是 Joomla CMS 的新手,因此我尝试为此目的在线访问示例。没有一个对我有用。我尝试用 ChatGPT 创建一个。它甚至没有添加按钮。在网上进行了一些查找后,我发现了一个工作示例,它添加了一个按钮并要求提示,但在代码插入部分失败。下面是我正在使用的代码。

plg_editor_test.xml

<?xml version="1.0" encoding="utf-8"?>
<extension version="2.5" type="plugin" method="upgrade" group="editors-xtd">
        <name>Editor XTD Button Test</name>
        <author>Ghost</author>
        <creationDate>April 2024</creationDate>
        <copyright>Ghost. All rights reserved.</copyright>
        <license>CC0</license>
        <authorEmail>[email protected]</authorEmail>
        <authorUrl>none.com</authorUrl>
        <version>1.0.0</version>
        <description>
            "Adds a test button 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 {
                    font-weight: bold;
                }";
        $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;
    }
}
?>

当我单击按钮时,会显示提示。单击“确定”不会执行任何操作,我在控制台中看到以下内容。

未捕获的引用错误:jInsertEditorText 未定义

Joomla 的帮助页面真的让我难以理解,因为我找不到任何与此相关的初学者友好文档。

plugins joomla editor
1个回答
0
投票

我认为自定义字段解决方案更好:创建一个自定义字段,您将在其中放置供稿所需使用的 URL。然后,在对文章视图的覆盖中,如果文章存在此自定义字段,则加载所需的脚本。很容易。

您可以遵循以下文档:

注意: 当前版本的 CMS 已弃用您上传的代码示例。所以你不能继续这样。如果您想进一步了解此实现,您需要查看 editors-xtd 插件实现,例如 Image editor-xtd 按钮

© www.soinside.com 2019 - 2024. All rights reserved.